[PATCH v2 00/16] Introduce kvfree_rcu(1 or 2 arguments)

Uladzislau Rezki (Sony)
2020-05-25T21:48:13Z

This is a v2 of the https://lkml.org/lkml/2020/4/28/1626 series.
Please have look at v1 to find out more about motivation and details.
It is based on the latest dev.2020.05.17a Paul's branch.

Short changelog (v1 -> v2):
- Combine some patches, thus reduce the overall number;
- Switch one line comment type from "/* */" to "//";
- Improve commit messages of some patches;
- For tiny-RCU we just do synchronize_rcu() followed by kvfree()
for single-argument of kvfree_rcu();
- Drop the dynamic rcu_head attaching techniques + related patches;
- Reduce duplication of code in some functions;
- Added more comments for better understanding of code.

There is one patch related to "mm": "Rename kvfree_rcu() to local variant"
please note, it does not change any functionality, only renaming is done.

Joel Fernandes (Google) (3):
rcu/tree: Keep kfree_rcu() awake during lock contention
rcu/tree: Skip entry into the page allocator for PREEMPT_RT
rcu/tree: Make debug_objects logic independent of rcu_head

Sebastian Andrzej Siewior (1):
rcu/tree: Use static initializer for krc.lock

Uladzislau Rezki (Sony) (12):
rcu/tree: Repeat the monitor if any free channel is busy
rcu/tree: Simplify KFREE_BULK_MAX_ENTR macro
rcu/tree: Move kfree_rcu_cpu locking/unlocking to separate functions
rcu/tree: cache specified number of objects
rcu/tree: Maintain separate array for vmalloc ptrs
rcu/tiny: support vmalloc in tiny-RCU
rcu: Rename *_kfree_callback/*_kfree_rcu_offset/kfree_call_*
mm/list_lru.c: Rename kvfree_rcu() to local variant
rcu: Introduce 2 arg kvfree_rcu() interface
rcu: Support reclaim for head-less object
rcu: Introduce single argument kvfree_rcu() interface
lib/test_vmalloc.c: Add test cases for kvfree_rcu()

.../admin-guide/kernel-parameters.txt | 8 +
include/linux/rcupdate.h | 53 ++-
include/linux/rcutiny.h | 20 +-
include/linux/rcutree.h | 2 +-
include/trace/events/rcu.h | 8 +-
kernel/rcu/tiny.c | 7 +-
kernel/rcu/tree.c | 381 ++++++++++++------
lib/test_vmalloc.c | 103 ++++-
mm/list_lru.c | 6 +-
9 files changed, 446 insertions(+), 142 deletions(-)

--
2.20.1