numam-dpdk/app/test
Feifei Wang d310d64271 test/ring: reduce duration of performance tests
When testing ring performance in the case that multiple lcores are mapped
to the same physical core, e.g. --lcores '(0-3)@10', it takes a very long
time to wait for the "enqueue_dequeue_bulk_helper" to finish.
This is because too much iteration numbers and extremely low efficiency
for enqueue and dequeue with this kind of core mapping. Following are the
test results to show the above phenomenon:

x86-Intel(R) Xeon(R) Gold 6240:
$sudo ./app/test/dpdk-test --lcores '(0-1)@25'
Testing using two hyperthreads(bulk (size: 8):)
iter_shift:         3     5     7     9     11     13    *15     17     19     21      23
run time:           7s    7s    7s    8s    9s     16s    47s    170s   660s   >0.5h   >1h
legacy APIs: SP/SC: 37    11    6     40525 40525  40209  40367  40407  40541  NoData  NoData
legacy APIs: MP/MC: 56    14    11    50657 40526  40526  40526  40625  40585  NoData  NoData

aarch64-n1sdp:
$sudo ./app/test/dpdk-test --lcore '(0-1)@1'
Testing using two hyperthreads(bulk (size: 8):)
iter_shift:         3     5     7     9     11     13    *15     17     19     21      23
run time:           8s    8s    8s    9s    9s     14s    34s    111s   418s   25min   >1h
legacy APIs: SP/SC: 0.4   0.2   0.1   488   488    488    488    488    489    489     NoData
legacy APIs: MP/MC: 0.4   0.3   0.2   488   488    488    488    490    489    489     NoData

As the number of iterations increases, so does the time which is required
to run the program. Currently (iter_shift = 23), it will take more than
1 hour to wait for the test to finish. To fix this, the "iter_shift" should
decrease and ensure enough iterations to keep the test data stable.
In order to achieve this, we also test with "-l" EAL argument:

x86-Intel(R) Xeon(R) Gold 6240:
$sudo ./app/test/dpdk-test -l 25-26
Testing using two NUMA nodes(bulk (size: 8):)
iter_shift:         3     5     7     9     11     13    *15     17     19     21      23
run time:           6s    6s    6s    6s    6s     6s     6s     7s     8s     11s     27s
legacy APIs: SP/SC: 47    20    13    22    54     83     91     73     81     75      95
legacy APIs: MP/MC: 44    18    18    240   245    270    250    249    252    250     253

aarch64-n1sdp:
$sudo ./app/test/dpdk-test -l 1-2
Testing using two physical cores(bulk (size: 8):)
iter_shift:         3     5     7     9     11     13    *15     17     19     21      23
run time:           8s    8s    8s    8s    8s     8s     8s     9s     9s     11s     23s
legacy APIs: SP/SC: 0.7   0.4   1.2   1.8   2.0    2.0    2.0    2.0    2.0    2.0     2.0
legacy APIs: MP/MC: 0.3   0.4   1.3   1.9   2.9    2.9    2.9    2.9    2.9    2.9     2.9

According to above test data, when "iter_shift" is set as "15", the test
run time is reduced to less than 1 minute and the test result can keep
stable in x86 and aarch64 servers.

Fixes: 1fa5d0099e ("test/ring: add custom element size performance tests")
Cc: stable@dpdk.org

Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2021-01-29 11:37:01 +01:00
..
test_cfgfiles/etc
autotest_data.py
autotest_runner.py test: rename blacklist/whitelist in autotest scripts 2020-11-16 00:11:22 +01:00
autotest_test_funcs.py eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
autotest.py test: rename blacklist/whitelist in autotest scripts 2020-11-16 00:11:22 +01:00
commands.c
get-coremask.sh
has-hugepage.sh
meson.build build: force pkg-config for dependency detection 2021-01-26 00:43:59 +01:00
packet_burst_generator.c
packet_burst_generator.h
process.h build: replace use of old build macros 2020-10-19 22:15:44 +02:00
resource.c
resource.h
sample_packet_forward.c
sample_packet_forward.h
test_acl.c
test_acl.h
test_alarm.c
test_atomic.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_barrier.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_bitmap.c test/bitmap: test scan after half cacheline is cleared 2021-01-17 22:37:28 +01:00
test_bitops.c
test_bitratestats.c bitrate: add free function 2020-10-19 16:08:36 +02:00
test_bpf.c
test_byteorder.c
test_cfgfile.c
test_cmdline_cirbuf.c
test_cmdline_etheraddr.c
test_cmdline_ipaddr.c
test_cmdline_lib.c
test_cmdline_num.c cmdline: avoid name clash with Windows system types 2020-11-05 17:49:00 +01:00
test_cmdline_portlist.c
test_cmdline_string.c
test_cmdline.c
test_cmdline.h
test_common.c
test_compressdev_test_buffer.h eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_compressdev.c
test_cpuflags.c
test_crc.c
test_cryptodev_aead_test_vectors.h test/crypto: add GMAC SGL 2020-10-14 22:22:06 +02:00
test_cryptodev_aes_test_vectors.h crypto/aesni_mb: support AES-ECB 2020-10-14 21:34:02 +02:00
test_cryptodev_asym_util.h
test_cryptodev_asym.c
test_cryptodev_blockcipher.c test/crypto: fix typo in block cipher output 2020-11-12 22:08:51 +01:00
test_cryptodev_blockcipher.h
test_cryptodev_des_test_vectors.h
test_cryptodev_dh_test_vectors.h
test_cryptodev_dsa_test_vectors.h
test_cryptodev_ecdsa_test_vectors.h
test_cryptodev_ecpm_test_vectors.h
test_cryptodev_hash_test_vectors.h test/crypto: add AES-XCBC hash only test case 2021-01-19 18:05:45 +01:00
test_cryptodev_hmac_test_vectors.h
test_cryptodev_kasumi_hash_test_vectors.h
test_cryptodev_kasumi_test_vectors.h
test_cryptodev_mixed_test_vectors.h
test_cryptodev_mod_test_vectors.h
test_cryptodev_rsa_test_vectors.h
test_cryptodev_security_docsis_test_vectors.h
test_cryptodev_security_pdcp_sdap_test_vectors.h test/crypto: add test vectors for PDCP-SDAP 2020-10-14 22:24:41 +02:00
test_cryptodev_security_pdcp_test_func.h
test_cryptodev_security_pdcp_test_vectors.h
test_cryptodev_security_pdcp.c
test_cryptodev_snow3g_hash_test_vectors.h
test_cryptodev_snow3g_test_vectors.h
test_cryptodev_zuc_test_vectors.h
test_cryptodev.c test/crypto: add case for enqueue/dequeue callbacks 2021-01-19 18:05:44 +01:00
test_cryptodev.h test/crypto: add cases for raw datapath API 2020-10-14 22:22:06 +02:00
test_cycles.c
test_debug.c
test_distributor_perf.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_distributor.c test/distributor: fix return buffer queue overload 2021-01-29 08:48:45 +01:00
test_eal_flags.c test/eal: remove unneeded command 2020-11-20 09:58:55 +01:00
test_eal_fs.c
test_efd_perf.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_efd.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_errno.c
test_ethdev_link.c
test_event_crypto_adapter.c test/event: free resources after crypto adapter test 2020-10-15 22:07:39 +02:00
test_event_eth_rx_adapter.c test: check stop call status 2020-10-16 22:26:41 +02:00
test_event_eth_tx_adapter.c
test_event_ring.c
test_event_timer_adapter.c
test_eventdev.c event/dlb: add self-tests 2020-11-02 14:46:01 +01:00
test_external_mem.c
test_fbarray.c
test_fib6_perf.c
test_fib6.c fib: remove maximum type enums 2020-10-28 21:23:11 +01:00
test_fib_perf.c
test_fib.c fib: remove maximum type enums 2020-10-28 21:23:11 +01:00
test_flow_classify.c
test_flow_classify.h
test_func_reentrancy.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_graph_perf.c
test_graph.c test/graph: switch user data to dynamic mbuf field 2020-10-31 16:13:11 +01:00
test_hash_functions.c
test_hash_multiwriter.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_hash_perf.c
test_hash_readwrite_lf_perf.c test/hash: add RCU tests 2020-10-24 11:11:46 +02:00
test_hash_readwrite.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_hash.c test/hash: add RCU tests 2020-10-24 11:11:46 +02:00
test_interrupts.c
test_ipfrag.c
test_ipsec_perf.c
test_ipsec_sad.c
test_ipsec.c security: update session create API 2020-10-19 09:54:54 +02:00
test_kni.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_kvargs.c
test_latencystats.c
test_lcores.c
test_link_bonding_mode4.c test: check stop call status 2020-10-16 22:26:41 +02:00
test_link_bonding_rssconf.c test: check stop call status 2020-10-16 22:26:41 +02:00
test_link_bonding.c test: check stop call status 2020-10-16 22:26:41 +02:00
test_logs.c
test_lpm6_data.h
test_lpm6_perf.c
test_lpm6.c
test_lpm_perf.c test/lpm: avoid code duplication in RCU perf tests 2020-11-05 16:01:16 +01:00
test_lpm.c test: improve coverage on LPM tbl8 2021-01-14 16:41:40 +01:00
test_malloc.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_mbuf.c mbuf: remove deprecated timestamp field 2020-11-03 16:21:15 +01:00
test_mcslock.c test/mcslock: remove unneeded per lcore copy 2021-01-15 16:32:19 +01:00
test_member_perf.c
test_member.c
test_memcpy_perf.c
test_memcpy.c
test_memory.c
test_mempool_perf.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_mempool.c
test_memzone.c
test_meter.c
test_metrics.c
test_mp_secondary.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_pdump.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_pdump.h
test_per_lcore.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_pmd_perf.c test: fix buffer overflow in Tx burst 2021-01-19 11:03:14 +01:00
test_pmd_ring_perf.c test: check stop call status 2020-10-16 22:26:41 +02:00
test_pmd_ring.c test: check stop call status 2020-10-16 22:26:41 +02:00
test_power_cpufreq.c build: replace use of old build macros 2020-10-19 22:15:44 +02:00
test_power_kvm_vm.c build: replace use of old build macros 2020-10-19 22:15:44 +02:00
test_power.c build: replace use of old build macros 2020-10-19 22:15:44 +02:00
test_prefetch.c eal: add cache line demotion API 2020-10-16 14:11:45 +02:00
test_rand_perf.c
test_rawdev.c
test_rcu_qsbr_perf.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_rcu_qsbr.c test/rcu: fix build with low core count 2020-10-30 15:43:57 +01:00
test_reciprocal_division_perf.c
test_reciprocal_division.c
test_red.c
test_reorder.c reorder: switch sequence number to dynamic mbuf field 2020-10-31 22:14:30 +01:00
test_resource.c
test_rib6.c
test_rib.c
test_ring_hts_stress.c
test_ring_mpmc_stress.c
test_ring_mt_peek_stress_zc.c test/ring: fix build for O1 optimization 2020-11-15 16:45:48 +01:00
test_ring_mt_peek_stress.c
test_ring_perf.c test/ring: reduce duration of performance tests 2021-01-29 11:37:01 +01:00
test_ring_rts_stress.c
test_ring_st_peek_stress_zc.c test/ring: add stress tests for zero copy API 2020-10-29 14:13:31 +01:00
test_ring_st_peek_stress.c
test_ring_stress_impl.h test/ring: fix memory dump 2020-10-29 14:13:31 +01:00
test_ring_stress.c test/ring: add stress tests for zero copy API 2020-10-29 14:13:31 +01:00
test_ring_stress.h test/ring: add stress tests for zero copy API 2020-10-29 14:13:31 +01:00
test_ring.c test/ring: remove unused code 2020-11-15 16:45:48 +01:00
test_ring.h test/ring: add functional tests for zero copy API 2020-10-29 14:13:31 +01:00
test_rwlock.c test/rwlock: fix spelling and missing whitespace 2021-01-17 18:50:26 +01:00
test_sched.c
test_security.c security: update session create API 2020-10-19 09:54:54 +02:00
test_service_cores.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_spinlock.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_stack_perf.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_stack.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_string_fns.c
test_table_acl.c
test_table_acl.h
test_table_combined.c
test_table_combined.h build: replace use of old build macros 2020-10-19 22:15:44 +02:00
test_table_pipeline.c
test_table_pipeline.h
test_table_ports.c
test_table_ports.h
test_table_tables.c
test_table_tables.h build: replace use of old build macros 2020-10-19 22:15:44 +02:00
test_table.c build: replace use of old build macros 2020-10-19 22:15:44 +02:00
test_table.h build: replace use of old build macros 2020-10-19 22:15:44 +02:00
test_tailq.c
test_telemetry_data.c test/telemetry: fix socket resource leak 2020-10-19 17:01:58 +02:00
test_telemetry_json.c test/telemetry: fix typo at beginning of line 2020-11-04 22:07:43 +01:00
test_thash.c
test_ticketlock.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_timer_perf.c
test_timer_racecond.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_timer_secondary.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_timer.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_trace_perf.c eal: rename lcore master and slave 2020-10-20 13:17:08 +02:00
test_trace_register.c
test_trace.c
test_trace.h
test_version.c
test_xmmt_ops.h
test.c test: fix terminal settings on exit 2021-01-17 18:51:13 +01:00
test.h
virtual_pmd.c ethdev: change stop operation callback to return int 2020-10-16 22:26:41 +02:00
virtual_pmd.h