2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-22 09:58:01 +00:00

netdev-dpdk: Remove limit on maximum descriptors count.

Using larger rxq can be beneficial in highly bursty setups.
Remove the artificial limit on the count of descriptors in rxq and txq.
The device driver will limit the values in any case.

Reported-at: https://issues.redhat.com/browse/FDP-1415
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
David Marchand 2025-06-19 17:56:33 +02:00 committed by Ilya Maximets
parent edecb74043
commit 6090603703
3 changed files with 8 additions and 11 deletions

1
NEWS
View File

@ -6,6 +6,7 @@ Post-v3.5.0
have been moved to the DBG log level. have been moved to the DBG log level.
- DPDK: - DPDK:
* New debug appctl command 'dpdk/get-memzone-stats'. * New debug appctl command 'dpdk/get-memzone-stats'.
* Removed upper limit for the number of rx/tx descriptors (n_r/txq_desc).
* OVS validated with DPDK 24.11.2. * OVS validated with DPDK 24.11.2.
- ovs-ctl: - ovs-ctl:
* Added a new option, --oom-score=<score>, to set the daemons' Linux * Added a new option, --oom-score=<score>, to set the daemons' Linux

View File

@ -133,8 +133,6 @@ BUILD_ASSERT_DECL((MAX_NB_MBUF / ROUND_DOWN_POW2(MAX_NB_MBUF / MIN_NB_MBUF))
#define NIC_PORT_DEFAULT_RXQ_SIZE 2048 #define NIC_PORT_DEFAULT_RXQ_SIZE 2048
/* Default size of Physical NIC TXQ */ /* Default size of Physical NIC TXQ */
#define NIC_PORT_DEFAULT_TXQ_SIZE 2048 #define NIC_PORT_DEFAULT_TXQ_SIZE 2048
/* Maximum size of Physical NIC Queues */
#define NIC_PORT_MAX_Q_SIZE 4096
#define OVS_VHOST_MAX_QUEUE_NUM 1024 /* Maximum number of vHost TX queues. */ #define OVS_VHOST_MAX_QUEUE_NUM 1024 /* Maximum number of vHost TX queues. */
#define OVS_VHOST_QUEUE_MAP_UNKNOWN (-1) /* Mapping not initialized. */ #define OVS_VHOST_QUEUE_MAP_UNKNOWN (-1) /* Mapping not initialized. */
@ -2252,9 +2250,7 @@ dpdk_process_queue_size(struct netdev *netdev, const struct smap *args,
queue_size = new_requested_size; queue_size = new_requested_size;
/* Check for OVS limits. */ if (queue_size <= 0 || !is_pow2(queue_size)) {
if (queue_size <= 0 || queue_size > NIC_PORT_MAX_Q_SIZE
|| !is_pow2(queue_size)) {
queue_size = default_size; queue_size = default_size;
} }

View File

@ -3484,22 +3484,22 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch options:peer=p1 \
</column> </column>
<column name="options" key="n_rxq_desc" <column name="options" key="n_rxq_desc"
type='{"type": "integer", "minInteger": 1, "maxInteger": 4096}'> type='{"type": "integer", "minInteger": 1}'>
<p> <p>
Specifies the rx queue size (number rx descriptors) for dpdk ports. Specifies the rx queue size (number rx descriptors) for dpdk ports.
The value must be a power of 2, less than 4096 and supported The value must be a power of 2 and supported by the hardware of the
by the hardware of the device being configured. device being configured.
If not specified or an incorrect value is specified, 2048 rx If not specified or an incorrect value is specified, 2048 rx
descriptors will be used by default. descriptors will be used by default.
</p> </p>
</column> </column>
<column name="options" key="n_txq_desc" <column name="options" key="n_txq_desc"
type='{"type": "integer", "minInteger": 1, "maxInteger": 4096}'> type='{"type": "integer", "minInteger": 1}'>
<p> <p>
Specifies the tx queue size (number tx descriptors) for dpdk ports. Specifies the tx queue size (number tx descriptors) for dpdk ports.
The value must be a power of 2, less than 4096 and supported The value must be a power of 2 and supported by the hardware of the
by the hardware of the device being configured. device being configured.
If not specified or an incorrect value is specified, 2048 tx If not specified or an incorrect value is specified, 2048 tx
descriptors will be used by default. descriptors will be used by default.
</p> </p>