Thread (100 messages) 100 messages, 16 authors, 2017-10-12

Re: [PATCH v2 3/4] common_base: extend RTE_MAX_ETHPORTS from 32 to 1024

From: Hemant Agrawal <hidden>
Date: 2017-09-06 08:42:09

On 9/4/2017 3:57 PM, Ananyev, Konstantin wrote:
Hi Zhiong,
quoted
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Yang, Zhiyong
Sent: Monday, September 4, 2017 11:05 AM
To: Richardson, Bruce <redacted>
Cc: Yao, Lei A <redacted>; dev@dpdk.org; thomas@monjalon.net; Yigit, Ferruh <redacted>; Wiles, Keith
[off-list ref]; stephen@networkplumber.org
Subject: Re: [dpdk-dev] [PATCH v2 3/4] common_base: extend RTE_MAX_ETHPORTS from 32 to 1024

Hi, Bruce:
quoted
-----Original Message-----
From: Richardson, Bruce
Sent: Monday, September 4, 2017 5:09 PM
To: Yang, Zhiyong <redacted>
Cc: Yao, Lei A <redacted>; dev@dpdk.org; thomas@monjalon.net;
Yigit, Ferruh [off-list ref]; Wiles, Keith [off-list ref];
stephen@networkplumber.org
Subject: Re: [dpdk-dev] [PATCH v2 3/4] common_base: extend
RTE_MAX_ETHPORTS from 32 to 1024
quoted
quoted
quoted
--- 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.
quoted
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
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help