From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Ye Liu <ye.liu@linux.dev>, Tony Luck <tony.luck@intel.com>,
Reinette Chatre <reinette.chatre@intel.com>,
x86@kernel.org, Christian Brauner <brauner@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Jann Horn <jannh@google.com>,
"David Hildenbrand (arm)" <david@kernel.org>,
"Mike Rapoport (Microsoft)" <rppt@kernel.org>,
Oleg Nesterov <oleg@redhat.com>, Ye Liu <liuye@kylinos.cn>,
Dave Martin <Dave.Martin@arm.com>,
James Morse <james.morse@arm.com>,
Babu Moger <babu.moger@amd.com>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 6/8] fs: convert process/thread iterators to for_each_*_rcu
Date: Tue, 8 Sep 2026 18:41:52 +0100 [thread overview]
Message-ID: <aqBH54KFSylcLmIV@gremlin> (raw)
In-Reply-To: <16df546d-46b5-42c1-a8ca-24cde0051a97@p183>
On Tue, Sep 08, 2026 at 08:26:54PM +0300, Alexey Dobriyan wrote:
> On Tue, Sep 08, 2026 at 06:10:17PM +0100, Lorenzo Stoakes (ARM) wrote:
> > On Tue, Sep 08, 2026 at 07:45:15PM +0300, Alexey Dobriyan wrote:
> > > On Fri, Sep 04, 2026 at 04:29:58PM +0800, Ye Liu wrote:
> > > > --- a/fs/proc/base.c
> > > > +++ b/fs/proc/base.c
> > > > @@ -1160,8 +1160,7 @@ static int __set_oom_adj(struct file *file, int oom_adj, bool legacy)
> > > > if (mm) {
> > > > struct task_struct *p;
> > > >
> > > > - rcu_read_lock();
> > > > - for_each_process(p) {
> > > > + for_each_process_rcu(p) {
> > > > if (same_thread_group(task, p))
> > > > continue;
> > > >
> > > > @@ -1177,7 +1176,6 @@ static int __set_oom_adj(struct file *file, int oom_adj, bool legacy)
> > > > }
> > > > task_unlock(p);
> > > > }
> > > > - rcu_read_unlock();
> > > > mmdrop(mm);
> > > > }
> > > > err_unlock:
> > >
> > > What's going on here?
> > > Now it's RCU unlock after mmdrop().
> >
> > No it's not, scoped_guard() is scoped to the for_each_process_rcu() block which
> > ends before mmdrop(), i.e. the exact same scope as before.
> >
> > That closing '}' is attached to the if (mm).
>
> OK.
>
> I think naming (and macro) are misguided:
> * _rcu means "use under RCU section opened elsewhere",
> this one is "I open and close RCU section myself".
You're replying to a v1 of a series that has a v2 which changes the naming.
>
> * not every 2 lines should be combined into new interface.
Nobody is suggesting every 2 lines should be combined into a new interface.
They're suggesting that explicitly tying lock lifetime to block scope is a
really good idea.
And having debugged lots of locking issues, I agree.
Anyway the v2 is at:
https://lore.kernel.org/all/20260907081334.1152889-1-ye.liu@linux.dev/
--
Cheers, Lorenzo
next prev parent reply other threads:[~2026-09-08 17:41 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 8:29 [PATCH 0/8] mm: introduce for_each_process_rcu and for_each_thread_rcu Ye Liu
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-07 3:05 ` Miaohe Lin
2026-09-04 8:29 ` [PATCH 5/8] kernel: convert process/thread iterators to for_each_*_rcu Ye Liu
2026-09-04 8:40 ` sashiko-bot
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-08 16:45 ` Alexey Dobriyan
2026-09-08 17:10 ` Lorenzo Stoakes (ARM)
2026-09-08 17:26 ` Alexey Dobriyan
2026-09-08 17:41 ` Lorenzo Stoakes (ARM) [this message]
2026-09-08 17:12 ` Oleg Nesterov
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=aqBH54KFSylcLmIV@gremlin \
--to=ljs@kernel.org \
--cc=Dave.Martin@arm.com \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=babu.moger@amd.com \
--cc=brauner@kernel.org \
--cc=david@kernel.org \
--cc=james.morse@arm.com \
--cc=jannh@google.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liuye@kylinos.cn \
--cc=oleg@redhat.com \
--cc=reinette.chatre@intel.com \
--cc=rppt@kernel.org \
--cc=tony.luck@intel.com \
--cc=x86@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 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.