numam-dpdk/lib/librte_timer
Phil Yang 2f89dc2ed7 timer: relax barrier for status update
Volatile has no ordering semantics. The rte_timer structure defines
timer status as a volatile variable and uses the rte_r/wmb barrier
to guarantee inter-thread visibility.

This patch optimized the volatile operation with c11 atomic operations
and one-way barrier to save the performance penalty. According to the
timer_perf_autotest benchmarking results, this patch can uplift 10%~16%
timer appending performance, 3%~20% timer resetting performance and 45%
timer callbacks scheduling performance on aarch64 and no loss in
performance for x86.

Suggested-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
2020-04-26 22:07:38 +02:00
..
Makefile build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
meson.build build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
rte_timer_version.map timer: add API to query ticks until the next timer 2020-01-20 01:55:19 +01:00
rte_timer.c timer: relax barrier for status update 2020-04-26 22:07:38 +02:00
rte_timer.h timer: add API to query ticks until the next timer 2020-01-20 01:55:19 +01:00