[PATCH 0/2] ethdev: support single queue per port
Morten Brørup
mb at smartsharesystems.com
Fri Oct 25 13:52:21 CEST 2024
When configuring DPDK for one queue per port
(#define RTE_MAX_QUEUES_PER_PORT 1), compilation of some network drivers
fails with e.g.:
../drivers/net/bnxt/bnxt_rxq.c: In function 'bnxt_rx_queue_stop':
../drivers/net/bnxt/bnxt_rxq.c:587:34: error: array subscript 1 is above array bounds of 'uint8_t[1]' {aka 'unsigned char[1]'} [-Werror=array-bounds=]
587 | dev->data->rx_queue_state[q_id] = RTE_ETH_QUEUE_STATE_STOPPED;
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
In file included from ../drivers/net/bnxt/bnxt.h:16,
from ../drivers/net/bnxt/bnxt_rxq.c:10:
../lib/ethdev/ethdev_driver.h:168:17: note: while referencing 'rx_queue_state'
168 | uint8_t rx_queue_state[RTE_MAX_QUEUES_PER_PORT];
| ^~~~~~~~~~~~~~
This series fixes those compiler emitted errros as follows:
1. A precondition hint macro is introduced, which can be used to prevent
the compiler/optimizer from considering scenarios that cannot occur.
2. The hint is added to the network drivers where a compiler in the CI has
been seen to emit the above error when DPDK is configured for one queue
per port, but we know that the error cannot occur.
Morten Brørup (2):
eal: add unreachable and precondition hints
drivers/net: support single queue per port
drivers/net/bnxt/bnxt_ethdev.c | 2 ++
drivers/net/bnxt/bnxt_rxq.c | 1 +
drivers/net/e1000/igb_rxtx.c | 2 ++
drivers/net/failsafe/failsafe_ops.c | 10 ++++++++--
drivers/net/hns3/hns3_rxtx.c | 2 ++
drivers/net/mana/tx.c | 1 +
lib/eal/include/rte_common.h | 27 +++++++++++++++++++++++++++
7 files changed, 43 insertions(+), 2 deletions(-)
--
2.43.0
More information about the dev
mailing list