[dpdk-dev] [EXT] [PATCH v2 4/5] eventdev/rx_adapter: implement per queue event buffer

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Tue Sep 21 22:51:51 CEST 2021


>this patch implement the per queue event buffer after
>required validations.
>
>Signed-off-by: Naga Harish K S V <s.v.naga.harish.k at 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.

> 	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



More information about the dev mailing list