ring: fix single consumer dequeue performance
authorJerin Jacob <jerin.jacob@caviumnetworks.com>
Sun, 24 Jul 2016 17:07:40 +0000 (22:37 +0530)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 25 Jul 2016 15:55:12 +0000 (17:55 +0200)
commitc3acd92746c3cf5521e583d3a7a6c63d7980db3a
tree9186f08ed837f1ff3a38a095a236e5f1c9490da4
parentaaf6065be5fe68fcfbb195caeccdd4cbcdfb56e1
ring: fix single consumer dequeue performance

Use of rte_smb_wmb() instead of rte_smb_rmb() in sc dequeue function
creates the additional overhead of waiting for all the STOREs
to be completed to local buffer from ring buffer memory.
The sc dequeue function demands only LOAD-STORE barrier where LOADs
from ring buffer memory needs to be completed before tail pointer update.
Changing to rte_smb_rmb() to enable the required LOAD-STORE barrier.

Fixes: ecc7d10e448e ("ring: guarantee dequeue ordering before tail update")

Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_ring/rte_ring.h