hash: fix unlimited cuckoo path
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Wed, 12 Oct 2016 00:50:13 +0000 (01:50 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 12 Oct 2016 16:40:51 +0000 (18:40 +0200)
commit243e93a5046ff61658a0f5905ded49634c5ab205
tree7da11b2c4a72601bccb7e4d295224060d0c92a61
parent4e1c139f79207ef1d67cf680970e801c902ae533
hash: fix unlimited cuckoo path

When trying to insert a new entry, if its target bucket is full,
the alternative location (bucket) of one of the entries is checked,
to try to find an empty slot, with make_space_bucket.
This function is called every time a new bucket is checked, recursively.
To avoid having a very long insert operation (and to avoid filling up
the stack), a limit in the number of pushes is introduced.

Fixes: 48a399119619 ("hash: replace with cuckoo hash implementation")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
lib/librte_hash/rte_cuckoo_hash.c
lib/librte_hash/rte_cuckoo_hash.h