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 supportquoted
-----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.rstb/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 portfor 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 Rxqueue is encoded in the ``ev`` field of ``struct rte_event_eth_rx_adapter_queue_conf``. The servicing_weight memberofquoted
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