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
..
2020-04-16 18:16:18 +02:00
2020-04-16 18:30:58 +02:00
2020-04-16 18:16:46 +02:00
2020-04-23 15:40:08 +02:00
2020-02-14 11:59:01 +01:00
2020-04-24 19:29:02 +02:00
2020-03-17 14:53:48 +01:00
2020-04-16 18:16:46 +02:00
2020-04-16 18:30:58 +02:00
2020-04-22 20:46:00 +02:00
2020-04-16 18:16:18 +02:00
2020-04-22 20:28:07 +02:00
2020-04-25 17:01:01 +02:00