public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/14] Implement call_rcu_lazy() and miscellaneous fixes
@ 2022-08-19 20:48 Joel Fernandes (Google)
  2022-08-19 20:48 ` [PATCH v4 01/14] rcu: Introduce call_rcu_lazy() API implementation Joel Fernandes (Google)
                   ` (14 more replies)
  0 siblings, 15 replies; 54+ messages in thread
From: Joel Fernandes (Google) @ 2022-08-19 20:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: Joel Fernandes (Google), paulmck, Rushikesh S Kadam,
	Uladzislau Rezki (Sony), Neeraj upadhyay, Frederic Weisbecker,
	Steven Rostedt, rcu, vineeth

Refresh tested on real ChromeOS userspace and hardware, passes boot time tests
and rcuscale tests.

Fixes on top of v3:
- Fix boot issues due to a race in the lazy RCU logic which caused a missed
  wakeup of the RCU GP thread, causing synchronize_rcu() to stall.
- Fixed trace_rcu_callback tracepoint

I tested power previously [1], I am in the process of testing power again but I
wanted share my latest code as others who are testing power as well could use
the above fixes.

[1] https://lore.kernel.org/all/20220713213237.1596225-1-joel@joelfernandes.org/

Joel Fernandes (Google) (13):
rcu: Introduce call_rcu_lazy() API implementation
rcuscale: Add laziness and kfree tests
fs: Move call_rcu() to call_rcu_lazy() in some paths
rcutorture: Add test code for call_rcu_lazy()
debug: Toggle lazy at runtime and change flush jiffies
cred: Move call_rcu() to call_rcu_lazy()
security: Move call_rcu() to call_rcu_lazy()
net/core: Move call_rcu() to call_rcu_lazy()
kernel: Move various core kernel usages to call_rcu_lazy()
lib: Move call_rcu() to call_rcu_lazy()
i915: Move call_rcu() to call_rcu_lazy()
fork: Move thread_stack_free_rcu to call_rcu_lazy
rcu/tree: Move trace_rcu_callback() before bypassing

Vineeth Pillai (1):
rcu: shrinker for lazy rcu

drivers/gpu/drm/i915/gem/i915_gem_object.c    |   2 +-
fs/dcache.c                                   |   4 +-
fs/eventpoll.c                                |   2 +-
fs/file_table.c                               |   2 +-
fs/inode.c                                    |   2 +-
include/linux/rcu_segcblist.h                 |   1 +
include/linux/rcupdate.h                      |   6 +
include/linux/sched/sysctl.h                  |   3 +
kernel/cred.c                                 |   2 +-
kernel/exit.c                                 |   2 +-
kernel/fork.c                                 |   6 +-
kernel/pid.c                                  |   2 +-
kernel/rcu/Kconfig                            |   8 +
kernel/rcu/rcu.h                              |  12 +
kernel/rcu/rcu_segcblist.c                    |  15 +-
kernel/rcu/rcu_segcblist.h                    |  20 +-
kernel/rcu/rcuscale.c                         |  74 ++++-
kernel/rcu/rcutorture.c                       |  60 +++-
kernel/rcu/tree.c                             | 139 ++++++----
kernel/rcu/tree.h                             |  10 +-
kernel/rcu/tree_nocb.h                        | 260 +++++++++++++++---
kernel/sysctl.c                               |  17 ++
kernel/time/posix-timers.c                    |   2 +-
lib/radix-tree.c                              |   2 +-
lib/xarray.c                                  |   2 +-
net/core/dst.c                                |   2 +-
security/security.c                           |   2 +-
security/selinux/avc.c                        |   4 +-
.../selftests/rcutorture/configs/rcu/CFLIST   |   1 +
.../selftests/rcutorture/configs/rcu/TREE11   |  18 ++
.../rcutorture/configs/rcu/TREE11.boot        |   8 +
31 files changed, 567 insertions(+), 123 deletions(-)
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE11
create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/TREE11.boot

--
2.37.2.609.g9ff673ca1a-goog


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

end of thread, other threads:[~2022-09-01 20:37 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-19 20:48 [PATCH v4 00/14] Implement call_rcu_lazy() and miscellaneous fixes Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 01/14] rcu: Introduce call_rcu_lazy() API implementation Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 02/14] rcu: shrinker for lazy rcu Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 03/14] rcuscale: Add laziness and kfree tests Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 04/14] fs: Move call_rcu() to call_rcu_lazy() in some paths Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 05/14] rcutorture: Add test code for call_rcu_lazy() Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 06/14] debug: Toggle lazy at runtime and change flush jiffies Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 07/14] cred: Move call_rcu() to call_rcu_lazy() Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 08/14] security: " Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 09/14] net/core: " Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 10/14] kernel: Move various core kernel usages " Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 11/14] lib: Move call_rcu() " Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 12/14] i915: " Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 13/14] fork: Move thread_stack_free_rcu to call_rcu_lazy Joel Fernandes (Google)
2022-08-19 20:48 ` [PATCH v4 14/14] rcu/tree: Move trace_rcu_callback() before bypassing Joel Fernandes (Google)
2022-08-29 13:40 ` [PATCH v4 00/14] Implement call_rcu_lazy() and miscellaneous fixes Frederic Weisbecker
2022-08-29 16:45   ` Joel Fernandes
2022-08-29 19:46     ` Frederic Weisbecker
2022-08-29 20:31       ` Paul E. McKenney
2022-08-29 20:54         ` Joel Fernandes
2022-08-30 10:50         ` Frederic Weisbecker
2022-08-30 11:47           ` Paul E. McKenney
2022-08-29 20:36       ` Joel Fernandes
2022-08-29 20:42         ` Paul E. McKenney
2022-08-29 20:48           ` Joel Fernandes
2022-08-30 10:57             ` Frederic Weisbecker
2022-08-30 10:53           ` Frederic Weisbecker
2022-08-30 11:43             ` Paul E. McKenney
2022-08-30 16:03               ` Frederic Weisbecker
2022-08-30 16:22                 ` Frederic Weisbecker
2022-08-30 16:44                   ` Uladzislau Rezki
2022-08-30 18:53                     ` Joel Fernandes
2022-09-01 11:29                     ` Frederic Weisbecker
2022-09-01 11:59                       ` Uladzislau Rezki
2022-09-01 14:41                         ` Paul E. McKenney
2022-09-01 15:30                           ` Frederic Weisbecker
2022-09-01 16:11                             ` Joel Fernandes
2022-09-01 16:52                             ` Paul E. McKenney
2022-09-01 15:13                         ` Frederic Weisbecker
2022-09-01 16:07                           ` Joel Fernandes
2022-08-30 16:46                   ` Paul E. McKenney
2022-08-31 15:26                     ` Frederic Weisbecker
2022-09-01 14:39                       ` Paul E. McKenney
2022-09-01 14:58                         ` Frederic Weisbecker
2022-09-01 16:07                           ` Joel Fernandes
2022-09-01 16:49                             ` Paul E. McKenney
2022-09-01 18:28                               ` Frederic Weisbecker
2022-09-01 20:36                                 ` Paul E. McKenney
2022-08-30 18:46                   ` Joel Fernandes
2022-08-30 10:26         ` Frederic Weisbecker
2022-08-30 18:40           ` Joel Fernandes
2022-08-29 19:57     ` Paul E. McKenney
2022-08-30 10:43       ` Frederic Weisbecker
2022-08-30 12:08         ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox