}
}
+ return 0;
+}
+
+static int
+eh_start_eventdev(struct eventmode_conf *em_conf)
+{
+ struct eventdev_params *eventdev_config;
+ int nb_eventdev = em_conf->nb_eventdev;
+ int i, ret;
+
/* Start event devices */
for (i = 0; i < nb_eventdev; i++) {
uint32_t service_id, socket_id, nb_elem;
struct rte_mempool *vector_pool = NULL;
uint32_t lcore_id = rte_lcore_id();
+ int ret, portid, nb_ports = 0;
uint8_t eventdev_id;
- int ret;
int j;
/* Get event dev ID */
return ret;
}
+ RTE_ETH_FOREACH_DEV(portid)
+ if ((em_conf->eth_portmask & (1 << portid)))
+ nb_ports++;
+
if (em_conf->ext_params.event_vector) {
socket_id = rte_lcore_to_socket_id(lcore_id);
- nb_elem = (nb_bufs_in_pool / em_conf->ext_params.vector_size)
- + 1;
+
+ if (em_conf->vector_pool_sz) {
+ nb_elem = em_conf->vector_pool_sz;
+ } else {
+ nb_elem = (nb_bufs_in_pool /
+ em_conf->ext_params.vector_size) + 1;
+ if (per_port_pool)
+ nb_elem = nb_ports * nb_elem;
+ }
vector_pool = rte_event_vector_pool_create(
"vector_pool", nb_elem, 0,
for (i = 0; i < nb_rx_adapter; i++) {
adapter = &(em_conf->rx_adapter[i]);
sprintf(print_buf,
- "\tRx adaper ID: %-2d\tConnections: %-2d\tEvent dev ID: %-2d",
+ "\tRx adapter ID: %-2d\tConnections: %-2d\tEvent dev ID: %-2d",
adapter->adapter_id,
adapter->nb_connections,
adapter->eventdev_id);
return ret;
}
+ /* Start eventdev */
+ ret = eh_start_eventdev(em_conf);
+ if (ret < 0) {
+ EH_LOG_ERR("Failed to start event dev %d", ret);
+ return ret;
+ }
+
/* Start eth devices after setting up adapter */
RTE_ETH_FOREACH_DEV(port_id) {