[PATCH] eventdev: fix missing internal port checks
Jayatheerthan, Jay
jay.jayatheerthan at intel.com
Tue Dec 14 06:52:33 CET 2021
@Harish, could you take a look at this please ?
-Jay
> -----Original Message-----
> From: pbhagavatula at marvell.com <pbhagavatula at marvell.com>
> Sent: Monday, December 13, 2021 2:02 PM
> To: jerinj at marvell.com; Jayatheerthan, Jay <jay.jayatheerthan at intel.com>
> Cc: dev at dpdk.org; Pavan Nikhilesh <pbhagavatula at marvell.com>
> Subject: [PATCH] eventdev: fix missing internal port checks
>
> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>
> When event delivery is through internal port, stats are mainitained
> by HW and we should avoid reading SW data structures for stats.
> Fix missing internal port checks.
>
> Fixes: 995b150c1ae1 ("eventdev/eth_rx: add queue stats API")
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
> ---
> lib/eventdev/rte_event_eth_rx_adapter.c | 24 ++++++++++++++----------
> 1 file changed, 14 insertions(+), 10 deletions(-)
>
> diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c
> index 809416d9b7..da223aacac 100644
> --- a/lib/eventdev/rte_event_eth_rx_adapter.c
> +++ b/lib/eventdev/rte_event_eth_rx_adapter.c
> @@ -2984,15 +2984,17 @@ rte_event_eth_rx_adapter_queue_stats_get(uint8_t id,
> return -EINVAL;
> }
>
> - queue_info = &dev_info->rx_queue[rx_queue_id];
> - event_buf = queue_info->event_buf;
> - q_stats = queue_info->stats;
> + if (dev_info->internal_event_port == 0) {
> + queue_info = &dev_info->rx_queue[rx_queue_id];
> + event_buf = queue_info->event_buf;
> + q_stats = queue_info->stats;
>
> - stats->rx_event_buf_count = event_buf->count;
> - stats->rx_event_buf_size = event_buf->events_size;
> - stats->rx_packets = q_stats->rx_packets;
> - stats->rx_poll_count = q_stats->rx_poll_count;
> - stats->rx_dropped = q_stats->rx_dropped;
> + stats->rx_event_buf_count = event_buf->count;
> + stats->rx_event_buf_size = event_buf->events_size;
> + stats->rx_packets = q_stats->rx_packets;
> + stats->rx_poll_count = q_stats->rx_poll_count;
> + stats->rx_dropped = q_stats->rx_dropped;
> + }
>
> dev = &rte_eventdevs[rx_adapter->eventdev_id];
> if (dev->dev_ops->eth_rx_adapter_queue_stats_get != NULL) {
> @@ -3086,8 +3088,10 @@ rte_event_eth_rx_adapter_queue_stats_reset(uint8_t id,
> return -EINVAL;
> }
>
> - queue_info = &dev_info->rx_queue[rx_queue_id];
> - rxa_queue_stats_reset(queue_info);
> + if (dev_info->internal_event_port == 0) {
> + queue_info = &dev_info->rx_queue[rx_queue_id];
> + rxa_queue_stats_reset(queue_info);
> + }
>
> dev = &rte_eventdevs[rx_adapter->eventdev_id];
> if (dev->dev_ops->eth_rx_adapter_queue_stats_reset != NULL) {
> --
> 2.34.0
More information about the dev
mailing list