From 61efaf5b6220e18b45ffb597923e5914847658c9 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 21 Sep 2020 21:22:37 +0800 Subject: [PATCH] ethdev: support getting Rx buffer size in Rx queue info Add a field named rx_buf_size in rte_eth_rxq_info to indicate the buffer size used in receiving packets for HW. In this way, upper-layer users can get this information by calling rte_eth_rx_queue_info_get. Signed-off-by: Chengchang Tang Reviewed-by: Wei Hu (Xavier) Acked-by: Andrew Rybchenko Reviewed-by: Ferruh Yigit --- app/proc-info/main.c | 13 +++++++++---- app/test-pmd/config.c | 2 ++ doc/guides/rel_notes/deprecation.rst | 5 ----- lib/librte_ethdev/rte_ethdev.h | 1 + 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/proc-info/main.c b/app/proc-info/main.c index 0b030d326e..64fb83b38d 100644 --- a/app/proc-info/main.c +++ b/app/proc-info/main.c @@ -708,15 +708,20 @@ show_port(void) for (j = 0; j < dev_info.nb_rx_queues; j++) { ret = rte_eth_rx_queue_info_get(i, j, &queue_info); if (ret == 0) { - printf("\t -- queue %d rx scatter %d" - " descriptors %d" - " offloads 0x%"PRIx64 - " mempool socket %d\n", + printf("\t -- queue %u rx scatter %u" + " descriptors %u" + " offloads 0x%" PRIx64 + " mempool socket %d", j, queue_info.scattered_rx, queue_info.nb_desc, queue_info.conf.offloads, queue_info.mp->socket_id); + + if (queue_info.rx_buf_size != 0) + printf(" rx buffer size %u", + queue_info.rx_buf_size); + printf("\n"); } } diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index b6eb2a57a9..2d9a456467 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -452,6 +452,8 @@ rx_queue_infos_display(portid_t port_id, uint16_t queue_id) (qinfo.conf.rx_deferred_start != 0) ? "on" : "off"); printf("\nRX scattered packets: %s", (qinfo.scattered_rx != 0) ? "on" : "off"); + if (qinfo.rx_buf_size != 0) + printf("\nRX buffer size: %hu", qinfo.rx_buf_size); printf("\nNumber of RXDs: %hu", qinfo.nb_desc); if (rte_eth_rx_burst_mode_get(port_id, queue_id, &mode) == 0) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 5f568f4b72..95a31c72bb 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -167,11 +167,6 @@ Deprecation Notices specified lengths into the buffers allocated from the specified memory pools. The backward compatibility to existing API is preserved. -* ethdev: The ``struct rte_eth_rxq_info`` will be modified to include - a new optional field, indicating the buffer size used in receiving packets - for HW. This change is planned for 20.11. For more details: - https://mails.dpdk.org/archives/dev/2020-July/176135.html. - * ethdev: ``rx_descriptor_done`` dev_ops and ``rte_eth_rx_descriptor_done`` will be removed in 21.11. Existing ``rte_eth_rx_descriptor_status`` and ``rte_eth_tx_descriptor_status`` diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index c6560f205b..645a18664d 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -1452,6 +1452,7 @@ struct rte_eth_rxq_info { struct rte_eth_rxconf conf; /**< queue config parameters. */ uint8_t scattered_rx; /**< scattered packets RX supported. */ uint16_t nb_desc; /**< configured number of RXDs. */ + uint16_t rx_buf_size; /**< hardware receive buffer size. */ } __rte_cache_min_aligned; /** -- 2.20.1