[PATCH v2 0/8] fix Rx and Tx queue state
Jie Hai
haijie1 at huawei.com
Thu Sep 28 09:42:57 CEST 2023
The DPDK framework reports the queue status, which is stored in
'dev->data->tx_queue_state' and 'dev->data->rx_queue_state' . The state
is currently maintained by the drivers. Users may determine whether
a queue participates in packet forwarding based on the state,
For example,
[1] 5028f207a4fa ("app/testpmd: fix secondary process packet forwarding"
[2] 141a520b35f7 ("app/testpmd: fix primary process not polling all queues")
However, not all drivers correctly report the queue status. This may cause
forwarding problems.
Since it is difficult to modify the queue status of all drivers, we consider
updating the queue status at the framework level. Some drivers support queues
for hairpin, leaving status updating for such queues to the drivers. Some
drivers support deferred_start. Assume that all drivers that support
'deferred_start' can obtain the configuration through 'rte_eth_tx_queue_info_get'
and 'rte_eth_rx_queue_info_get'. So we can directly update the queue status in
'rte_eth_dev_start' and 'rte_eth_dev_stop'.
This patchset does the follow things:
1. update Rx and Tx queue status in dev_start and dev_stop.
2. implement rxq|txq_info_get ops for drivers supporting deferred start.
3. resubmit the patch [2] and makes some fixes on the patch.
Jie Hai (8):
lib/ethdev: update Rx and Tx queue status
net/cpfl: support getting queue information
net/enetc: save deferred start configuratin for queues
net/enetc: support getting queue information
net/failsafe: support getting queue information
net/fm10k: support getting queue information
net/idpf: support getting queue information
app/testpmd: fix primary process not polling all queues
app/test-pmd/testpmd.c | 25 ++++++++++++++----
drivers/net/cpfl/cpfl_ethdev.c | 2 ++
drivers/net/cpfl/cpfl_rxtx.c | 26 +++++++++++++++++++
drivers/net/cpfl/cpfl_rxtx.h | 4 +++
drivers/net/enetc/enetc.h | 2 ++
drivers/net/enetc/enetc_ethdev.c | 26 +++++++++++++++++++
drivers/net/failsafe/failsafe_ops.c | 24 +++++++++++++++++
drivers/net/fm10k/fm10k_ethdev.c | 28 ++++++++++++++++++++
drivers/net/idpf/idpf_ethdev.c | 22 ++++++++++++++++
lib/ethdev/rte_ethdev.c | 40 +++++++++++++++++++++++++++++
10 files changed, 194 insertions(+), 5 deletions(-)
--
2.30.0
More information about the dev
mailing list