mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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

  reply	other threads:[~2026-09-08 17:41 UTC|newest]

Thread overview: 38+ 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 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
2026-09-04 23:07       ` Steven Rostedt
2026-09-05  7:27         ` Thomas Gleixner
2026-09-08  8:38           ` Peter Zijlstra
2026-09-11 12:54             ` Steven Rostedt
2026-09-11 15:54               ` Bart Van Assche
2026-09-08 12:42           ` Steven Rostedt
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 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: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=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 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®