Hi Zhiong, > -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Yang, Zhiyong > Sent: Monday, September 4, 2017 11:05 AM > To: Richardson, Bruce <bruce.richard...@intel.com> > Cc: Yao, Lei A <lei.a....@intel.com>; dev@dpdk.org; tho...@monjalon.net; > Yigit, Ferruh <ferruh.yi...@intel.com>; Wiles, Keith > <keith.wi...@intel.com>; step...@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.y...@intel.com> > > Cc: Yao, Lei A <lei.a....@intel.com>; dev@dpdk.org; tho...@monjalon.net; > > Yigit, Ferruh <ferruh.yi...@intel.com>; Wiles, Keith > > <keith.wi...@intel.com>; > > step...@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.