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

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

From: Pavan Nikhilesh Bhagavatula <hidden>
Date: 2021-09-21 20:51:57

this patch implement the per queue event buffer after
required validations.

Signed-off-by: Naga Harish K S V <redacted>
---
lib/eventdev/rte_event_eth_rx_adapter.c | 188
++++++++++++++++++------
1 file changed, 139 insertions(+), 49 deletions(-)
<snip>
quoted hunk ↗ jump to hunk
@@ -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.
quoted hunk ↗ jump to hunk
	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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help