> Add atomic tests to the test-eventdev app which correspond to the order > tests but use exclusively atomic queues. > > The test detects if port maintenance is required, and so they are compatible > with event devices such as the distributed software eventdev. > > To verify atomicity, a spinlock is used for each combination of stage and > flow. > It is acquired whenever an event is dequeued for processing and released > when > processing is finished. > > The tests will fail if a port attempts to acquire a lock which is already > held. > > Luka Jankovic (4): > eventdev: atomic common for test-eventdev app > eventdev: add atomic queue test to test-evnetdev app > eventdev: add atomic atq to test-eventdev app > eventdev: documentation for atomic queue and atomic atq tests >
Series-tested-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > app/test-eventdev/evt_common.h | 9 + > app/test-eventdev/meson.build | 3 + > app/test-eventdev/test_atomic_atq.c | 216 +++ > app/test-eventdev/test_atomic_common.c | 134 ++ > app/test-eventdev/test_atomic_common.h | 85 + > app/test-eventdev/test_atomic_queue.c | 230 +++ > .../tools/img/eventdev_atomic_atq_test.svg | 1588 +++++++++++++++ > .../tools/img/eventdev_atomic_queue_test.svg | 1701 > +++++++++++++++++ > doc/guides/tools/testeventdev.rst | 155 ++ > 9 files changed, 4121 insertions(+) > create mode 100644 app/test-eventdev/test_atomic_atq.c > create mode 100644 app/test-eventdev/test_atomic_common.c > create mode 100644 app/test-eventdev/test_atomic_common.h > create mode 100644 app/test-eventdev/test_atomic_queue.c > create mode 100644 doc/guides/tools/img/eventdev_atomic_atq_test.svg > create mode 100644 > doc/guides/tools/img/eventdev_atomic_queue_test.svg > > --- > v7: > * Refactor common atomic test functionality into separate common file. > * Implement atomic atq > > v6: > * Revert the use of event.u64 to mbufs as the Marvell CNXK platform > assumes > event.u64 to be 8-byte aligned, which causes the test to fail. > * Clarified deadlock error message. > > v5: > * Updated documentation for dpdk-test-eventdev > > v4: > * Fix code style issues. > * Remove unused imports. > > v3: > * Use struct to avoid bit operations when accessing event u64. > * Changed __rte_always_inline to inline for processing stages. > * Introduce idle timeout constant. > * Formatting and cleanup. > > v2: > * Changed to only check queue, flow combination, not port, queue, flow. > * Lock is only held when a packet is processed. > * Utilize event u64 instead of mbuf. > * General cleanup. > > --- > 2.34.1