[dpdk-dev] [PATCH v2 0/3] Support setting TX rate for queue and VF

Neil Horman nhorman at tuxdriver.com
Thu Jun 5 13:01:44 CEST 2014


On Thu, Jun 05, 2014 at 03:11:46AM +0000, Ouyang, Changchun wrote:
> Hi, Neil
> 
> " but you're implementaiton requires that it be re-implemented for each PMD "
> 
> [Changchun]: Different PMD(corresponding diff NIC) has different register to set.
> It makes sense to me has different implementation to support limit tx rate.
>  
> " Why not just export max tx rates from the PMD and write a generic queuing libarary to do rate limitation for any PMD?"
> 
> [Changchun]: Just export max tx rate is not enough for customer.
> I think if we can leverage HW feature to do it, why need a more complicated lib to do so? 
> 
> Thanks
> Changchun
> 
sorry, I reread my initial comment and see I wasn't being at all clear.  You 
actually do have a nice generic layer for applications to call through in 
rte_ethdev, which is good.  What you don't have is a backoff mechanism.  That is 
to say the return of ENOSUP in rte_eth_dev_set_queue_rate_limit means that your
queuing library doesnt' work for any device that doesn't support hardware rate
limiting (implying none of the virtual devs get to implement this).  Don't you
think you should implement a generic software queue rate limit layer for the
myrriad of devices that cant' do what ixgbe can?

Regards
Neil
 

> -----Original Message-----
> From: Neil Horman [mailto:nhorman at tuxdriver.com] 
> Sent: Tuesday, May 27, 2014 6:53 AM
> To: Ouyang, Changchun
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v2 0/3] Support setting TX rate for queue and VF
> 
> On Mon, May 26, 2014 at 03:45:28PM +0800, Ouyang Changchun wrote:
> > This patch v2 fixes some errors and warnings reported by checkpatch.pl.
> >  
> > This patch series also contain the 3 items:
> > 1. Add API to support setting TX rate for a queue or a VF.
> > 2. Implement the functionality of setting TX rate for queue or VF in IXGBE PMD.
> > 3. Add commands in testpmd to test the functionality of setting TX rate for queue or VF.
> > 
> > Ouyang Changchun (3):
> >   Add API to support set TX rate for a queue and VF.
> >   Implement the functionality of setting TX rate for queue or VF in
> >     IXGBE PMD.
> >   Add commands in testpmd to test the functionality of setting TX rate
> >     for queue or VF.
> > 
> >  app/test-pmd/cmdline.c              | 159 +++++++++++++++++++++++++++++++++++-
> >  app/test-pmd/config.c               |  47 +++++++++++
> >  app/test-pmd/testpmd.h              |   3 +
> >  lib/librte_ether/rte_ethdev.c       |  71 ++++++++++++++++
> >  lib/librte_ether/rte_ethdev.h       |  51 ++++++++++++
> >  lib/librte_pmd_ixgbe/ixgbe_ethdev.c | 122 +++++++++++++++++++++++++++  
> > lib/librte_pmd_ixgbe/ixgbe_ethdev.h |  13 ++-
> >  7 files changed, 462 insertions(+), 4 deletions(-)
> > 
> This seems a bit backwards.  queue rate limiting is rather a generic function, that doesn't really need to know any details about the hardware, save for its maximum tx rate, but you're implementaiton requires that it be re-implemented for each PMD.  Why not just export max tx rates from the PMD and write a generic queuing libarary to do rate limitation for any PMD?
> 
> Neil
> 
> > --
> > 1.9.0
> > 
> > 
> 


More information about the dev mailing list