On 9/4/2017 3:57 PM, Ananyev, Konstantin wrote:
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.

It is not a good idea to significantly increase the DPDK memory requirement.

Can you not make it with "CONFIG_RTE_MAX_ETHPORTS=1024" for your testing configs?

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.


Reply via email to