>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. > 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