From f500d1f0f42a9705a14814ee3f03bd286e9627c9 Mon Sep 17 00:00:00 2001 From: Anoob Joseph Date: Tue, 20 Dec 2022 10:25:33 +0530 Subject: [PATCH] app/crypto-perf: fix number of segments [ upstream commit e03ecc56edd72acb077e2b9bb95ae34f54172a0c ] When segment size is provided, the total number of segments would be calculated. Segment size updates due to headroom/tailroom need to be accounted for when determining total number of segments required. Fixes: c1670ae0022b ("app/crypto-perf: honour min headroom/tailroom") Signed-off-by: Anoob Joseph Signed-off-by: Akhil Goyal --- app/test-crypto-perf/cperf_test_common.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/test-crypto-perf/cperf_test_common.c b/app/test-crypto-perf/cperf_test_common.c index 12925c7f22..58bc2439ed 100644 --- a/app/test-crypto-perf/cperf_test_common.c +++ b/app/test-crypto-perf/cperf_test_common.c @@ -166,9 +166,11 @@ cperf_alloc_common_memory(const struct cperf_options *options, RTE_CACHE_LINE_ROUNDUP(crypto_op_total_size); uint32_t mbuf_size = sizeof(struct rte_mbuf) + options->segment_sz; uint32_t max_size = options->max_buffer_size + options->digest_sz; - uint16_t segments_nb = (max_size % options->segment_sz) ? - (max_size / options->segment_sz) + 1 : - max_size / options->segment_sz; + uint32_t segment_data_len = options->segment_sz - options->headroom_sz - + options->tailroom_sz; + uint16_t segments_nb = (max_size % segment_data_len) ? + (max_size / segment_data_len) + 1 : + (max_size / segment_data_len); uint32_t obj_size = crypto_op_total_size_padded + (mbuf_size * segments_nb);