From 31edfc4af90b0d17bfd4fb3882f520deb0d63b36 Mon Sep 17 00:00:00 2001 From: Pavan Nikhilesh Date: Mon, 23 May 2022 15:29:54 +0530 Subject: [PATCH] examples: use mempool cache for vector pool Use mempool cache for vector mempool as vectors are freed by the Tx routine, also increase the minimum pool size to 512 to avoid resource contention on Rx. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- examples/ipsec-secgw/event_helper.c | 8 ++++---- examples/l2fwd-event/main.c | 4 +++- examples/l3fwd/main.c | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/examples/ipsec-secgw/event_helper.c b/examples/ipsec-secgw/event_helper.c index 172ab8e716..b36f20a3fd 100644 --- a/examples/ipsec-secgw/event_helper.c +++ b/examples/ipsec-secgw/event_helper.c @@ -820,12 +820,12 @@ eh_rx_adapter_configure(struct eventmode_conf *em_conf, em_conf->ext_params.vector_size) + 1; if (per_port_pool) nb_elem = nb_ports * nb_elem; + nb_elem = RTE_MAX(512U, nb_elem); } - + nb_elem += rte_lcore_count() * 32; vector_pool = rte_event_vector_pool_create( - "vector_pool", nb_elem, 0, - em_conf->ext_params.vector_size, - socket_id); + "vector_pool", nb_elem, 32, + em_conf->ext_params.vector_size, socket_id); if (vector_pool == NULL) { EH_LOG_ERR("failed to create event vector pool"); return -ENOMEM; diff --git a/examples/l2fwd-event/main.c b/examples/l2fwd-event/main.c index dcc72f3f1e..44303d10c2 100644 --- a/examples/l2fwd-event/main.c +++ b/examples/l2fwd-event/main.c @@ -678,8 +678,10 @@ main(int argc, char **argv) vec_size = rsrc->evt_vec.size; nb_vec = (nb_mbufs + vec_size - 1) / vec_size; + nb_vec = RTE_MAX(512U, nb_vec); + nb_vec += rte_lcore_count() * 32; rsrc->evt_vec_pool = rte_event_vector_pool_create( - "vector_pool", nb_vec, 0, vec_size, rte_socket_id()); + "vector_pool", nb_vec, 32, vec_size, rte_socket_id()); if (rsrc->evt_vec_pool == NULL) rte_panic("Cannot init event vector pool\n"); } diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index 38091aac39..e090328fcc 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -1049,9 +1049,11 @@ init_mem(uint16_t portid, unsigned int nb_mbuf) nb_vec = (nb_mbuf + evt_rsrc->vector_size - 1) / evt_rsrc->vector_size; + nb_vec = RTE_MAX(512U, nb_vec); + nb_vec += rte_lcore_count() * 32; snprintf(s, sizeof(s), "vector_pool_%d", portid); vector_pool[portid] = rte_event_vector_pool_create( - s, nb_vec, 0, evt_rsrc->vector_size, socketid); + s, nb_vec, 32, evt_rsrc->vector_size, socketid); if (vector_pool[portid] == NULL) rte_exit(EXIT_FAILURE, "Failed to create vector pool for port %d\n", -- 2.39.5