[v2,02/16] test/bbdev: extend HARQ tolerance
Checks
Commit Message
HARQ memory implementation could have different size assumptions.
Extending HARQ tolerance to cover different implementations.
Fixes: 335c11fd276 ("app/bbdev: support HARQ validation")
Cc: stable@dpdk.org
Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
---
app/test-bbdev/test_bbdev_perf.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
Comments
On 2/15/23 18:09, Hernan Vargas wrote:
> HARQ memory implementation could have different size assumptions.
> Extending HARQ tolerance to cover different implementations.
>
> Fixes: 335c11fd276 ("app/bbdev: support HARQ validation")
> Cc: stable@dpdk.org
>
> Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
> ---
> app/test-bbdev/test_bbdev_perf.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/app/test-bbdev/test_bbdev_perf.c b/app/test-bbdev/test_bbdev_perf.c
> index 027f32cbf1..74e7e13940 100644
> --- a/app/test-bbdev/test_bbdev_perf.c
> +++ b/app/test-bbdev/test_bbdev_perf.c
> @@ -95,6 +95,7 @@
> #define K0_3_1 56 /* K0 fraction numerator for rv 3 and BG 1 */
> #define K0_3_2 43 /* K0 fraction numerator for rv 3 and BG 2 */
>
> +#define HARQ_MEM_TOLERANCE 256
> static struct test_bbdev_vector test_vector;
>
> /* Switch between PMD and Interrupt for throughput TC */
> @@ -2090,13 +2091,17 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op,
> uint16_t data_len = rte_pktmbuf_data_len(m) - offset;
> total_data_size += orig_op->segments[i].length;
>
> - TEST_ASSERT(orig_op->segments[i].length <
> - (uint32_t)(data_len + 64),
> + TEST_ASSERT(orig_op->segments[i].length < (uint32_t)(data_len + HARQ_MEM_TOLERANCE),
> "Length of segment differ in original (%u) and filled (%u) op",
> orig_op->segments[i].length, data_len);
> harq_orig = (int8_t *) orig_op->segments[i].addr;
> harq_out = rte_pktmbuf_mtod_offset(m, int8_t *, offset);
>
> + /* Cannot compare HARQ output data for such cases */
> + if ((ldpc_llr_decimals > 1) && ((ops_ld->op_flags & RTE_BBDEV_LDPC_LLR_COMPRESSION)
> + || (ops_ld->op_flags & RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION)))
> + break;
> +
> if (!(ldpc_cap_flags &
> RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
> ) || (ops_ld->op_flags &
> @@ -2172,7 +2177,7 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op,
>
> /* Validate total mbuf pkt length */
> uint32_t pkt_len = rte_pktmbuf_pkt_len(op->data) - op->offset;
> - TEST_ASSERT(total_data_size < pkt_len + 64,
> + TEST_ASSERT(total_data_size < pkt_len + HARQ_MEM_TOLERANCE,
> "Length of data differ in original (%u) and filled (%u) op",
> total_data_size, pkt_len);
>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Thanks,
Maxime
@@ -95,6 +95,7 @@
#define K0_3_1 56 /* K0 fraction numerator for rv 3 and BG 1 */
#define K0_3_2 43 /* K0 fraction numerator for rv 3 and BG 2 */
+#define HARQ_MEM_TOLERANCE 256
static struct test_bbdev_vector test_vector;
/* Switch between PMD and Interrupt for throughput TC */
@@ -2090,13 +2091,17 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op,
uint16_t data_len = rte_pktmbuf_data_len(m) - offset;
total_data_size += orig_op->segments[i].length;
- TEST_ASSERT(orig_op->segments[i].length <
- (uint32_t)(data_len + 64),
+ TEST_ASSERT(orig_op->segments[i].length < (uint32_t)(data_len + HARQ_MEM_TOLERANCE),
"Length of segment differ in original (%u) and filled (%u) op",
orig_op->segments[i].length, data_len);
harq_orig = (int8_t *) orig_op->segments[i].addr;
harq_out = rte_pktmbuf_mtod_offset(m, int8_t *, offset);
+ /* Cannot compare HARQ output data for such cases */
+ if ((ldpc_llr_decimals > 1) && ((ops_ld->op_flags & RTE_BBDEV_LDPC_LLR_COMPRESSION)
+ || (ops_ld->op_flags & RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION)))
+ break;
+
if (!(ldpc_cap_flags &
RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
) || (ops_ld->op_flags &
@@ -2172,7 +2177,7 @@ validate_op_harq_chain(struct rte_bbdev_op_data *op,
/* Validate total mbuf pkt length */
uint32_t pkt_len = rte_pktmbuf_pkt_len(op->data) - op->offset;
- TEST_ASSERT(total_data_size < pkt_len + 64,
+ TEST_ASSERT(total_data_size < pkt_len + HARQ_MEM_TOLERANCE,
"Length of data differ in original (%u) and filled (%u) op",
total_data_size, pkt_len);