[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <155416000985.9540.14182958463813560577.stgit@noble.brown>
Date: Tue, 02 Apr 2019 10:07:45 +1100
From: NeilBrown <neilb@...e.com>
To: Thomas Graf <tgraf@...g.ch>,
Herbert Xu <herbert@...dor.apana.org.au>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org
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
Powered by blists - more mailing lists