> -----Original Message-----
> From: Pavan Nikhilesh Bhagavatula <pbhagavat...@marvell.com>
> Sent: Wednesday, September 22, 2021 2:22 AM
> To: Naga Harish K, S V <s.v.naga.haris...@intel.com>; Jerin Jacob
> Kollanukkaran <jer...@marvell.com>; Jayatheerthan, Jay
> <jay.jayatheert...@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [EXT] [dpdk-dev] [PATCH v2 4/5] eventdev/rx_adapter:
> implement per queue event buffer
> 
> >this patch implement the per queue event buffer after required
> >validations.
> >
> >Signed-off-by: Naga Harish K S V <s.v.naga.haris...@intel.com>
> >---
> > lib/eventdev/rte_event_eth_rx_adapter.c | 188
> >++++++++++++++++++------
> > 1 file changed, 139 insertions(+), 49 deletions(-)
> >
> 
> <snip>
> 
> >@@ -2277,6 +2356,8 @@
> >rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id,
> >
> >     /* Event buffer with default size = 6*BATCH_SIZE */
> >     rxa_params.event_buf_size = ETH_EVENT_BUFFER_SIZE;
> >+    rxa_params.use_queue_event_buf = false;
> >+
> 
> Both these params should be passed to the driver layer when
> RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT is set in caps.
> 

I think the event buffer is not required for 
RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT
Adapter capability.
In the existing implementation for adapter create, 
there is no special handling for RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT 
capability.

Let us know this is still a valid requirement.


> >     return rxa_create(id, dev_id, &rxa_params, conf_cb, conf_arg); }
> >
> >@@ -2296,9 +2377,9 @@
> >rte_event_eth_rx_adapter_create_with_params(uint8_t id, uint8_t
> dev_id,
> >     if (rxa_params == NULL) {
> >             rxa_params = &temp_params;
> >             rxa_params->event_buf_size =
> >ETH_EVENT_BUFFER_SIZE;
> >-    }
> >-
> >-    if (rxa_params->event_buf_size == 0)
> >+            rxa_params->use_queue_event_buf = false;
> >+    } else if ((!rxa_params->use_queue_event_buf &&
> >+                rxa_params->event_buf_size == 0))
> >             return -EINVAL;
> >
> >     pc = rte_malloc(NULL, sizeof(*pc), 0); @@ -2364,7 +2445,8 @@
> >rte_event_eth_rx_adapter_free(uint8_t id)
> >     if (rx_adapter->default_cb_arg)
> >             rte_free(rx_adapter->conf_arg);
> >     rte_free(rx_adapter->eth_devices);
> >-    rte_free(rx_adapter->event_enqueue_buffer.events);
> >+    if (!rx_adapter->use_queue_event_buf)
> >+            rte_free(rx_adapter->event_enqueue_buffer.events);
> >     rte_free(rx_adapter);
> >     event_eth_rx_adapter[id] = NULL;
> >
> >@@ -2468,6 +2550,14 @@
> >rte_event_eth_rx_adapter_queue_add(uint8_t id,
> >             return -EINVAL;
> >     }
> >
> >+    if ((rx_adapter->use_queue_event_buf &&
> >+         queue_conf->event_buf_size == 0) ||
> >+        (!rx_adapter->use_queue_event_buf &&
> >+         queue_conf->event_buf_size != 0)) {
> >+            RTE_EDEV_LOG_ERR("Invalid Event buffer size for the
> >queue");
> >+            return -EINVAL;
> >+    }
> >+
> >     dev_info = &rx_adapter->eth_devices[eth_dev_id];
> >
> >     if (cap &
> >RTE_EVENT_ETH_RX_ADAPTER_CAP_INTERNAL_PORT) {
> >--
> >2.25.1

Reply via email to