mbox series

[v2,0/4] test/stack: improve multithreaded test

Message ID 20200812191847.16529-1-steven.lariau@arm.com (mailing list archive)
Headers
Series test/stack: improve multithreaded test |

Message

Steven Lariau Aug. 12, 2020, 7:18 p.m. UTC
  The current multithread DPDK stack test is using atomics operations to
share information between threads.
The lockfree stack implementation also uses atomic operations.
This is an issue for testing. The atomics operations for the test may
add some extra synchronization to the stack implementation,
that doesn't exist.
It makes it harder to find bugs related to memory orderings and data
races. The main goal of the patch is to remove all atomics operations
and any other form of data sharing in this test, to make sure that
most of the execution time is spent on the stack library.

Furthermore, this patch uses more appropriate functions to start /
wait cores in order to simplify the code.
The patch also adds code to propagate errors on any slave core to the
master.

v2: replace stack variable for arguments with a global variable.

Steven Lariau (4):
  test/stack: avoid trivial memory allocations
  test/stack: launch tests with mp remote launch API
  test/stack: propagate errors to main core
  test/stack: remove atomics operations

 app/test/test_stack.c | 80 +++++++++----------------------------------
 1 file changed, 17 insertions(+), 63 deletions(-)
  

Comments

David Marchand Sept. 30, 2020, 7:12 p.m. UTC | #1
On Wed, Aug 12, 2020 at 9:20 PM Steven Lariau <steven.lariau@arm.com> wrote:
>
> The current multithread DPDK stack test is using atomics operations to
> share information between threads.
> The lockfree stack implementation also uses atomic operations.
> This is an issue for testing. The atomics operations for the test may
> add some extra synchronization to the stack implementation,
> that doesn't exist.
> It makes it harder to find bugs related to memory orderings and data
> races. The main goal of the patch is to remove all atomics operations
> and any other form of data sharing in this test, to make sure that
> most of the execution time is spent on the stack library.
>
> Furthermore, this patch uses more appropriate functions to start /
> wait cores in order to simplify the code.
> The patch also adds code to propagate errors on any slave core to the
> master.
>
> v2: replace stack variable for arguments with a global variable.
>
> Steven Lariau (4):
>   test/stack: avoid trivial memory allocations
>   test/stack: launch tests with mp remote launch API
>   test/stack: propagate errors to main core
>   test/stack: remove atomics operations
>
>  app/test/test_stack.c | 80 +++++++++----------------------------------
>  1 file changed, 17 insertions(+), 63 deletions(-)
>

Series applied, thanks Steven.