Thread (81 messages) 81 messages, 4 authors, 2021-10-07

Re: [dpdk-dev] [EXT] [PATCH v2 3/5] eventdev/rx_adapter:add per queue event buffer configure support

From: Naga Harish K, S V <hidden>
Date: 2021-09-22 15:39:53

-----Original Message-----
From: Pavan Nikhilesh Bhagavatula <redacted>
Sent: Wednesday, September 22, 2021 2:02 AM
To: Naga Harish K, S V <redacted>; Jerin Jacob
Kollanukkaran [off-list ref]; Jayatheerthan, Jay
[off-list ref]
Cc: dev@dpdk.org
Subject: RE: [EXT] [dpdk-dev] [PATCH v2 3/5] eventdev/rx_adapter:add per
queue event buffer configure support


quoted
-----Original Message-----
From: dev <redacted> On Behalf Of Naga Harish K S V
Sent: Tuesday, September 21, 2021 2:52 PM
To: Jerin Jacob Kollanukkaran <redacted>;
jay.jayatheerthan@intel.com
Cc: dev@dpdk.org
Subject: [EXT] [dpdk-dev] [PATCH v2 3/5] eventdev/rx_adapter:add per
queue event buffer configure support

External Email

----------------------------------------------------------------------
To configure per queue event buffer size, applications sets
``rte_event_eth_rx_adapter_params::use_queue_event_buf`` flag as true
and is passed to ``rte_event_eth_rx_adapter_create_with_params``
api.

The per queue event buffer size is populated  in
``rte_event_eth_rx_adapter_queue_conf::event_buf_size`` and passed to
``rte_event_eth_rx_adapter_queue_add`` api.

Signed-off-by: Naga Harish K S V <redacted>
---
.../prog_guide/event_ethernet_rx_adapter.rst  | 19 ++++++++++++---
----
lib/eventdev/rte_event_eth_rx_adapter.h       |  4 ++++
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
b/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
index dd753613bd..333e6f8192 100644
--- a/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
+++ b/doc/guides/prog_guide/event_ethernet_rx_adapter.rst
@@ -62,12 +62,14 @@ service function and needs to create an event port
for it. The callback is  expected to fill the ``struct
rte_event_eth_rx_adapter_conf structure``  passed to it.

-If the application desires to control the event buffer size, it can
use the -``rte_event_eth_rx_adapter_create_with_params()`` api. The
event buffer size is -specified using ``struct
rte_event_eth_rx_adapter_params::event_buf_size``.
-The function is passed the event device to be associated with the
adapter -and port configuration for the adapter to setup an event port
if the -adapter needs to use a service function.
+If the application desires to control the event buffer size at adapter
level,
+it can use the ``rte_event_eth_rx_adapter_create_with_params()``
api. The event
+buffer size is specified using ``struct
rte_event_eth_rx_adapter_params::
+event_buf_size``. To configure the event buffer size at queue level,
the boolean
+flag ``struct
rte_event_eth_rx_adapter_params::use_queue_event_buf`` need to be
+set to true. The function is passed the event device to be associated
with
+the adapter and port configuration for the adapter to setup an event
port
+if the adapter needs to use a service function.

Adding Rx Queues to the Adapter Instance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -79,7 +81,9 @@ parameter. Event information for packets from this Rx
queue is encoded in the  ``ev`` field of ``struct
rte_event_eth_rx_adapter_queue_conf``. The  servicing_weight member
of
quoted
the struct rte_event_eth_rx_adapter_queue_conf
is the relative polling frequency of the Rx queue and is applicable
when the -adapter uses a service core function.
+adapter uses a service core function. The applications can configure
queue
+event buffer size in ``struct
rte_event_eth_rx_adapter_queue_conf::event_buf_size``
+parameter.

.. code-block:: c
@@ -90,6 +94,7 @@ adapter uses a service core function.
        queue_config.rx_queue_flags = 0;
        queue_config.ev = ev;
        queue_config.servicing_weight = 1;
+	queue_config.event_buf_size = 1024;
Wasn't this set to 6 * BURST_SIZE in the previous patch?
Application may choose to use any value for the event buffer size.
That is the purpose of this change, to change event buffer size as per
Application requirements.

quoted
        err = rte_event_eth_rx_adapter_queue_add(id,
                                                eth_dev_id, diff --git
a/lib/eventdev/rte_event_eth_rx_adapter.h
b/lib/eventdev/rte_event_eth_rx_adapter.h
index a7881097b4..b9f0563244 100644
--- a/lib/eventdev/rte_event_eth_rx_adapter.h
+++ b/lib/eventdev/rte_event_eth_rx_adapter.h
@@ -199,6 +199,8 @@ struct rte_event_eth_rx_adapter_queue_conf {
	 * Valid when
RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR flag is set in
	 * @see
rte_event_eth_rx_adapter_queue_conf::rx_queue_flags.
	 */
+	uint16_t event_buf_size;
+	/**< event buffer size for this queue */
};

/**
@@ -265,6 +267,8 @@ struct rte_event_eth_rx_adapter_params {
	/**< size of event buffer for the adapter.
	 * the size is aligned to BATCH_SIZE and added (2 * BATCH_SIZE)
	 */
+	bool use_queue_event_buf;
+	/**< flag to indicate that event buffer is separate for each
queue */
};

/**
--
2.25.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help