All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lijun Ou <oulijun@huawei.com>
To: <thomas@monjalon.net>, <ferruh.yigit@intel.com>
Cc: <dev@dpdk.org>, <linuxarm@openeuler.org>
Subject: [dpdk-dev] [PATCH V3] ethdev: add queue state when retrieve queue information
Date: Thu, 15 Apr 2021 10:40:26 +0800	[thread overview]
Message-ID: <1618454426-21457-1-git-send-email-oulijun@huawei.com> (raw)
In-Reply-To: <1616670560-62333-1-git-send-email-oulijun@huawei.com>

Currently, upper-layer application could get queue state only
through pointers such as dev->data->tx_queue_state[queue_id],
this is not the recommended way to access it. So this patch
add get queue state when call rte_eth_rx_queue_info_get and
rte_eth_tx_queue_info_get API.

Note: After add queue_state field, the 'struct rte_eth_rxq_info' size
remains 128B, and the 'struct rte_eth_txq_info' size remains 64B, so
it could be ABI compatible.

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Lijun Ou <oulijun@huawei.com>
---
V2->V3:
- rewrite the commit log and delete the part Note
- rewrite tht comments for queue state
- move the queue_state definition locations

V1->V2:
- move queue state defines to public file
---
 doc/guides/rel_notes/release_21_05.rst | 6 ++++++
 lib/librte_ethdev/ethdev_driver.h      | 7 -------
 lib/librte_ethdev/rte_ethdev.c         | 3 +++
 lib/librte_ethdev/rte_ethdev.h         | 9 +++++++++
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/doc/guides/rel_notes/release_21_05.rst b/doc/guides/rel_notes/release_21_05.rst
index 3bd7757..c6e45e2 100644
--- a/doc/guides/rel_notes/release_21_05.rst
+++ b/doc/guides/rel_notes/release_21_05.rst
@@ -251,6 +251,12 @@ ABI Changes
   function was already marked as internal in the API documentation for it,
   and was not for use by external applications.
 
+* Added new field ``queue_state`` to ``rte_eth_rxq_info`` structure
+  to provide indicated rxq queue state.
+
+* Added new field ``queue_state`` to ``rte_eth_txq_info`` structure
+  to provide indicated txq queue state.
+
 
 Known Issues
 ------------
diff --git a/lib/librte_ethdev/ethdev_driver.h b/lib/librte_ethdev/ethdev_driver.h
index 113129d..40e474a 100644
--- a/lib/librte_ethdev/ethdev_driver.h
+++ b/lib/librte_ethdev/ethdev_driver.h
@@ -952,13 +952,6 @@ struct eth_dev_ops {
 };
 
 /**
- * RX/TX queue states
- */
-#define RTE_ETH_QUEUE_STATE_STOPPED 0
-#define RTE_ETH_QUEUE_STATE_STARTED 1
-#define RTE_ETH_QUEUE_STATE_HAIRPIN 2
-
-/**
  * @internal
  * Check if the selected Rx queue is hairpin queue.
  *
diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 6b5cfd6..ab188ec 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -5042,6 +5042,8 @@ rte_eth_rx_queue_info_get(uint16_t port_id, uint16_t queue_id,
 
 	memset(qinfo, 0, sizeof(*qinfo));
 	dev->dev_ops->rxq_info_get(dev, queue_id, qinfo);
+	qinfo->queue_state = dev->data->rx_queue_state[queue_id];
+
 	return 0;
 }
 
@@ -5082,6 +5084,7 @@ rte_eth_tx_queue_info_get(uint16_t port_id, uint16_t queue_id,
 
 	memset(qinfo, 0, sizeof(*qinfo));
 	dev->dev_ops->txq_info_get(dev, queue_id, qinfo);
+	qinfo->queue_state = dev->data->tx_queue_state[queue_id];
 
 	return 0;
 }
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 3b773b6..a0d01d2 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -1588,6 +1588,13 @@ struct rte_eth_dev_info {
 };
 
 /**
+ * RX/TX queue states
+ */
+#define RTE_ETH_QUEUE_STATE_STOPPED 0
+#define RTE_ETH_QUEUE_STATE_STARTED 1
+#define RTE_ETH_QUEUE_STATE_HAIRPIN 2
+
+/**
  * Ethernet device RX queue information structure.
  * Used to retrieve information about configured queue.
  */
@@ -1595,6 +1602,7 @@ struct rte_eth_rxq_info {
 	struct rte_mempool *mp;     /**< mempool used by that queue. */
 	struct rte_eth_rxconf conf; /**< queue config parameters. */
 	uint8_t scattered_rx;       /**< scattered packets RX supported. */
+	uint8_t queue_state;        /**< one of RTE_ETH_QUEUE_STATE_*. */
 	uint16_t nb_desc;           /**< configured number of RXDs. */
 	uint16_t rx_buf_size;       /**< hardware receive buffer size. */
 } __rte_cache_min_aligned;
@@ -1606,6 +1614,7 @@ struct rte_eth_rxq_info {
 struct rte_eth_txq_info {
 	struct rte_eth_txconf conf; /**< queue config parameters. */
 	uint16_t nb_desc;           /**< configured number of TXDs. */
+	uint8_t queue_state;        /**< one of RTE_ETH_QUEUE_STATE_*. */
 } __rte_cache_min_aligned;
 
 /* Generic Burst mode flag definition, values can be ORed. */
-- 
2.7.4


  parent reply	other threads:[~2021-04-15  2:40 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-18 12:25 [dpdk-dev] [PATCH] ethdev: add queue state when retrieve queue information Lijun Ou
2021-03-22  9:22 ` Ferruh Yigit
2021-03-22  9:38   ` Kinsella, Ray
2021-03-22  9:39   ` oulijun
2021-03-22 14:49   ` Andrew Rybchenko
2021-03-22 15:45     ` Ananyev, Konstantin
2021-03-22 16:02       ` Andrew Rybchenko
2021-03-22 16:53         ` Ananyev, Konstantin
2021-03-22 17:07           ` Andrew Rybchenko
2021-03-22 18:53             ` Ananyev, Konstantin
2021-03-23 10:13               ` Ferruh Yigit
2021-03-23 10:19                 ` Ferruh Yigit
2021-03-23 11:07                 ` Ananyev, Konstantin
2021-03-25 10:01       ` oulijun
2021-03-25 10:18         ` Ananyev, Konstantin
2021-03-25 11:09 ` [dpdk-dev] [PATCH V2] " Lijun Ou
2021-04-06  0:49   ` oulijun
2021-04-06  1:55     ` Stephen Hemminger
2021-04-14 10:09       ` Ferruh Yigit
2021-04-06 14:02   ` Ananyev, Konstantin
2021-04-14 10:40     ` Ferruh Yigit
2021-04-14 10:56       ` Ananyev, Konstantin
2021-04-15  2:40   ` Lijun Ou [this message]
2021-04-15 12:33     ` [dpdk-dev] [PATCH V3] " Ferruh Yigit
2021-04-15 12:36       ` Thomas Monjalon
2021-04-15 12:45         ` Ferruh Yigit
2021-04-15 13:34           ` Thomas Monjalon
2021-04-16  0:58           ` [dpdk-dev] [Linuxarm] " oulijun
2021-04-16  7:31             ` Ferruh Yigit
2021-04-16  8:46     ` [dpdk-dev] [PATCH V4] " Lijun Ou
2021-04-16  8:58       ` Thomas Monjalon
2021-04-16  9:41         ` Ferruh Yigit
2021-04-16  9:57           ` Thomas Monjalon
2021-04-23 11:08             ` Kinsella, Ray
2021-04-25 16:42               ` Thomas Monjalon
2021-04-26  9:48                 ` Kinsella, Ray
2021-04-16  9:55         ` oulijun
2021-04-16  9:19       ` Ananyev, Konstantin
2021-04-17  3:09       ` [dpdk-dev] [PATCH V5] " Lijun Ou
2021-04-17 22:00         ` Ferruh Yigit
2021-04-19  1:39           ` oulijun
2021-04-19  2:04           ` oulijun
2021-04-19  2:03         ` [dpdk-dev] [PATCH V6] " Lijun Ou
2021-04-19  8:41           ` Thomas Monjalon
2021-04-19  8:58             ` oulijun
2021-04-19  8:57           ` [dpdk-dev] [PATCH v7] " Lijun Ou
2021-04-19  9:03             ` Thomas Monjalon
2021-04-19 10:48               ` Ferruh Yigit
2021-04-23 11:17         ` [dpdk-dev] [PATCH V5] " Kinsella, Ray
2021-04-23 11:26           ` Ananyev, Konstantin
2021-04-23 15:43             ` Kinsella, Ray

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1618454426-21457-1-git-send-email-oulijun@huawei.com \
    --to=oulijun@huawei.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=linuxarm@openeuler.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.