> From: Pavan Nikhilesh [mailto:[email protected]]
> Sent: Wednesday, January 10, 2018 8:01 PM
> To: Van Haaren, Harry <[email protected]>;
> [email protected]; [email protected]; Eads,
> Gage <[email protected]>; [email protected]; [email protected]; Ma,
> Liang J <[email protected]>
> Cc: [email protected]
> Subject: Re: [dpdk-dev] [PATCH v3 08/12] app/eventdev: add pipeline queue
> test
> 
> Hi Harry,
> 
> Thanks for the review.
> 
> On Wed, Jan 10, 2018 at 04:38:35PM +0000, Van Haaren, Harry wrote:
> > > From: Pavan Nikhilesh [mailto:[email protected]]
> > > Sent: Wednesday, January 10, 2018 2:52 PM
> > > To: [email protected]; [email protected];
> Van
> > > Haaren, Harry <[email protected]>; Eads, Gage
> > > <[email protected]>; [email protected]; [email protected]; Ma,
> > > Liang J <[email protected]>
> > > Cc: [email protected]; Pavan Nikhilesh <[email protected]>
> > > Subject: [dpdk-dev] [PATCH v3 08/12] app/eventdev: add pipeline queue
> test
> > >
> > > This is a pipeline queue test case that aims at testing the following:
> > > 1. Measure the end-to-end performance of an event dev with a ethernet
> dev.
> > > 2. Maintain packet ordering from Rx to Tx.
> > >
> > > The pipeline queue test configures the eventdev with Q queues and P
> ports,
> > > where Q is (nb_ethdev * nb_stages) + nb_ethdev and P is nb_workers.
> >
> > Why (nb_ethdev * nb_stages) number of Queues?
> >
> > I had expected if the test is for eventdev with Q queues, P ports, that
> that Q number of stages is all that is required, (possibly with +1 for TX
> queue, iirc some HW doesn't require the TX Queue).
> >
> > Am I missing something here? I've left the code snippet I don't understand
> below.
> >
> 
> The idea is to reduce the load on ingress event queue (mapped to ethernet Rx
> queue)
> by splitting the traffic across event queues for each ethernet device.
> 
> for example, nb_stages =  2 and nb_ethdev = 2 then
> 
>       nb_queues = (2 * 2) + 2 = 6 (non atq)
>       stride = 3 (nb_stages + 1 used for directing each ethernet dev traffic
>                       into a specific event queue)
> 
> queue id's 0,1,2,3,4,5
> 
> This allows us to direct the traffic from eth dev0 to event queue 0 and dev1
> to
> queue 3 based on the stride (dev_id * stride). This intern forms two
> pipelines
>       ethdev0 0->1->2->tx
>       ethdev1 3->4->5->tx
> 
> In the absence of this both  ethdev0 and ethdev1 would have to inject to 0th
> queue and this leads to more congestion as the number of ethernet devices
> increase.
> 
> Hope this clears things up.


Ah ok, two parallel pipelines use-case. Makes sense, thanks for explaining.

Acked-by: Harry van Haaren <[email protected]>

<snip>

Reply via email to