summaryrefslogtreecommitdiffstats
path: root/net/netlink/af_netlink.h
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2014-08-02 11:47:44 +0200
committerDavid S. Miller <davem@davemloft.net>2014-08-02 19:49:38 -0700
commit7e1e77636e36075ebf118298855268468f1028e8 (patch)
treea885e78ba5cb99f939b45e0de86ace05f23515f7 /net/netlink/af_netlink.h
parentd39a9ffce7f14b494391da982b8cefa311dae0f6 (diff)
downloadlinux-7e1e77636e36075ebf118298855268468f1028e8.tar.gz
linux-7e1e77636e36075ebf118298855268468f1028e8.tar.bz2
linux-7e1e77636e36075ebf118298855268468f1028e8.zip
lib: Resizable, Scalable, Concurrent Hash Table
Generic implementation of a resizable, scalable, concurrent hash table based on [0]. The implementation supports both, fixed size keys specified via an offset and length, or arbitrary keys via own hash and compare functions. Lookups are lockless and protected as RCU read side critical sections. Automatic growing/shrinking based on user configurable watermarks is available while allowing concurrent lookups to take place. Objects to be hashed must include a struct rhash_head. The reason for not using the existing struct hlist_head is that the expansion and shrinking will have two buckets point to a single entry which would lead in obscure reverse chaining behaviour. Code includes a boot selftest if CONFIG_TEST_RHASHTABLE is defined. [0] https://www.usenix.org/legacy/event/atc11/tech/final_files/Triplett.pdf Signed-off-by: Thomas Graf <tgraf@suug.ch> Reviewed-by: Nikolay Aleksandrov <nikolay@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netlink/af_netlink.h')
0 files changed, 0 insertions, 0 deletions