numam-dpdk/lib/librte_lpm
Ruifeng Wang 316095eb41 lpm: use atomic store to avoid partial update
Compiler could generate non-atomic stores for whole table entry
updating. This may cause incorrect nexthop to be returned, if
the byte with valid flag is updated prior to the byte with nexthop
is updated.
Besides, field by field updating of table entries follow
read-modify-write sequences. The operations are not atomic,
nor efficient. And could cause entries out of synchronization.

Changed to use atomic store to update whole table entry.

Suggested-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
Suggested-by: Gavin Hu <gavin.hu@arm.com>
Signed-off-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
2019-07-19 12:37:14 +02:00
..
Makefile lpm6: store rules in hash table 2018-09-19 17:11:17 +02:00
meson.build lpm6: store rules in hash table 2018-09-19 17:11:17 +02:00
rte_lpm6.c eal: hide shared memory config 2019-07-06 10:32:34 +02:00
rte_lpm6.h
rte_lpm_altivec.h
rte_lpm_neon.h lpm: remove recursively included header file 2019-01-28 01:47:23 +01:00
rte_lpm_sse.h lpm: remove recursively included header file 2019-01-28 01:47:23 +01:00
rte_lpm_version.map
rte_lpm.c lpm: use atomic store to avoid partial update 2019-07-19 12:37:14 +02:00
rte_lpm.h lpm: avoid race conditions for v20 2019-07-19 12:37:09 +02:00