The lock-free algorithm has caused significant lookup performance regression for certain use cases. The regression is attributed to the use of non-relaxed memory orderings.
To address the issue, 2 versions of the lookup functions are created. One that uses the RW lock and the one that is lock-free. This restores the performance regression caused for use cases that used RW lock version of the lookup function. This series has been split into 4 commits to make the review process easier. All of these should be squashed into a single commit after the review process is over. Honnappa Nagarahalli (4): hash: prepare for lock-free and rw-lock separation hash: remove rw-lock calls from lock-free functions hash: remove memory orderings from rw-lock lookup fns hash: separate lf and rw lock lookup code paths lib/librte_hash/rte_cuckoo_hash.c | 303 ++++++++++++++++++++++++++++-- 1 file changed, 289 insertions(+), 14 deletions(-) -- 2.17.1