numam-dpdk/app/test
Harry van Haaren 8b6b2bf6b5 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: f28f3594de ("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>
2020-09-21 16:37:59 +02:00
..
test_cfgfiles/etc test: move to app directory 2019-02-26 15:29:27 +01:00
autotest_data.py eal: register non-EAL threads as lcores 2020-07-08 14:41:05 +02:00
autotest_runner.py test: fix autotest crash 2019-07-04 23:44:58 +02:00
autotest_test_funcs.py test/mcslock: add MCS queued lock unit test 2019-07-08 10:57:14 +02:00
autotest.py add python2 deprecation notice 2020-07-21 22:58:18 +02:00
commands.c replace unused attributes 2020-04-16 18:30:58 +02:00
get-coremask.sh app/test: remove meson dependency on file in /sys 2020-01-20 16:37:27 +01:00
has-hugepage.sh test: remove meson dependency on /proc file 2020-04-15 15:45:24 +02:00
meson.build drivers/net: fix exposing internal headers 2020-07-11 06:18:54 +02:00
packet_burst_generator.c net: use IPV4 VHL constant 2019-11-20 17:36:06 +01:00
packet_burst_generator.h net: add rte prefix to UDP structure 2019-05-24 13:34:46 +02:00
process.h test: fix build without ring PMD 2020-02-16 19:08:53 +01:00
resource.c test: move to app directory 2019-02-26 15:29:27 +01:00
resource.h use appropriate EAL macro for constructors 2019-03-27 23:10:57 +01:00
sample_packet_forward.c test: move to app directory 2019-02-26 15:29:27 +01:00
sample_packet_forward.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_acl.c test: skip some subtests in no-huge mode 2020-03-24 11:14:22 +01:00
test_acl.h test/acl: add 32-bit range test case 2020-02-13 14:43:56 +01:00
test_alarm.c build/freebsd: rename macro BSDPAPP to FREEBSD 2019-03-12 23:01:14 +01:00
test_atomic.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_barrier.c test/barrier: fix for Power CPUs 2019-05-09 21:58:31 +02:00
test_bitmap.c bitmap: add init with all bits set 2020-04-15 16:10:12 +02:00
test_bitops.c test/bitops: add bit operations test case 2020-06-16 14:34:39 +02:00
test_bitratestats.c test: cleanup when leaving bitrate and latency tests 2020-05-19 14:13:19 +02:00
test_bpf.c bpf: support packet data load instructions 2020-06-24 23:42:04 +02:00
test_byteorder.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_cfgfile.c test/cfgfile: replace license text with SPDX tag 2019-11-28 03:12:55 +01:00
test_cmdline_cirbuf.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_cmdline_etheraddr.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_cmdline_ipaddr.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_cmdline_lib.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_cmdline_num.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_cmdline_portlist.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_cmdline_string.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_cmdline.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_cmdline.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_common.c test/common: fix log2 check 2019-12-20 15:05:41 +01:00
test_compressdev_test_buffer.h add top-level SPDX license tag 2020-02-22 16:11:53 +01:00
test_compressdev.c test/compress: check IM buffer too small 2020-04-19 17:15:14 +02:00
test_cpuflags.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_crc.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_cryptodev_aead_test_vectors.h test/crypto: add ChaCha20-Poly1305 cases 2020-07-08 18:16:41 +02:00
test_cryptodev_aes_test_vectors.h test/crypto: change cipher offset for ESN vector 2020-07-18 23:09:00 +02:00
test_cryptodev_asym_util.h test/crypto: add ECPM cases 2020-01-15 15:01:55 +01:00
test_cryptodev_asym.c test/crypto: fix asymmetric session mempool creation 2020-07-08 00:15:35 +02:00
test_cryptodev_blockcipher.c test/crypto: skip unsupported cases 2020-07-20 15:49:24 +05:30
test_cryptodev_blockcipher.h test/crypto: do not check for PMD 2020-04-19 22:45:40 +02:00
test_cryptodev_des_test_vectors.h test/crypto: do not check for PMD 2020-04-19 22:45:40 +02:00
test_cryptodev_dh_test_vectors.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_cryptodev_dsa_test_vectors.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_cryptodev_ecdsa_test_vectors.h test/crypto: add ECDSA sign/verify cases 2020-01-15 15:01:55 +01:00
test_cryptodev_ecpm_test_vectors.h test/crypto: add ECPM cases 2020-01-15 15:01:55 +01:00
test_cryptodev_hash_test_vectors.h test/crypto: do not check for PMD 2020-04-19 22:45:40 +02:00
test_cryptodev_hmac_test_vectors.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_cryptodev_kasumi_hash_test_vectors.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_cryptodev_kasumi_test_vectors.h test/crypto: add KASUMI test cases for auth-cipher 2019-07-05 15:28:14 +02:00
test_cryptodev_mixed_test_vectors.h test/crypto: add mixed encypted-digest 2020-01-15 16:45:04 +01:00
test_cryptodev_mod_test_vectors.h test/crypto: check asymmetric crypto 2019-04-02 16:50:24 +02:00
test_cryptodev_rsa_test_vectors.h test/crypto: add RSA cases in QAT and openssl 2019-10-23 16:57:06 +02:00
test_cryptodev_security_docsis_test_vectors.h test/crypto: add DOCSIS security cases 2020-07-08 18:16:16 +02:00
test_cryptodev_security_pdcp_test_func.h test/crypto: add PDCP U-Plane decap cases 2019-10-09 11:50:12 +02:00
test_cryptodev_security_pdcp_test_vectors.h test/crypto: add PDCP U-Plane encap with integrity cases 2019-10-09 11:50:12 +02:00
test_cryptodev_security_pdcp.c test/crypto: add PDCP U-Plane decap cases 2019-10-09 11:50:12 +02:00
test_cryptodev_snow3g_hash_test_vectors.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_cryptodev_snow3g_test_vectors.h test/crypto: add scatter-gather tests for IP and OOP 2019-07-05 15:28:14 +02:00
test_cryptodev_zuc_test_vectors.h test/crypto: add ZUC test cases for auth-cipher 2019-07-05 15:28:14 +02:00
test_cryptodev.c test/crypto: enable feature flag for security 2020-07-18 23:11:14 +02:00
test_cryptodev.h test/crypto: add AES-GCM J0 case 2020-04-05 18:26:04 +02:00
test_cycles.c test/cycles: restore default delay callback 2020-07-27 16:42:19 +02:00
test_debug.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_distributor_perf.c test: fix global variable multiple definitions 2019-10-25 23:16:23 +02:00
test_distributor.c test/distributor: fix spurious failure 2019-10-25 10:27:51 +02:00
test_eal_flags.c test/eal: check invalid CPU value 2020-07-21 20:48:57 +02:00
test_eal_fs.c build/freebsd: rename macro BSDPAPP to FREEBSD 2019-03-12 23:01:14 +01:00
test_efd_perf.c test: fix global variable multiple definitions 2019-10-25 23:16:23 +02:00
test_efd.c log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
test_errno.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_event_crypto_adapter.c test/event_crypto: fix check for HW support 2019-11-26 07:49:31 +01:00
test_event_eth_rx_adapter.c app: check status of getting MAC address 2019-10-07 15:00:55 +02:00
test_event_eth_tx_adapter.c app: check status of getting MAC address 2019-10-07 15:00:55 +02:00
test_event_ring.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_event_timer_adapter.c test: skip tests when missing requirements 2019-06-27 22:34:53 +02:00
test_eventdev.c test/event: fix OCTEON TX2 event device name 2020-01-15 12:06:05 +01:00
test_external_mem.c remove useless include of EAL memory config header 2019-10-09 10:22:24 +02:00
test_fbarray.c eal: hide shared memory config 2019-07-06 10:32:34 +02:00
test_fib6_perf.c test/fib: add IPv6 performance autotests 2019-11-06 00:11:55 +01:00
test_fib6.c test/fib: add IPv6 autotests 2019-11-06 00:11:44 +01:00
test_fib_perf.c test: fix build with gcc 10 2020-03-04 10:11:07 +01:00
test_fib.c test/fib: add autotests 2019-11-06 00:11:44 +01:00
test_flow_classify.c test/flow_classify: enable multi-sockets system 2020-05-11 23:51:22 +02:00
test_flow_classify.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_func_reentrancy.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_graph_perf.c test/graph: fix memory leaks in performance tests 2020-05-15 11:00:55 +02:00
test_graph.c test/graph: fix memory leaks in functional tests 2020-05-15 11:00:18 +02:00
test_hash_functions.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_hash_multiwriter.c test: skip tests when missing requirements 2019-06-27 22:34:53 +02:00
test_hash_perf.c hash: add bulk lookup with signatures array 2020-04-25 19:26:47 +02:00
test_hash_readwrite_lf_perf.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_hash_readwrite.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_hash.c log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
test_interrupts.c test/interrupt: account for race with callback 2019-09-13 17:00:19 +02:00
test_ipfrag.c test/ipfrag: add unit test case 2020-04-25 15:15:30 +02:00
test_ipsec_perf.c test/ipsec: add performance cases 2020-05-11 13:17:43 +02:00
test_ipsec_sad.c test/ipsec: add SAD autotests 2019-10-23 16:57:06 +02:00
test_ipsec.c test/ipsec: fix crash in session destroy 2020-04-05 18:26:04 +02:00
test_kni.c kni: check code of promiscuous mode switch 2019-10-07 15:00:54 +02:00
test_kvargs.c kvargs: fix buffer overflow when parsing list 2020-03-27 17:03:46 +01:00
test_latencystats.c test: cleanup when leaving bitrate and latency tests 2020-05-19 14:13:19 +02:00
test_lcores.c eal: add lcore iterators 2020-07-08 14:41:06 +02:00
test_link_bonding_mode4.c test: clean LTO warnings 2019-11-08 15:23:37 +01:00
test_link_bonding_rssconf.c app: check status of getting ethdev info 2019-10-07 14:45:35 +02:00
test_link_bonding.c test/bonding: fix LSC timeout unit 2019-10-23 16:43:08 +02:00
test_logs.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_lpm6_data.h app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_lpm6_perf.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_lpm6.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_lpm_perf.c lpm: hide defer queue handle 2020-07-11 14:35:04 +02:00
test_lpm.c lpm: hide defer queue handle 2020-07-11 14:35:04 +02:00
test_malloc.c mem: fix overflow on allocation 2020-05-11 17:44:13 +02:00
test_mbuf.c test/mbuf: fix a dynamic flag log 2020-06-11 09:49:43 +02:00
test_mcslock.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_member_perf.c test: fix global variable multiple definitions 2019-10-25 23:16:23 +02:00
test_member.c replace packed attributes 2020-04-16 18:16:46 +02:00
test_memcpy_perf.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_memcpy.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_memory.c remove useless include of EAL memory config header 2019-10-09 10:22:24 +02:00
test_mempool_perf.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_mempool.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_memzone.c test: clean LTO warnings 2019-11-08 15:23:37 +01:00
test_meter.c meter: replace color definitions 2019-04-11 14:27:32 +02:00
test_metrics.c test: use common macro RTE_DIM 2019-10-27 14:40:55 +01:00
test_mp_secondary.c eal: add multiprocess disable API 2020-07-08 14:41:06 +02:00
test_pdump.c ring: prepare ring to allow new sync schemes 2020-04-21 11:34:09 +02:00
test_pdump.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_per_lcore.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_pmd_perf.c app: remove extra new line after link duplex 2020-05-12 04:07:22 +02:00
test_pmd_ring_perf.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_pmd_ring.c app: check status of getting link info 2019-10-07 15:00:54 +02:00
test_power_cpufreq.c test/power: add cases for turbo feature 2019-07-05 10:42:43 +02:00
test_power_kvm_vm.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_power.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_prefetch.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_rand_perf.c eal: introduce random generator with upper bound 2019-06-28 15:23:55 +02:00
test_rawdev.c rawdev: add private data size to info query 2020-09-11 11:50:53 +02:00
test_rcu_qsbr_perf.c test/rcu: enhance log nomenclature 2019-10-21 17:54:40 +02:00
test_rcu_qsbr.c test/rcu: add defer queue APIs tests 2020-04-22 20:46:00 +02:00
test_reciprocal_division_perf.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_reciprocal_division.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_red.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_reorder.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_resource.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_rib6.c remove blank lines at end of file 2019-11-26 00:12:08 +01:00
test_rib.c test/rib: speed up rib autotests 2019-11-07 17:46:43 +01:00
test_ring_hts_stress.c test/ring: add contention stress test for HTS ring 2020-04-21 12:52:55 +02:00
test_ring_mpmc_stress.c test/ring: add contention stress test 2020-04-21 11:34:09 +02:00
test_ring_mt_peek_stress.c test/ring: rename stress test for MT peek API 2020-07-03 12:36:04 +02:00
test_ring_perf.c test/ring: fix statistics in bulk enq/dequeue 2020-07-01 10:41:19 +02:00
test_ring_rts_stress.c test/ring: add contention stress test for RTS ring 2020-04-21 12:52:55 +02:00
test_ring_st_peek_stress.c test/ring: add stress test for ST peek API 2020-07-03 12:05:25 +02:00
test_ring_stress_impl.h test/ring: add contention stress test 2020-04-21 11:34:09 +02:00
test_ring_stress.c test/ring: rename stress test for MT peek API 2020-07-03 12:36:04 +02:00
test_ring_stress.h test/ring: rename stress test for MT peek API 2020-07-03 12:36:04 +02:00
test_ring.c test/ring: reduce compilation time 2020-07-03 12:05:05 +02:00
test_ring.h test/ring: add custom element size functional tests 2020-01-19 19:32:50 +01:00
test_rwlock.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_sched.c test/sched: add subport config flexibility 2019-10-25 17:51:30 +02:00
test_security.c test/security: add DOCSIS capability checks 2020-07-08 18:16:16 +02:00
test_service_cores.c test/service: fix race condition on stopping lcore 2020-09-21 16:37:59 +02:00
test_spinlock.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_stack_perf.c test: use common macro RTE_DIM 2019-10-27 14:40:55 +01:00
test_stack.c test: skip tests when missing requirements 2019-06-27 22:34:53 +02:00
test_string_fns.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_table_acl.c net: replace IPv4/v6 constants with uppercase name 2019-06-03 16:54:54 +02:00
test_table_acl.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_table_combined.c remove extra blank lines at end of files 2019-08-05 15:19:32 +02:00
test_table_combined.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_table_pipeline.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_table_pipeline.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_table_ports.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_table_ports.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_table_tables.c remove extra blank lines at end of files 2019-08-05 15:19:32 +02:00
test_table_tables.h test: move to app directory 2019-02-26 15:29:27 +01:00
test_table.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_table.h replace unused attributes 2020-04-16 18:30:58 +02:00
test_tailq.c remove useless include of EAL memory config header 2019-10-09 10:22:24 +02:00
test_telemetry_json.c telemetry: add utility functions for creating JSON 2020-05-10 23:52:41 +02:00
test_thash.c test/thash: replace license text with SPDX tag 2019-11-28 03:02:51 +01:00
test_ticketlock.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_timer_perf.c build/linux: rename macro from LINUXAPP to LINUX 2019-03-12 17:31:22 +01:00
test_timer_racecond.c log: introduce logtype register macro 2020-07-03 15:52:51 +02:00
test_timer_secondary.c app: use common macro RTE_DIM 2020-02-05 14:37:41 +01:00
test_timer.c replace unused attributes 2020-04-16 18:30:58 +02:00
test_trace_perf.c test/trace: add performance test cases 2020-04-23 15:40:04 +02:00
test_trace_register.c trace: simplify trace point registration 2020-07-05 21:34:21 +02:00
test_trace.c test/trace: add functional test cases 2020-04-23 15:40:03 +02:00
test_trace.h test/trace: add functional test cases 2020-04-23 15:40:03 +02:00
test_version.c test: move to app directory 2019-02-26 15:29:27 +01:00
test_xmmt_ops.h test: move to app directory 2019-02-26 15:29:27 +01:00
test.c test: fix build without ring PMD 2020-02-16 19:08:53 +01:00
test.h test: remove redundant macro 2020-04-19 17:15:14 +02:00
virtual_pmd.c ethdev: make stats and xstats reset callbacks return int 2019-10-07 15:00:54 +02:00
virtual_pmd.h net: add rte prefix to ether structures 2019-05-24 13:34:45 +02:00