All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/18] kfree_rcu() improvements for -rcu dev
@ 2020-03-30  2:32 Joel Fernandes (Google)
  2020-03-30  2:32 ` [PATCH 01/18] mm/list_lru.c: Rename kvfree_rcu() to local variant Joel Fernandes (Google)
                   ` (17 more replies)
  0 siblings, 18 replies; 35+ messages in thread
From: Joel Fernandes (Google) @ 2020-03-30  2:32 UTC (permalink / raw)
  To: linux-kernel
  Cc: Joel Fernandes (Google), Andrew Morton, Ingo Molnar,
	Josh Triplett, Lai Jiangshan, linux-mm, Mathieu Desnoyers,
	Paul E. McKenney, Rafael J. Wysocki, rcu, Steven Rostedt,
	Uladzislau Rezki (Sony)

Hello,
These patches improve kfree_rcu() to support:
- kfree_rcu() headless usage.
- both vmalloc() and slab free'ing support using array of pointers.
- simpler debugobjects handling.

It applies on rcu/dev branch as of March 29th.

Testing with rcuperf shows following changes. The memory footprint reduces and
batches go slightly up. This is assumed an acceptable change.

with all patches:
Total time taken by all kfree'ers: 27312964461 ns, loops: 20000, batches: 3120, memory footprint: 211MB
Total time taken by all kfree'ers: 26773272309 ns, loops: 20000, batches: 3084, memory footprint: 208M

without:
Total time taken by all kfree'ers: 25711621811 ns, loops: 20000, batches: 2814, memory footprint: 230MB          
 Total time taken by all kfree'ers: 25775800546 ns, loops: 20000, batches: 2755, memory footprint: 230MB

These have been pushed to the git tree at:
git://git.kernel.org/pub/scm/linux/kernel/git/jfern/linux.git (branch rcu/kfree)

cgit view:
https://git.kernel.org/pub/scm/linux/kernel/git/jfern/linux.git/log/?h=rcu/kfree

thanks,

 - Joel

Joel Fernandes (Google) (5):
rcu/tree: Simplify debug_objects handling
rcu/tree: Clarify emergency path comment better
rcu/tree: Remove extra next variable in kfree worker function
rcu/tree: Simplify is_vmalloc_addr expression
rcu/tree: Make kvfree_rcu() tolerate any alignment

Uladzislau Rezki (Sony) (13):
mm/list_lru.c: Rename kvfree_rcu() to local variant
rcu: Introduce kvfree_rcu() interface
rcu: Rename rcu_invoke_kfree_callback/rcu_kfree_callback
rcu: Rename __is_kfree_rcu_offset() macro
rcu: Rename kfree_call_rcu() to the kvfree_call_rcu().
mm/list_lru.c: Remove kvfree_rcu_local() function
rcu/tree: Simplify KFREE_BULK_MAX_ENTR macro
rcu/tree: Maintain separate array for vmalloc ptrs
rcu/tree: Introduce expedited_drain flag
rcu/tree: Support reclaim for head-less object
rcu/tiny: Move kvfree_call_rcu() out of header
rcu/tiny: Support reclaim for head-less object
rcu: Support headless variant in the kvfree_rcu()

include/linux/rcupdate.h   |  53 ++++++-
include/linux/rcutiny.h    |   6 +-
include/linux/rcutree.h    |   2 +-
include/trace/events/rcu.h |   8 +-
kernel/rcu/tiny.c          | 168 +++++++++++++++++++-
kernel/rcu/tree.c          | 315 ++++++++++++++++++++++++++-----------
mm/list_lru.c              |  11 +-
7 files changed, 443 insertions(+), 120 deletions(-)

--
2.26.0.rc2.310.g2932bb562d-goog


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2020-03-30 18:42 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-30  2:32 [PATCH 00/18] kfree_rcu() improvements for -rcu dev Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 01/18] mm/list_lru.c: Rename kvfree_rcu() to local variant Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 02/18] rcu: Introduce kvfree_rcu() interface Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 03/18] rcu: Rename rcu_invoke_kfree_callback/rcu_kfree_callback Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 04/18] rcu: Rename __is_kfree_rcu_offset() macro Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 05/18] rcu: Rename kfree_call_rcu() to the kvfree_call_rcu() Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 06/18] mm/list_lru.c: Remove kvfree_rcu_local() function Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 07/18] rcu/tree: Simplify debug_objects handling Joel Fernandes (Google)
2020-03-30  7:00   ` kbuild test robot
2020-03-30  7:00     ` kbuild test robot
2020-03-30 18:42     ` Joel Fernandes
2020-03-30  2:32 ` [PATCH 08/18] rcu/tree: Clarify emergency path comment better Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 09/18] rcu/tree: Simplify KFREE_BULK_MAX_ENTR macro Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 10/18] rcu/tree: Maintain separate array for vmalloc ptrs Joel Fernandes (Google)
2020-03-30  6:48   ` kbuild test robot
2020-03-30  6:48     ` kbuild test robot
2020-03-30  9:10   ` kbuild test robot
2020-03-30  9:10     ` kbuild test robot
2020-03-30 15:29     ` Uladzislau Rezki
2020-03-30 15:31       ` Matthew Wilcox
2020-03-30 15:31         ` Matthew Wilcox
2020-03-30 15:37         ` Paul E. McKenney
2020-03-30 15:37           ` Paul E. McKenney
2020-03-30 17:16           ` Joel Fernandes
2020-03-30 17:43             ` Uladzislau Rezki
2020-03-30 18:21               ` Paul E. McKenney
2020-03-30 18:21                 ` Paul E. McKenney
2020-03-30  2:32 ` [PATCH 11/18] rcu/tree: Introduce expedited_drain flag Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 12/18] rcu/tree: Support reclaim for head-less object Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 13/18] rcu/tiny: Move kvfree_call_rcu() out of header Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 14/18] rcu/tiny: Support reclaim for head-less object Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 15/18] rcu: Support headless variant in the kvfree_rcu() Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 16/18] rcu/tree: Remove extra next variable in kfree worker function Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 17/18] rcu/tree: Simplify is_vmalloc_addr expression Joel Fernandes (Google)
2020-03-30  2:32 ` [PATCH 18/18] rcu/tree: Make kvfree_rcu() tolerate any alignment Joel Fernandes (Google)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.