numam-dpdk/lib
Pablo de Lara 48a3991196 hash: replace with cuckoo hash implementation
This patch replaces the existing hash library with another approach,
using the Cuckoo Hash method to resolve collisions (open addressing),
which pushes items from a full bucket when a new entry tries
to be added in it, storing the evicted entry in an alternative location,
using a secondary hash function.

This gives the user the ability to store more entries when a bucket
is full, in comparison with the previous implementation.
Therefore, the unit test has been updated, as some scenarios have changed
(such as the previous removed restriction).

Also note that the API has not been changed, although new fields
have been added in the rte_hash structure (structure is internal now).
The main change when creating a new table is that the number of entries
per bucket is fixed now, so its parameter is ignored now
(still there to maintain the same parameters structure).
The hash unit test has been updated to reflect these changes.

As a last note, the maximum burst size in lookup_burst function
hash been increased to 64, to improve performance.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2015-07-12 23:46:11 +02:00
..
librte_acl acl: remove unused code 2015-06-18 18:09:46 +02:00
librte_cfgfile cfgfile: fix unitialised buffer 2015-07-01 23:36:22 +02:00
librte_cmdline lib: remove redundant definition of local symbols 2015-06-29 18:57:32 +02:00
librte_compat compat: remove unneeded macro 2015-06-29 16:41:23 +02:00
librte_distributor distributor: remove inclusion of mbuf header 2015-05-11 15:36:37 +02:00
librte_eal mem: warn once if pagemap is unreadable 2015-07-10 23:45:36 +02:00
librte_ether ethdev: call Rx and Tx callbacks in the order they were added 2015-07-12 23:36:18 +02:00
librte_hash hash: replace with cuckoo hash implementation 2015-07-12 23:46:11 +02:00
librte_ip_frag mbuf: use offset macro 2015-06-24 12:01:14 +02:00
librte_ivshmem ivshmem: fix crash in corner case 2015-06-22 18:39:40 +02:00
librte_jobstats jobstats: new library 2015-02-24 22:12:35 +01:00
librte_kni kni: ignore double initialization 2015-06-22 18:39:40 +02:00
librte_kvargs kvargs: fix freeing behaviour for null 2015-03-04 11:19:37 +01:00
librte_lpm lpm: fix big endian support 2015-07-10 23:23:15 +02:00
librte_malloc lib: fix whitespace 2015-06-12 11:10:10 +02:00
librte_mbuf mbuf: add ieee1588 timestamping 2015-07-10 02:36:13 +02:00
librte_mempool mempool: silence warning on pointer arithmetic 2015-06-24 12:00:28 +02:00
librte_meter doc: fix doxygen warnings in QoS API 2015-06-18 14:53:58 +02:00
librte_net lib: remove extra parenthesis after return 2015-06-23 23:31:15 +02:00
librte_pipeline pipeline: fix missing exported symbols 2015-07-09 17:25:45 +02:00
librte_port port: fix missing exported symbols 2015-07-09 17:25:45 +02:00
librte_power doc: fix doxygen warnings 2015-06-19 12:11:53 +02:00
librte_reorder reorder: allow random number as starting point 2015-06-22 22:20:12 +02:00
librte_ring tailq: move to dynamic tailq 2015-03-10 12:06:08 +01:00
librte_sched doc: fix doxygen warnings in QoS API 2015-06-18 14:53:58 +02:00
librte_table table: add stub stats 2015-06-23 23:31:15 +02:00
librte_timer tailq: remove unneeded inclusions 2015-03-10 11:47:46 +01:00
librte_vhost vhost: comment unwanted callback 2015-06-30 17:49:08 +02:00
Makefile xenvirt: move drivers/net/ 2015-05-22 16:06:23 +02:00