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