* [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation
@ 2016-06-10 6:29 Simon Kagstrom
2016-06-21 6:40 ` Simon Kågström
2016-06-23 19:44 ` Dumitrescu, Cristian
0 siblings, 2 replies; 4+ messages in thread
From: Simon Kagstrom @ 2016-06-10 6:29 UTC (permalink / raw)
To: cristian.dumitrescu, stephen, dev, thomas.monjalon
Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
---
I'm a total newbie to the rte_sched design and implementation, so I've
added the RFC.
We get crashes (at other places in the scheduler) without this code.
lib/librte_sched/rte_sched.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c
index 1609ea8..b46ecfb 100644
--- a/lib/librte_sched/rte_sched.c
+++ b/lib/librte_sched/rte_sched.c
@@ -1869,7 +1869,7 @@ grinder_next_pipe(struct rte_sched_port *port, uint32_t pos)
/* Install new pipe in the grinder */
grinder->pindex = pipe_qindex >> 4;
- grinder->subport = port->subport + (grinder->pindex / port->n_pipes_per_subport);
+ grinder->subport = port->subport + (grinder->pindex / port->n_subports_per_port);
grinder->pipe = port->pipe + grinder->pindex;
grinder->pipe_params = NULL; /* to be set after the pipe structure is prefetched */
grinder->productive = 0;
--
1.9.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation
2016-06-10 6:29 [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation Simon Kagstrom
@ 2016-06-21 6:40 ` Simon Kågström
2016-06-21 9:03 ` Dumitrescu, Cristian
2016-06-23 19:44 ` Dumitrescu, Cristian
1 sibling, 1 reply; 4+ messages in thread
From: Simon Kågström @ 2016-06-21 6:40 UTC (permalink / raw)
To: cristian.dumitrescu, stephen, dev, thomas.monjalon
Hi again!
Any news about this patch? I'm off for parental leave starting next week
(until january), so any comments (or simply dropping it!) would be good
to have before that :-)
// Simon
On 2016-06-10 08:29, Simon Kagstrom wrote:
> Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
> ---
> I'm a total newbie to the rte_sched design and implementation, so I've
> added the RFC.
>
> We get crashes (at other places in the scheduler) without this code.
>
> lib/librte_sched/rte_sched.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c
> index 1609ea8..b46ecfb 100644
> --- a/lib/librte_sched/rte_sched.c
> +++ b/lib/librte_sched/rte_sched.c
> @@ -1869,7 +1869,7 @@ grinder_next_pipe(struct rte_sched_port *port, uint32_t pos)
>
> /* Install new pipe in the grinder */
> grinder->pindex = pipe_qindex >> 4;
> - grinder->subport = port->subport + (grinder->pindex / port->n_pipes_per_subport);
> + grinder->subport = port->subport + (grinder->pindex / port->n_subports_per_port);
> grinder->pipe = port->pipe + grinder->pindex;
> grinder->pipe_params = NULL; /* to be set after the pipe structure is prefetched */
> grinder->productive = 0;
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation
2016-06-21 6:40 ` Simon Kågström
@ 2016-06-21 9:03 ` Dumitrescu, Cristian
0 siblings, 0 replies; 4+ messages in thread
From: Dumitrescu, Cristian @ 2016-06-21 9:03 UTC (permalink / raw)
To: Simon Kågström, stephen, dev, thomas.monjalon
Hi Simon,
I am going to take a look at it this week and come back to you.
Thanks,
Cristian
> -----Original Message-----
> From: Simon Kågström [mailto:simon.kagstrom@netinsight.net]
> Sent: Tuesday, June 21, 2016 7:41 AM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>;
> stephen@networkplumber.org; dev@dpdk.org;
> thomas.monjalon@6wind.com
> Subject: Re: [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation
>
> Hi again!
>
> Any news about this patch? I'm off for parental leave starting next week
> (until january), so any comments (or simply dropping it!) would be good
> to have before that :-)
>
> // Simon
>
> On 2016-06-10 08:29, Simon Kagstrom wrote:
> > Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
> > ---
> > I'm a total newbie to the rte_sched design and implementation, so I've
> > added the RFC.
> >
> > We get crashes (at other places in the scheduler) without this code.
> >
> > lib/librte_sched/rte_sched.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c
> > index 1609ea8..b46ecfb 100644
> > --- a/lib/librte_sched/rte_sched.c
> > +++ b/lib/librte_sched/rte_sched.c
> > @@ -1869,7 +1869,7 @@ grinder_next_pipe(struct rte_sched_port *port,
> uint32_t pos)
> >
> > /* Install new pipe in the grinder */
> > grinder->pindex = pipe_qindex >> 4;
> > - grinder->subport = port->subport + (grinder->pindex / port-
> >n_pipes_per_subport);
> > + grinder->subport = port->subport + (grinder->pindex / port-
> >n_subports_per_port);
> > grinder->pipe = port->pipe + grinder->pindex;
> > grinder->pipe_params = NULL; /* to be set after the pipe structure is
> prefetched */
> > grinder->productive = 0;
> >
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation
2016-06-10 6:29 [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation Simon Kagstrom
2016-06-21 6:40 ` Simon Kågström
@ 2016-06-23 19:44 ` Dumitrescu, Cristian
1 sibling, 0 replies; 4+ messages in thread
From: Dumitrescu, Cristian @ 2016-06-23 19:44 UTC (permalink / raw)
To: Simon Kagstrom, stephen, dev, thomas.monjalon
> -----Original Message-----
> From: Simon Kagstrom [mailto:simon.kagstrom@netinsight.net]
> Sent: Friday, June 10, 2016 7:29 AM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>;
> stephen@networkplumber.org; dev@dpdk.org;
> thomas.monjalon@6wind.com
> Subject: [PATCH / RFC] sched: Correct subport calcuation
>
> Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
> ---
> I'm a total newbie to the rte_sched design and implementation, so I've
> added the RFC.
>
> We get crashes (at other places in the scheduler) without this code.
>
> lib/librte_sched/rte_sched.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/librte_sched/rte_sched.c b/lib/librte_sched/rte_sched.c
> index 1609ea8..b46ecfb 100644
> --- a/lib/librte_sched/rte_sched.c
> +++ b/lib/librte_sched/rte_sched.c
> @@ -1869,7 +1869,7 @@ grinder_next_pipe(struct rte_sched_port *port,
> uint32_t pos)
>
> /* Install new pipe in the grinder */
> grinder->pindex = pipe_qindex >> 4;
> - grinder->subport = port->subport + (grinder->pindex / port-
> >n_pipes_per_subport);
> + grinder->subport = port->subport + (grinder->pindex / port-
> >n_subports_per_port);
> grinder->pipe = port->pipe + grinder->pindex;
> grinder->pipe_params = NULL; /* to be set after the pipe structure is
> prefetched */
> grinder->productive = 0;
> --
> 1.9.1
Hi Simon,
NACK.
Each port has an array of queues (size is port->n_queues_per_port), which are organized into equal size groups associated with pipes and subports:
- Each pipe is assigned the next group of RTE_SCHED_QUEUES_PER_PIPE (i.e. 16) queues in ascending order;
- Each subport is assigned the next group of port->n_pipes_per_subport pipes (congurable parameter).
The following is true:
n_queues_per_port = RTE_SCHED_QUEUES_PER_PIPE * n_pipes_per_subport * n_subports_per_port
Given a queue index (pipe_qindex), the following are true:
- Pipe index: pindex = pipe_qindex >> 4;
- Subport index (let's call it sindex): sindex = pindex / n_pipes_per_subport, right?
I don't know why you get crashes in your application, but what I do know is that your proposed method to compute sindex is not correct :)
Regards,
Cristian
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-06-23 19:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-10 6:29 [dpdk-dev] [PATCH / RFC] sched: Correct subport calcuation Simon Kagstrom
2016-06-21 6:40 ` Simon Kågström
2016-06-21 9:03 ` Dumitrescu, Cristian
2016-06-23 19:44 ` Dumitrescu, Cristian
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).