[PATCH 0/2] ethdev: support single queue per port
Thomas Monjalon
thomas at monjalon.net
Tue Nov 12 03:25:36 CET 2024
25/10/2024 13:52, Morten Brørup:
> 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
Applied, thanks.
More information about the dev
mailing list