Messages in this thread | | | From | NeilBrown <> | Date | Tue, 02 Apr 2019 10:07:45 +1100 | Subject | [PATCH 0/4 v2] Convert rhashtable to use bitlocks |
| |
This series converts rhashtable to use a per-bucket bitlock rather than a separate array of spinlocks. This: reduces memory usage results in slightly fewer memory accesses slightly improves parallelism makes a configuration option unnecessary
The main change from previous version is to use a distinct type for the pointer in the bucket which has a bit-lock in it. This helped find two places where rht_ptr() was missed, one in rhashtable_free_and_destroy() in print_ht in the test code.
Thanks, NeilBrown
---
NeilBrown (4): rhashtable: use cmpxchg() in nested_table_alloc() rhashtable: allow rht_bucket_var to return NULL. rhashtable: use bit_spin_locks to protect hash bucket. rhashtable: add lockdep tracking to bucket bit-spin-locks.
include/linux/rhashtable-types.h | 2 include/linux/rhashtable.h | 271 ++++++++++++++++++++++++++------------ ipc/util.c | 1 lib/rhashtable.c | 161 ++++++++++++----------- lib/test_rhashtable.c | 2 net/bridge/br_fdb.c | 1 net/bridge/br_multicast.c | 1 net/bridge/br_vlan.c | 1 net/bridge/br_vlan_tunnel.c | 1 net/ipv4/ipmr.c | 1 net/ipv6/ip6mr.c | 1 net/netfilter/nf_tables_api.c | 1 12 files changed, 271 insertions(+), 173 deletions(-)
-- Signature
| |