> From: Pavan Nikhilesh [mailto:pbhagavat...@caviumnetworks.com]
> Sent: Wednesday, January 10, 2018 8:01 PM
> To: Van Haaren, Harry <harry.van.haa...@intel.com>;
> jerin.ja...@caviumnetworks.com; santosh.shu...@caviumnetworks.com; Eads,
> Gage <gage.e...@intel.com>; hemant.agra...@nxp.com; nipun.gu...@nxp.com; Ma,
> Liang J <liang.j...@intel.com>
> Cc: dev@dpdk.org
> 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:pbhagavat...@caviumnetworks.com]
> > > Sent: Wednesday, January 10, 2018 2:52 PM
> > > To: jerin.ja...@caviumnetworks.com; santosh.shu...@caviumnetworks.com;
> Van
> > > Haaren, Harry <harry.van.haa...@intel.com>; Eads, Gage
> > > <gage.e...@intel.com>; hemant.agra...@nxp.com; nipun.gu...@nxp.com; Ma,
> > > Liang J <liang.j...@intel.com>
> > > Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavat...@caviumnetworks.com>
> > > 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 <harry.van.haa...@intel.com>

<snip>

Reply via email to