[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190915184717.GP30224@paulmck-ThinkPad-P72>
Date: Sun, 15 Sep 2019 11:47:17 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: "Eric W. Biederman" <ebiederm@...ssion.com>,
Peter Zijlstra <peterz@...radead.org>,
Oleg Nesterov <oleg@...hat.com>,
Russell King - ARM Linux admin <linux@...linux.org.uk>,
Chris Metcalf <cmetcalf@...hip.com>,
Christoph Lameter <cl@...ux.com>,
Kirill Tkhai <tkhai@...dex.ru>, Mike Galbraith <efault@....de>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...nel.org>,
Linux List Kernel Mailing <linux-kernel@...r.kernel.org>,
Davidlohr Bueso <dave@...olabs.net>
Subject: Re: [PATCH v2 3/4] task: With a grace period after
finish_task_switch, remove unnecessary code
On Sun, Sep 15, 2019 at 10:07:24AM -0700, Linus Torvalds wrote:
> On Sun, Sep 15, 2019 at 7:32 AM Paul E. McKenney <paulmck@...nel.org> wrote:
> >
> > First, what am I looking for?
> >
> > I am looking for something that prevents the following:
> >
> > o Task A acquires a reference to Task B's task_struct while
> > protected only by RCU, and is just about to increment ->rcu_users
> > when it is delayed. Maybe its vCPU is preempted or something.
>
> Where exactly do you see "increment ->rcu_users"
>
> There are _no_ users that can increment rcu_users. The thing is
> initialized to '2' when the process is created, and nobody ever
> increments it. EVER.
>
> It's only ever decremented, and when it hits zero we know that both
> users are gone, and we start the rcu-delayed free.
Color me blind and apologies for the noise!
Thanx, Paul
Powered by blists - more mailing lists