X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fipsec-secgw%2Fevent_helper.c;h=172ab8e716e43d9b97b18291ed77b4f11dd2ad0e;hb=a2b445b810ac75566ea2f05e66817dd96c0e3aff;hp=e8600f5e9095dc7fde601d4970e99fe0d5bf1db8;hpb=86738ebe1e3d1c16b53e1b235e49c2fd8a76871f;p=dpdk.git diff --git a/examples/ipsec-secgw/event_helper.c b/examples/ipsec-secgw/event_helper.c index e8600f5e90..172ab8e716 100644 --- a/examples/ipsec-secgw/event_helper.c +++ b/examples/ipsec-secgw/event_helper.c @@ -716,6 +716,16 @@ eh_initialize_eventdev(struct eventmode_conf *em_conf) } } + 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++) { @@ -782,8 +792,8 @@ eh_rx_adapter_configure(struct eventmode_conf *em_conf, 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 */ @@ -796,10 +806,21 @@ eh_rx_adapter_configure(struct eventmode_conf *em_conf, 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, @@ -1353,7 +1374,7 @@ eh_display_rx_adapter_conf(struct eventmode_conf *em_conf) 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); @@ -1688,6 +1709,13 @@ eh_devs_init(struct eh_conf *conf) 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) {