From a442ca2d230209e1bbc9262abc7c871ff33ef627 Mon Sep 17 00:00:00 2001 From: Raslan Darawsheh Date: Tue, 5 Jul 2022 11:09:16 +0300 Subject: [PATCH] app/regex: fix mbuf size for multi-segment buffer When allocating multi segmented buffers, and in case there is a remainder in total buf len, the actual job len might be more than expected job_len. This adds additional space in the mbuf in the multi seg case, to allow the remaining memory to be stored in one segment. Fixes: c1d1b94eec58 ("app/regex: fix number of matches") Cc: stable@dpdk.org Signed-off-by: Raslan Darawsheh Acked-by: Ori Kam --- app/test-regex/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/test-regex/main.c b/app/test-regex/main.c index fe90e11313..351c36a879 100644 --- a/app/test-regex/main.c +++ b/app/test-regex/main.c @@ -412,8 +412,8 @@ run_regex(void *args) mbuf_mp = rte_pktmbuf_pool_create(mbuf_pool, rte_align32pow2(nb_jobs * nb_qps * nb_segs), 0, 0, (nb_segs == 1) ? MBUF_SIZE : - (rte_align32pow2(job_len) / nb_segs + - RTE_PKTMBUF_HEADROOM), + (rte_align32pow2(job_len + (data_len % nb_jobs)) / + nb_segs + RTE_PKTMBUF_HEADROOM), rte_socket_id()); if (mbuf_mp == NULL) { printf("Error, can't create memory pool\n"); -- 2.39.5