test/distributor: fix worker notification in burst mode
authorStanislaw Kardach <kda@semihalf.com>
Wed, 28 Apr 2021 14:25:52 +0000 (16:25 +0200)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 5 May 2021 16:21:26 +0000 (18:21 +0200)
Because a single worker can process more than one packet from the
distributor, the final set of notifications in burst mode should be
sent one-by-one to ensure that each worker has a chance to wake up.

This fix mirrors the change done in the functional test by
commit f72bff0ec272 ("test/distributor: fix quitting workers in burst
mode").

Fixes: c3eabff124e6 ("distributor: add unit tests")
Cc: stable@dpdk.org
Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Acked-by: David Hunt <david.hunt@intel.com>
Tested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Reviewed-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
app/test/test_distributor_perf.c

index b25f79a..371a14b 100644 (file)
@@ -188,9 +188,10 @@ quit_workers(struct rte_distributor *d, struct rte_mempool *p)
        rte_mempool_get_bulk(p, (void *)bufs, num_workers);
 
        quit = 1;
-       for (i = 0; i < num_workers; i++)
+       for (i = 0; i < num_workers; i++) {
                bufs[i]->hash.usr = i << 1;
-       rte_distributor_process(d, bufs, num_workers);
+               rte_distributor_process(d, &bufs[i], 1);
+       }
 
        rte_mempool_put_bulk(p, (void *)bufs, num_workers);