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 <[email protected]>
Signed-off-by: Akhil Goyal <[email protected]>
---
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 00aadc9a47..cc03b33ac5 100644
--- a/app/test-crypto-perf/cperf_test_common.c
+++ b/app/test-crypto-perf/cperf_test_common.c
@@ -198,9 +198,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);
--
2.25.1