From: Thomas Gleixner <tglx@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>, Ye Liu <ye.liu@linux.dev>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>,
Marco Elver <elver@google.com>, Ye Liu <liuye@kylinos.cn>,
Yi Tao <escape@linux.alibaba.com>, Tejun Heo <tj@kernel.org>,
Bart Van Assche <bvanassche@acm.org>,
Christian Brauner <brauner@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/8] mm: introduce for_each_process_rcu and for_each_thread_rcu
Date: Fri, 04 Sep 2026 23:17:38 +0200 [thread overview]
Message-ID: <87ecf87m31.ffs@fw13> (raw)
In-Reply-To: <20260904122536.1079b279@gandalf.local.home>
On Fri, Sep 04 2026 at 12:25, Steven Rostedt wrote:
> On Fri, 4 Sep 2026 16:29:53 +0800
> Ye Liu <ye.liu@linux.dev> wrote:
>> +#define for_each_thread_rcu(p, t) \
>> + scoped_guard(rcu) \
>> + __for_each_thread((p)->signal, t)
>> +
>
> I would rename it to: *_rculock()
>
> as there are already *_rcu() list iterators that are used to be done within
> an rcu locked region. Using just *_rcu() would make it confusing to know if
> the rcu lock was taken or if the loop is expected to be locked within RCU.
Ack.
>> +/* Careful: this is a double loop, 'break' won't work as expected. */
>> +#define for_each_process_thread_rcu(p, t) \
>> + scoped_guard(rcu) \
>> + for_each_process(p) for_each_thread(p, t)
>
> I would not do this one. It is prone to bugs. As it is a double loop, the
> way to "break" is to do a goto. That will be bug to have a goto jump out of
> a scoped_guard().
No. Scopes can be left by any valid termination mechanism.
The only problematic case of leaving a scoped_guard() with goto is when
the goto is actually implemented as an ASM goto. See the comment above
arch_unsafe_get_user() in linux/uaccess.h.
But I agree that requiring a goto to break out of the nested loop is
nasty especially when it's not well documented. The copied original
comment is pretty useless.
Thanks,
tglx
next prev parent reply other threads:[~2026-09-04 21:17 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 8:29 [PATCH 0/8] " Ye Liu
2026-09-04 8:29 ` [PATCH 1/8] " Ye Liu
2026-09-04 11:03 ` Michal Hocko
2026-09-04 16:25 ` Steven Rostedt
2026-09-04 21:17 ` Thomas Gleixner [this message]
2026-09-04 23:07 ` Steven Rostedt
2026-09-05 7:27 ` Thomas Gleixner
2026-09-04 8:29 ` [PATCH 2/8] mm/oom_kill: convert process/thread iterators to for_each_*_rcu Ye Liu
2026-09-04 11:04 ` Michal Hocko
2026-09-05 0:32 ` SJ Park
2026-09-04 8:29 ` [PATCH 3/8] mm/ksm: convert process iterator to for_each_process_rcu Ye Liu
2026-09-04 11:04 ` Michal Hocko
2026-09-05 0:33 ` SJ Park
2026-09-04 8:29 ` [PATCH 4/8] mm/memory-failure: " Ye Liu
2026-09-04 11:05 ` Michal Hocko
2026-09-05 0:39 ` SJ Park
2026-09-04 8:29 ` [PATCH 5/8] kernel: convert process/thread iterators to for_each_*_rcu Ye Liu
2026-09-04 11:06 ` Michal Hocko
2026-09-04 14:14 ` Günther Noack
2026-09-04 8:29 ` [PATCH 6/8] fs: " Ye Liu
2026-09-04 9:05 ` Oleg Nesterov
2026-09-04 9:22 ` Lorenzo Stoakes (ARM)
2026-09-04 11:06 ` Michal Hocko
2026-09-04 8:29 ` [PATCH 7/8] lib: convert process iterator to for_each_process_rcu Ye Liu
2026-09-04 11:09 ` Michal Hocko
2026-09-04 8:30 ` [PATCH 8/8] security/landlock: convert thread iterator to for_each_thread_rcu Ye Liu
2026-09-04 12:21 ` Justin Suess
2026-09-04 14:17 ` Günther Noack
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=87ecf87m31.ffs@fw13 \
--to=tglx@kernel.org \
--cc=brauner@kernel.org \
--cc=bvanassche@acm.org \
--cc=elver@google.com \
--cc=escape@linux.alibaba.com \
--cc=linux-kernel@vger.kernel.org \
--cc=liuye@kylinos.cn \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tj@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®