numam-dpdk/app/test
Pablo de Lara 5915699153 hash: fix scaling by reducing contention
If using multiple cores on a system with hardware transactional
memory support, thread scaling does not work, as there was a single
point in the hash library which is a bottleneck for all threads,
which is the "free_slots" ring, which stores all the indices of
the free slots in the table.

This patch fixes the problem, by creating a local cache per logical core,
which stores locally indices of free slots,
so most times, writer threads will not interfere each other.

Fixes: 48a3991196 ("hash: replace with cuckoo hash implementation")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2015-11-04 01:04:10 +01:00
..
autotest_data.py app/test: fix default numa memory assignment 2015-06-15 15:04:22 +02:00
autotest_runner.py app/test: return error code on failed tests 2015-06-15 15:17:52 +02:00
autotest_test_funcs.py app: fix whitespace 2015-06-12 11:10:10 +02:00
autotest.py app/test: return error code on failed tests 2015-06-15 15:17:52 +02:00
commands.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
Makefile app/test: add performance test for ring driver 2015-11-03 02:01:58 +01:00
packet_burst_generator.c mbuf: remove packet type from offload flags 2015-09-03 19:22:48 +02:00
packet_burst_generator.h app/test: add unit tests for link bonding mode 6 2015-02-20 23:07:02 +01:00
process.h app: fix whitespace 2015-06-12 11:10:10 +02:00
test_acl.c acl: remove old API 2015-09-03 19:22:48 +02:00
test_acl.h acl: remove old API 2015-09-03 19:22:48 +02:00
test_alarm.c app/test: convert all tests to register system 2014-08-26 17:52:33 +02:00
test_atomic.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test_byteorder.c app/test: convert all tests to register system 2014-08-26 17:52:33 +02:00
test_cmdline_cirbuf.c eal: deprecate rte_snprintf 2014-06-27 02:31:24 +02:00
test_cmdline_etheraddr.c cmdline: fix overflow on bsd 2014-12-05 16:54:53 +01:00
test_cmdline_ipaddr.c cmdline: fix overflow on bsd 2014-12-05 16:54:53 +01:00
test_cmdline_lib.c remove trailing whitespaces 2014-06-11 00:29:34 +02:00
test_cmdline_num.c cmdline: fix overflow on bsd 2014-12-05 16:54:53 +01:00
test_cmdline_portlist.c cmdline: fix overflow on bsd 2014-12-05 16:54:53 +01:00
test_cmdline_string.c cmdline: fix overflow on bsd 2014-12-05 16:54:53 +01:00
test_cmdline.c app/test: only build what has been selected in config 2014-08-26 17:52:34 +02:00
test_cmdline.h remove trailing whitespaces 2014-06-11 00:29:34 +02:00
test_common.c eal: fix type casting of value to align 2015-03-17 00:46:01 +01:00
test_cpuflags.c app/test: restrict x86 cpu flags checks to x86 builds 2015-07-13 16:15:37 +02:00
test_cycles.c app/test: convert all tests to register system 2014-08-26 17:52:33 +02:00
test_debug.c app: no more bare metal environment 2014-11-27 13:09:55 +01:00
test_devargs.c eal: fix C++ build 2015-10-22 17:50:51 +02:00
test_distributor_perf.c apps: fix default mbuf size 2015-05-11 15:51:14 +02:00
test_distributor.c apps: fix default mbuf size 2015-05-11 15:51:14 +02:00
test_eal_flags.c eal: default to using all cores 2015-10-26 20:36:26 +01:00
test_eal_fs.c eal: factorize common headers 2014-11-25 13:16:24 +01:00
test_errno.c eal: remove useless errno 2015-03-10 12:17:31 +01:00
test_func_reentrancy.c lpm: remove deprecated field 2015-09-03 19:22:48 +02:00
test_hash_functions.c hash: remove deprecated function and macros 2015-09-04 15:56:58 +02:00
test_hash_perf.c hash: remove deprecated function and macros 2015-09-04 15:56:58 +02:00
test_hash_scaling.c hash: fix scaling by reducing contention 2015-11-04 01:04:10 +01:00
test_hash.c hash: remove deprecated function and macros 2015-09-04 15:56:58 +02:00
test_interrupts.c app: no more bare metal environment 2014-11-27 13:09:55 +01:00
test_ivshmem.c add prefix to cache line macros 2014-11-27 16:21:11 +01:00
test_kni.c kni: remove deprecated functions 2015-09-03 19:22:48 +02:00
test_kvargs.c app/test: fix crash after null check 2014-12-17 01:04:06 +01:00
test_link_bonding_mode4.c apps: fix default mbuf size 2015-05-11 15:51:14 +02:00
test_link_bonding_rssconf.c app/test: add dynamic bonding RSS configuration 2015-11-01 18:10:55 +01:00
test_link_bonding.c app/test: fix bonding mode 5 Tx check 2015-08-10 16:12:20 +02:00
test_logs.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test_lpm6_routes.h remove trailing whitespaces 2014-06-11 00:29:34 +02:00
test_lpm6.c app/test: only build what has been selected in config 2014-08-26 17:52:34 +02:00
test_lpm_routes.h remove trailing whitespaces 2014-06-11 00:29:34 +02:00
test_lpm.c lpm: remove deprecated field 2015-09-03 19:22:48 +02:00
test_malloc.c app/test: update malloc and memzone unit tests 2015-07-16 14:01:04 +02:00
test_mbuf.c eal: add and use unaligned integer types 2015-06-24 12:00:41 +02:00
test_memcpy_perf.c app/test: extend memcpy test coverage 2015-02-25 11:34:23 +01:00
test_memcpy.c app/test: remove unnecessary memcpy test cases 2015-02-25 11:27:44 +01:00
test_memory.c app/test: convert all tests to register system 2014-08-26 17:52:33 +02:00
test_mempool_perf.c app/test: decrease size of requested mempool 2015-07-09 17:35:25 +02:00
test_mempool.c app/test: decrease size of requested mempool 2015-07-09 17:35:25 +02:00
test_memzone.c mem: introduce memzone freeing 2015-07-16 14:01:04 +02:00
test_meter.c app/test: only build what has been selected in config 2014-08-26 17:52:34 +02:00
test_mp_secondary.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test_pci.c app/test: fix devargs tests 2015-02-18 12:15:31 +01:00
test_per_lcore.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test_pmd_perf.c apps: fix default mbuf size 2015-05-11 15:51:14 +02:00
test_pmd_ring_perf.c app/test: add performance test for ring driver 2015-11-03 02:01:58 +01:00
test_pmd_ring.c apps: fix default mbuf size 2015-05-11 15:51:14 +02:00
test_power_acpi_cpufreq.c app/test: vm power management 2014-11-26 17:27:04 +01:00
test_power_kvm_vm.c app/test: vm power management 2014-11-26 17:27:04 +01:00
test_power.c app/test: vm power management 2014-11-26 17:27:04 +01:00
test_prefetch.c app/test: convert all tests to register system 2014-08-26 17:52:33 +02:00
test_red.c app/test: replace x86 fence by multi arch function 2015-09-08 08:51:25 +02:00
test_reorder.c apps: fix default mbuf size 2015-05-11 15:51:14 +02:00
test_ring_perf.c use simple zero initializers 2015-04-20 14:37:36 +02:00
test_ring.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test_rwlock.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test_sched.c app/test: fix sched mempool allocation 2015-08-03 23:44:05 +02:00
test_spinlock.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test_string_fns.c eal: remove rte_snprintf 2014-09-29 15:04:55 +02:00
test_table_acl.c app/test: check for mbuf allocation failure 2014-12-17 01:04:06 +01:00
test_table_acl.h app/test: packet framework unit tests 2014-06-17 03:34:11 +02:00
test_table_combined.c port: move metadata offset reference at mbuf head 2015-10-19 17:00:36 +02:00
test_table_combined.h app/test: packet framework unit tests 2014-06-17 03:34:11 +02:00
test_table_pipeline.c port: move metadata offset reference at mbuf head 2015-10-19 17:00:36 +02:00
test_table_pipeline.h app/test: packet framework unit tests 2014-06-17 03:34:11 +02:00
test_table_ports.c app/test: only build what has been selected in config 2014-08-26 17:52:34 +02:00
test_table_ports.h app/test: packet framework unit tests 2014-06-17 03:34:11 +02:00
test_table_tables.c port: move metadata offset reference at mbuf head 2015-10-19 17:00:36 +02:00
test_table_tables.h app/test: packet framework unit tests 2014-06-17 03:34:11 +02:00
test_table.c apps: use helper to create mbuf pools 2015-04-28 11:34:10 +02:00
test_table.h port: move metadata offset reference at mbuf head 2015-10-19 17:00:36 +02:00
test_tailq.c tailq: introduce dynamic register system 2015-03-10 11:58:02 +01:00
test_thash.c hash: add unit test for thash 2015-07-01 23:26:10 +02:00
test_timer_perf.c app/test: only build what has been selected in config 2014-08-26 17:52:34 +02:00
test_timer_racecond.c timer: add race condition test 2015-08-03 12:43:01 +02:00
test_timer.c timer: fix synchronization in stress test 2015-08-03 12:43:01 +02:00
test_version.c app/test: convert all tests to register system 2014-08-26 17:52:33 +02:00
test.c tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
test.h app/test: fix build constructor with gcc < 4.4 2015-03-23 00:31:20 +01:00
virtual_pmd.c pci: make device id tables const 2015-04-20 19:58:54 +02:00
virtual_pmd.h app/test: add unit tests for link bonding mode 6 2015-02-20 23:07:02 +01:00