V1: Update the ring C11 library including the following changes: 1) On relaxed ordering platforms(like Arm64,PPPC), in ring C11 implementation, loading head and tail might be reodered, this makes CAS(compare and retry the flow if the head is outdated) not working as expected, the fix is to ensure the head is read before the tail, leaving no chances of the combination of outdated head and new tail. 2) With the above memory fence introduced, some loading can be relaxed.
Gavin Hu (2): ring: keep the deterministic order allowing retry to work ring: relaxed ordering for load and store the head lib/librte_ring/rte_ring_c11_mem.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) -- 2.7.4