[dpdk-dev] [PATCH v2 3/4] common_base: extend RTE_MAX_ETHPORTS from 32 to 1024

Ananyev, Konstantin konstantin.ananyev at intel.com
Mon Sep 4 12:27:10 CEST 2017


Hi Zhiong,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Yang, Zhiyong
> Sent: Monday, September 4, 2017 11:05 AM
> To: Richardson, Bruce <bruce.richardson at intel.com>
> Cc: Yao, Lei A <lei.a.yao at intel.com>; dev at dpdk.org; thomas at monjalon.net; Yigit, Ferruh <ferruh.yigit at intel.com>; Wiles, Keith
> <keith.wiles at intel.com>; stephen at networkplumber.org
> Subject: Re: [dpdk-dev] [PATCH v2 3/4] common_base: extend RTE_MAX_ETHPORTS from 32 to 1024
> 
> Hi, Bruce:
> 
> > -----Original Message-----
> > From: Richardson, Bruce
> > Sent: Monday, September 4, 2017 5:09 PM
> > To: Yang, Zhiyong <zhiyong.yang at intel.com>
> > Cc: Yao, Lei A <lei.a.yao at intel.com>; dev at dpdk.org; thomas at monjalon.net;
> > Yigit, Ferruh <ferruh.yigit at intel.com>; Wiles, Keith <keith.wiles at intel.com>;
> > stephen at networkplumber.org
> > Subject: Re: [dpdk-dev] [PATCH v2 3/4] common_base: extend
> > RTE_MAX_ETHPORTS from 32 to 1024
> > > > > --- a/config/common_base
> > > > > +++ b/config/common_base
> > > > > @@ -131,7 +131,7 @@ CONFIG_RTE_LIBRTE_KVARGS=y  #
> > > > > CONFIG_RTE_LIBRTE_ETHER=y  CONFIG_RTE_LIBRTE_ETHDEV_DEBUG=n
> > > > > -CONFIG_RTE_MAX_ETHPORTS=32
> > > > > +CONFIG_RTE_MAX_ETHPORTS=1024
> > > > >  CONFIG_RTE_MAX_QUEUES_PER_PORT=1024
> > > > >  CONFIG_RTE_LIBRTE_IEEE1588=n
> > > > >  CONFIG_RTE_ETHDEV_QUEUE_STAT_CNTRS=16
> > > > > --
> > > > > 2.13.3
> > > > Hi, Zhiyong
> > > >
> > > > I met one issue for changing CONFIG_RTE_MAX_ETHPORTS to 1024.
> > > > One process can only open 1024 file as maximum in common linux
> > > > distribution, after practice, only 1009 socket file can be used for
> > > > vdev device with testpmd sample.
> > >
> > > Thanks for your info.  It seems that 1024 is too large and may bring some
> > potential issues.
> > >
> > > Thanks
> > > Zhiyong
> > >
> >
> > It should be possible to have a dynamically allocated ethdev array, which would
> > allow use to have a default value - which could be e.g. 32 or 64 as now - while
> > also allowing a run-time parameter to increase that to thousands if needed.
> >
> > /Bruce
> 
> In testpmd,  the following function will be called to validate the port_id.
> So, It is necessary to modify the max port num RTE_MAX_ETHPORTS.

There are quite a lot memory allocations (both static an dynamic) inside DPDK libs and sample apps
 that use RTE_MAX_ETHPORTS.
Increasing RTE_MAX_ETHPORTS would increase DPDK memory requirements quite significantly.
Why do you think it is *necessary* to increase default RTE_MAX_ETHPORTS to 1024?
Konstantin

> 
> I think that RTE_MAX_ETHPORTS and  a default value(num of port ) should be different values.
> Now dpdk limits the max num to RTE_MAX_ETHPORTS = 32 by default.
> int
> rte_eth_dev_is_valid_port(uint16_t port_id)
> {
> 	if (port_id >= RTE_MAX_ETHPORTS ||
> 	    (rte_eth_devices[port_id].state != RTE_ETH_DEV_ATTACHED &&
> 	     rte_eth_devices[port_id].state != RTE_ETH_DEV_DEFERRED))
> 		return 0;
> 	else
> 		return 1;
> }
> 
> Thanks
> Zhiyong.


More information about the dev mailing list