From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: Ye Liu <ye.liu@linux.dev>
Cc: "Andrew Morton" <akpm@linux-foundation.org>,
"Michal Hocko" <mhocko@suse.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Paul E. McKenney" <paulmck@kernel.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Josh Poimboeuf" <jpoimboe@kernel.org>,
"Mickaël Salaün" <mic@digikod.net>,
"Oleg Nesterov" <oleg@redhat.com>,
"Thomas Gleixner" <tglx@kernel.org>, "Ye Liu" <liuye@kylinos.cn>,
"David Hildenbrand" <david@kernel.org>,
"Miaohe Lin" <linmiaohe@huawei.com>,
"Naoya Horiguchi" <nao.horiguchi@gmail.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Günther Noack" <gnoack3000@gmail.com>, "SJ Park" <sj@kernel.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org, rcu@vger.kernel.org,
linux-trace-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org,
linux-security-module@vger.kernel.org, rientjes@google.com,
shakeel.butt@linux.dev, xu.xin16@zte.com.cn,
chengming.zhou@linux.dev, will@kernel.org, boqun@kernel.org,
frederic@kernel.org, neeraj.upadhyay@kernel.org,
joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com,
juri.lelli@redhat.com, vincent.guittot@linaro.org,
tony.luck@intel.com, reinette.chatre@intel.com, x86@kernel.org,
paul@paul-moore.com, jmorris@namei.org, serge@hallyn.com,
pavel@kernel.org, lance.yang@linux.dev, mhiramat@kernel.org,
pmladek@suse.com, longman@redhat.com,
mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com,
qiang.zhang@linux.dev, dietmar.eggemann@arm.com,
bsegall@google.com, mgorman@suse.de, vschneid@redhat.com,
kprateek.nayak@amd.com, mark.rutland@arm.com,
Dave.Martin@arm.com, james.morse@arm.com, babu.moger@amd.com
Subject: Re: [PATCH v2 0/8] sched: introduce for_each_process_rculock and for_each_thread_rculock
Date: Mon, 7 Sep 2026 09:26:05 +0100 [thread overview]
Message-ID: <ap5yw-Cwb41FymNd@gremlin> (raw)
In-Reply-To: <20260907081334.1152889-1-ye.liu@linux.dev>
On Mon, Sep 07, 2026 at 04:13:26PM +0800, Ye Liu wrote:
> From: Ye Liu <liuye@kylinos.cn>
>
> Introduce for_each_process_rculock(), for_each_thread_rculock() and
> for_each_process_thread_rculock() macros that combine the existing
> iteration macros with scoped_guard(rcu), so that the RCU read lock
> is automatically acquired before iteration and released when the
> loop exits — including via break, goto, or return.
>
> The rest of the series converts manual rcu_read_lock()/
> rcu_read_unlock() and guard(rcu)() pairs across mm/, kernel/, fs/,
> lib/ and security/ to use the new macros.
>
Andrew - just a note (assuming Ye Liu is in agreement) I think all of the
below should be excluded from the cover letter that goes into the commit
message, including the checkpatch thing.
> Changes since v1 [1]:
> - Rename macros from *_rcu to *_rculock, as suggested by Steven
> Rostedt and acked by Thomas Gleixner, to avoid confusion with
> existing *_rcu() list iterators that expect the caller to hold
> the RCU read lock.
> - Improve the comment on for_each_process_thread_rculock() to
> document that 'break' only exits the inner loop and 'goto' is
> needed to exit both loops (Thomas Gleixner).
> - Rename the stale 'unlock:' label to 'out:' in hung_task.c, as
> noted by Günther Noack.
> - Clarify in patch 4 that page_pgoff() is safe outside the RCU
> read-side critical section (SJ Park).
> - CC all relevant maintainers on every patch (Lorenzo Stoakes).
> - Drop the mm: prefix from patch 1, as the macros are in
> include/linux/sched/signal.h (Michal Hocko).
>
> Patch 1 may trigger checkpatch "Macros with complex values should be
> enclosed in parentheses" errors. These are false positives — the
> scoped_guard() pattern is a control-flow construct, not a multi-
> statement macro, and the same idiom is used elsewhere in the kernel.
While it's useful as a note to reviewers, in general checkpatch is taken
with a pinch of salt - it's a master of false positives so usually no need
to say this :)
>
> Suggested by Michal Hocko for the oom_kill path [2].
>
> [1] https://lore.kernel.org/all/20260904083001.553587-1-ye.liu@linux.dev/
> [2] https://lore.kernel.org/all/20260813092933.562028-1-ye.liu@linux.dev/
>
> Ye Liu (8):
> sched: introduce for_each_process_rculock and for_each_thread_rculock
> mm/oom_kill: convert process/thread iterators to for_each_*_rculock
> mm/ksm: convert process iterator to for_each_process_rculock
> mm/memory-failure: convert process iterator to for_each_process_rculock
> kernel: convert process/thread iterators to for_each_*_rculock
> fs: convert process/thread iterators to for_each_*_rculock
> lib: convert process iterator to for_each_process_rculock
> security/landlock: convert thread iterator to for_each_thread_rculock
>
> fs/proc/base.c | 4 +---
> fs/resctrl/rdtgroup.c | 8 ++------
> include/linux/sched/signal.h | 25 +++++++++++++++++++++++++
> kernel/cpu.c | 4 +---
> kernel/freezer.c | 4 +---
> kernel/hung_task.c | 11 ++++-------
> kernel/locking/lockdep.c | 4 +---
> kernel/rcu/update.c | 4 +---
> kernel/sched/core.c | 3 +--
> kernel/sched/debug.c | 4 +---
> kernel/trace/fgraph.c | 8 ++------
> kernel/unwind/deferred.c | 3 +--
> lib/is_single_threaded.c | 5 +----
> mm/ksm.c | 4 +---
> mm/memory-failure.c | 16 ++++------------
> mm/oom_kill.c | 20 +++++---------------
> security/landlock/tsync.c | 8 ++------
> 17 files changed, 54 insertions(+), 81 deletions(-)
>
> Signed-off-by: Ye Liu <liuye@kylinos.cn>
>
> --
> 2.25.1
--
Cheers, Lorenzo
prev parent reply other threads:[~2026-09-07 8:26 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 8:13 [PATCH v2 0/8] sched: introduce for_each_process_rculock and for_each_thread_rculock Ye Liu
2026-09-07 8:13 ` [PATCH v2 1/8] " Ye Liu
2026-09-07 8:30 ` Lorenzo Stoakes (ARM)
2026-09-07 9:35 ` Oleg Nesterov
2026-09-07 15:42 ` Gregory Price
2026-09-07 21:20 ` SJ Park
2026-09-07 8:13 ` [PATCH v2 2/8] mm/oom_kill: convert process/thread iterators to for_each_*_rculock Ye Liu
2026-09-07 8:35 ` Lorenzo Stoakes (ARM)
2026-09-07 15:42 ` Gregory Price
2026-09-07 8:13 ` [PATCH v2 3/8] mm/ksm: convert process iterator to for_each_process_rculock Ye Liu
2026-09-07 8:36 ` Lorenzo Stoakes (ARM)
2026-09-07 15:43 ` Gregory Price
2026-09-09 16:11 ` David Hildenbrand (Arm)
2026-09-07 8:13 ` [PATCH v2 4/8] mm/memory-failure: " Ye Liu
2026-09-07 11:05 ` Lorenzo Stoakes (ARM)
2026-09-07 15:43 ` Gregory Price
2026-09-07 21:24 ` SJ Park
2026-09-07 8:13 ` [PATCH v2 5/8] kernel: convert process/thread iterators to for_each_*_rculock Ye Liu
2026-09-07 8:22 ` sashiko-bot
2026-09-07 12:20 ` Lorenzo Stoakes (ARM)
2026-09-07 15:53 ` Gregory Price
2026-09-07 17:57 ` Oleg Nesterov
2026-09-07 21:05 ` Gregory Price
2026-09-07 21:54 ` Oleg Nesterov
2026-09-07 22:27 ` Gregory Price
2026-09-07 22:44 ` Oleg Nesterov
2026-09-08 2:27 ` K Prateek Nayak
2026-09-08 6:35 ` Oleg Nesterov
2026-09-09 22:14 ` Gregory Price
2026-09-08 7:51 ` Peter Zijlstra
2026-09-07 21:28 ` SJ Park
2026-09-08 6:42 ` Oleg Nesterov
2026-09-08 7:42 ` Peter Zijlstra
2026-09-09 16:09 ` Steven Rostedt
2026-09-09 21:46 ` Peter Zijlstra
2026-09-07 8:13 ` [PATCH v2 6/8] fs: " Ye Liu
2026-09-07 8:23 ` sashiko-bot
2026-09-07 12:27 ` Lorenzo Stoakes (ARM)
2026-09-07 15:47 ` Gregory Price
2026-09-07 21:40 ` SJ Park
2026-09-07 8:13 ` [PATCH v2 7/8] lib: convert process iterator to for_each_process_rculock Ye Liu
2026-09-07 12:27 ` Lorenzo Stoakes (ARM)
2026-09-07 15:47 ` Gregory Price
2026-09-07 21:42 ` SJ Park
2026-09-07 8:13 ` [PATCH v2 8/8] security/landlock: convert thread iterator to for_each_thread_rculock Ye Liu
2026-09-07 12:28 ` Lorenzo Stoakes (ARM)
2026-09-07 15:49 ` Gregory Price
2026-09-07 21:44 ` SJ Park
2026-09-07 8:26 ` Lorenzo Stoakes (ARM) [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ap5yw-Cwb41FymNd@gremlin \
--to=ljs@kernel.org \
--cc=Dave.Martin@arm.com \
--cc=akpm@linux-foundation.org \
--cc=babu.moger@amd.com \
--cc=boqun@kernel.org \
--cc=bsegall@google.com \
--cc=chengming.zhou@linux.dev \
--cc=david@kernel.org \
--cc=dietmar.eggemann@arm.com \
--cc=frederic@kernel.org \
--cc=gnoack3000@gmail.com \
--cc=james.morse@arm.com \
--cc=jiangshanlai@gmail.com \
--cc=jmorris@namei.org \
--cc=joelagnelf@nvidia.com \
--cc=josh@joshtriplett.org \
--cc=jpoimboe@kernel.org \
--cc=juri.lelli@redhat.com \
--cc=kprateek.nayak@amd.com \
--cc=lance.yang@linux.dev \
--cc=linmiaohe@huawei.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=liuye@kylinos.cn \
--cc=longman@redhat.com \
--cc=mark.rutland@arm.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mgorman@suse.de \
--cc=mhiramat@kernel.org \
--cc=mhocko@suse.com \
--cc=mic@digikod.net \
--cc=mingo@redhat.com \
--cc=nao.horiguchi@gmail.com \
--cc=neeraj.upadhyay@kernel.org \
--cc=oleg@redhat.com \
--cc=paul@paul-moore.com \
--cc=paulmck@kernel.org \
--cc=pavel@kernel.org \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=qiang.zhang@linux.dev \
--cc=rafael@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=reinette.chatre@intel.com \
--cc=rientjes@google.com \
--cc=rostedt@goodmis.org \
--cc=serge@hallyn.com \
--cc=shakeel.butt@linux.dev \
--cc=sj@kernel.org \
--cc=tglx@kernel.org \
--cc=tony.luck@intel.com \
--cc=urezki@gmail.com \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=xu.xin16@zte.com.cn \
--cc=ye.liu@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.