test/service: fix race condition on stopping lcore
authorHarry van Haaren <harry.van.haaren@intel.com>
Mon, 14 Sep 2020 14:31:18 +0000 (15:31 +0100)
committerDavid Marchand <david.marchand@redhat.com>
Mon, 21 Sep 2020 14:37:59 +0000 (16:37 +0200)
commit8b6b2bf6b5788c56765e128e5af3ab73b8eae69d
tree9272ec7b28210218efd44a0a592e29cf68bdb85a
parent8929de043eb4581ca973d383ea4053ac209fcb95
test/service: fix race condition on stopping lcore

This commit fixes a potential race condition in the tests
where the lcore running a service would increment a counter
that was already reset by the test-suite thread. The resulting
race-condition incremented value could cause CI failures, as
indicated by DPDK's CI.

This patch fixes the race-condition by making use of the
added rte_service_lcore_active() API, which indicates when
a service-core is no longer in the service-core polling loop.

The unit test makes use of the above function to detect when
all statistics increments are done in the service-core thread,
and then the unit test continues finalizing and checking state.

Fixes: f28f3594ded2 ("service: add attribute API")

Reported-by: David Marchand <david.marchand@redhat.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
app/test/test_service_cores.c