Skip to content

Introduce kvfree_rcu(1 or 2 arguments)

Uladzislau Rezki (Sony) linux-mm lkml rcu 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest16 patches 26 repliesIn review
  2. v124 patches 53 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/16rcu/tree: Keep kfree_rcu() awake during lock contentionkernel/rcu/tree.c+15 -150 replies
2/16rcu/tree: Skip entry into the page allocator for PREEMPT_RTkernel/rcu/tree.c+12 -00 replies
3/16rcu/tree: Repeat the monitor if any free channel is busykernel/rcu/tree.c+6 -30 replies
4/16rcu/tree: Make debug_objects logic independent of rcu_headkernel/rcu/tree.c+13 -160 replies
5/16rcu/tree: Simplify KFREE_BULK_MAX_ENTR macrokernel/rcu/tree.c+9 -80 replies
6/16rcu/tree: Move kfree_rcu_cpu locking/unlocking to separate functionskernel/rcu/tree.c+23 -80 replies
7/16rcu/tree: Use static initializer for krc.lockkernel/rcu/tree.c+6 -70 replies
8/16rcu/tree: cache specified number of objectsDocumentation/admin-guide/kernel-parameters.txt kernel/rcu/tree.c+70 -40 replies
9/16rcu/tree: Maintain separate array for vmalloc ptrskernel/rcu/tree.c+100 -7326 replies
10/16rcu/tiny: support vmalloc in tiny-RCUkernel/rcu/tiny.c+2 -10 replies
11/16rcu: Rename *_kfree_callback/*_kfree_rcu_offset/kfree_call_*include/linux/rcupdate.h include/linux/rcutiny.h include/linux/rcutree.h +3 more+23 -230 replies
12/16mm/list_lru.c: Rename kvfree_rcu() to local variantmm/list_lru.c+3 -30 replies
13/16rcu: Introduce 2 arg kvfree_rcu() interfaceinclude/linux/rcupdate.h+9 -00 replies
14/16rcu: Support reclaim for head-less objectinclude/linux/rcutiny.h kernel/rcu/tree.c+60 -30 replies
15/16rcu: Introduce single argument kvfree_rcu() interfaceinclude/linux/rcupdate.h+34 -40 replies
16/16lib/test_vmalloc.c: Add test cases for kvfree_rcu()lib/test_vmalloc.c+95 -80 replies

Reviews trailers per patch

14 of 16 patches have a Reviewed-by or Acked-by.

PatchUladzislau RezkiJoel Fernandes (Google)
1/16R-b
2/16R-b
3/16A-b
4/16R-b
5/16R-b
6/16R-b
7/16
8/16
9/16R-b
10/16R-b
11/16R-b
12/16R-b
13/16R-b
14/16R-b
15/16R-b
16/16R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

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

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(-)
Signature · 1 line
2.20.1