All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ye Liu <ye.liu@linux.dev>
To: "Peter Zijlstra" <peterz@infradead.org>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Michal Hocko" <mhocko@suse.com>,
	"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>
Cc: "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>,
	"Lorenzo Stoakes" <ljs@kernel.org>, "SJ Park" <sj@kernel.org>,
	"Gregory Price" <gourry@gourry.net>,
	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 v4 00/15] sched: introduce for_each_process_rculock and for_each_thread_rculock
Date: Mon, 12 Oct 2026 16:22:25 +0800	[thread overview]
Message-ID: <7842535e-ae71-4de3-b16d-14d55b514df5@linux.dev> (raw)
In-Reply-To: <20260921092101.89285-1-ye.liu@linux.dev>

Hi, Peter

Friendly ping on this series, posted three weeks ago. You previously
requested splitting the combined kernel/ conversion into per-subsystem
patches, which has been done in v4.
No rush — just want to make sure this is on your radar.

Thanks,
Ye Liu

在 2026/9/21 17:20, Ye Liu 写道:
> 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.
>
> Suggested by Michal Hocko for the oom_kill path [2].
>
> Signed-off-by: Ye Liu <liuye@kylinos.cn>
>
> ---
> Changes since v3 [4]:
>   - Fix patch 5 (cpu/hotplug): title and commit message incorrectly
>     said "thread iterator" and "for_each_thread_rculock" while the
>     code converts for_each_process() to for_each_process_rculock().
>
> Note: Patches 4, 11, and 13 received automated reviews from sashiko-bot
> in the v3 thread [4] that were verified as false positives:
>
>   - Patch 4: claimed the folio lock is dropped before collect_procs(),
>     leading to a NULL deref on folio->mapping; the lock is held in all
>     call paths.
>   - Patch 11: claimed mixing goto/scope-based cleanup in
>     alloc_retstack_tasklist(); the goto free label handles memory
>     cleanup, not lock management.
>   - Patch 13: claimed mixing goto/scope-based cleanup in
>     __set_oom_adj(); goto err_unlock manages oom_adj_mutex while
>     scoped_guard(rcu) manages the RCU read lock — different resources.
>
> Changes since v2 [3]:
>   - Split the kernel/ patch into per-subsystem patches, as the
>     combined patch could not be applied (Peter Zijlstra, Steven
>     Rostedt).
>   - Move changelog below the --- separator so it is excluded from
>     the commit message (Lorenzo Stoakes).
>   - Indent loop body in macro definitions to show scoped_guard
>     scope (Lorenzo Stoakes).
>
> 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).
>
> [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/
> [3] https://lore.kernel.org/all/20260907081334.1152889-1-ye.liu@linux.dev/
> [4] https://lore.kernel.org/all/20260911075800.491472-1-ye.liu@linux.dev/
>
> Ye Liu (15):
>   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
>   cpu/hotplug: convert process iterator to for_each_process_rculock
>   freezer: convert thread iterator to for_each_thread_rculock
>   hung_task: convert process/thread iterators to for_each_*_rculock
>   locking/lockdep: convert process/thread iterators to
>     for_each_*_rculock
>   rcu: convert process/thread iterator to
>     for_each_process_thread_rculock
>   sched: convert process/thread iterators to for_each_*_rculock
>   tracing/fgraph: convert process/thread iterator to
>     for_each_process_thread_rculock
>   unwind: convert process/thread iterator to
>     for_each_process_thread_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 | 26 ++++++++++++++++++++++++++
>  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, 55 insertions(+), 81 deletions(-)
>
> --
> 2.25.1

-- 
Thanks,
Ye Liu


      parent reply	other threads:[~2026-10-12  8:22 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-21  9:20 [PATCH v4 00/15] sched: introduce for_each_process_rculock and for_each_thread_rculock Ye Liu
2026-09-21  9:20 ` [PATCH v4 01/15] " Ye Liu
2026-09-21  9:41   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 02/15] mm/oom_kill: convert process/thread iterators to for_each_*_rculock Ye Liu
2026-09-21  9:46   ` sashiko-bot
2026-09-21 19:58   ` Oleg Nesterov
2026-09-21  9:20 ` [PATCH v4 03/15] mm/ksm: convert process iterator to for_each_process_rculock Ye Liu
2026-09-21  9:51   ` sashiko-bot
2026-09-21 19:59   ` Oleg Nesterov
2026-09-21  9:20 ` [PATCH v4 04/15] mm/memory-failure: " Ye Liu
2026-09-21  9:55   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 05/15] cpu/hotplug: " Ye Liu
2026-09-21 10:04   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 06/15] freezer: convert thread iterator to for_each_thread_rculock Ye Liu
2026-09-21 10:07   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 07/15] hung_task: convert process/thread iterators to for_each_*_rculock Ye Liu
2026-09-21 10:10   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 08/15] locking/lockdep: " Ye Liu
2026-09-21 10:14   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 09/15] rcu: convert process/thread iterator to for_each_process_thread_rculock Ye Liu
2026-09-21 10:18   ` sashiko-bot
2026-09-21 16:09   ` Paul E. McKenney
2026-09-21  9:20 ` [PATCH v4 10/15] sched: convert process/thread iterators to for_each_*_rculock Ye Liu
2026-09-21 10:23   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 11/15] tracing/fgraph: convert process/thread iterator to for_each_process_thread_rculock Ye Liu
2026-09-21 10:27   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 12/15] unwind: " Ye Liu
2026-09-21 10:32   ` sashiko-bot
2026-09-21  9:20 ` [PATCH v4 13/15] fs: convert process/thread iterators to for_each_*_rculock Ye Liu
2026-09-21 10:39   ` sashiko-bot
2026-09-21  9:33 ` [PATCH v4 14/15] lib: convert process iterator to for_each_process_rculock Ye Liu
2026-09-21 10:42   ` sashiko-bot
2026-09-21 20:12   ` Oleg Nesterov
2026-09-21  9:33 ` [PATCH v4 15/15] security/landlock: convert thread iterator to for_each_thread_rculock Ye Liu
2026-09-21 10:46   ` sashiko-bot
2026-10-12  8:22 ` Ye Liu [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=7842535e-ae71-4de3-b16d-14d55b514df5@linux.dev \
    --to=ye.liu@linux.dev \
    --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=gourry@gourry.net \
    --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=ljs@kernel.org \
    --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 \
    /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.