DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 0/2] ethdev: support single queue per port
@ 2024-10-25 11:52 Morten Brørup
  2024-10-25 11:52 ` [PATCH 1/2] eal: add unreachable and precondition hints Morten Brørup
  2024-10-25 11:52 ` [PATCH 2/2] drivers/net: support single queue per port Morten Brørup
  0 siblings, 2 replies; 3+ messages in thread
From: Morten Brørup @ 2024-10-25 11:52 UTC (permalink / raw)
  To: dev, Tyler Retzlaff, Thomas Monjalon, Ferruh Yigit,
	Andrew Rybchenko, Ajit Khaparde, Somnath Kotur, Bruce Richardson,
	Gaetan Rivet, Jie Hai, Long Li, Wei Hu
  Cc: 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

 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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-10-25 11:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-25 11:52 [PATCH 0/2] ethdev: support single queue per port Morten Brørup
2024-10-25 11:52 ` [PATCH 1/2] eal: add unreachable and precondition hints Morten Brørup
2024-10-25 11:52 ` [PATCH 2/2] drivers/net: support single queue per port Morten Brørup

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).