Messages in this thread | | | From | Kent Overstreet <> | Subject | [PATCH 0/7] generic radix trees; drop flex arrays | Date | Mon, 17 Dec 2018 08:19:22 -0500 |
| |
this has been sitting on my todo list for far too long; let's try and get it merged before flex arrays grow any new users.
The only significant change since the last time I mailed this out is that it's now safe to use a genradix from multiple threads, including when new nodes are being allocated.
Since we never _free_ nodes on a genradix while it's in use (only when the entire tree is being freed), this adds very little code - we just use cmpxchg for adding pointers to new nodes, there's no need to use rcu_read_lock() or anything like that. And for the types of things we seem to want to use it for it's quite useful.
Andrew, would you mind picking up this series, or would someone else be more suitable? The patch series has been sent out a few times and seen a fair amoun of review.
Kent Overstreet (7): openvswitch: convert to kvmalloc md: convert to kvmalloc selinux: convert to kvmalloc Generic radix trees proc: commit to genradix sctp: Convert to genradix Drop flex_arrays
Documentation/core-api/flexible-arrays.rst | 130 ------ Documentation/core-api/generic-radix-tree.rst | 12 + Documentation/core-api/index.rst | 1 + Documentation/flexible-arrays.txt | 123 ------ drivers/md/raid5-ppl.c | 6 +- drivers/md/raid5.c | 87 ++-- drivers/md/raid5.h | 9 +- fs/proc/base.c | 43 +- include/linux/flex_array.h | 149 ------- include/linux/generic-radix-tree.h | 231 ++++++++++ include/linux/poison.h | 3 - include/net/sctp/structs.h | 15 +- lib/Makefile | 5 +- lib/flex_array.c | 398 ------------------ lib/generic-radix-tree.c | 217 ++++++++++ net/openvswitch/flow.h | 1 - net/openvswitch/flow_netlink.h | 1 - net/openvswitch/flow_table.c | 51 +-- net/openvswitch/flow_table.h | 3 +- net/sctp/stream.c | 106 +---- net/sctp/stream_interleave.c | 2 +- security/selinux/ss/avtab.c | 40 +- security/selinux/ss/avtab.h | 4 +- security/selinux/ss/conditional.c | 6 +- security/selinux/ss/policydb.c | 122 ++---- security/selinux/ss/policydb.h | 12 +- security/selinux/ss/services.c | 22 +- tools/include/linux/poison.h | 3 - 28 files changed, 628 insertions(+), 1174 deletions(-) delete mode 100644 Documentation/core-api/flexible-arrays.rst create mode 100644 Documentation/core-api/generic-radix-tree.rst delete mode 100644 Documentation/flexible-arrays.txt delete mode 100644 include/linux/flex_array.h create mode 100644 include/linux/generic-radix-tree.h delete mode 100644 lib/flex_array.c create mode 100644 lib/generic-radix-tree.c
-- 2.20.1
| |