Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-07-24 Thread Paul E. McKenney
On Thu, Jul 23, 2020 at 10:11:28PM +0200, Peter Zijlstra wrote: > On Thu, Jul 23, 2020 at 08:41:03PM +0100, Chris Wilson wrote: > > > I am very sorry for the wild goose chase. > > *phew*... all good then. I was starting to go a little ga-ga trying to > make sense of things. > > Arguably we

Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-07-23 Thread Peter Zijlstra
On Thu, Jul 23, 2020 at 08:41:03PM +0100, Chris Wilson wrote: > I am very sorry for the wild goose chase. *phew*... all good then. I was starting to go a little ga-ga trying to make sense of things. Arguably we should probably do something like: @@ -4555,7 +4572,7 @@ asmlinkage __visible void

Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-07-23 Thread Chris Wilson
Quoting Peter Zijlstra (2020-07-23 19:28:41) > On Wed, Jul 22, 2020 at 10:57:56AM +0100, Chris Wilson wrote: > > > Perhaps more damning is that I can replace WF_ON_CPU with p->on_cpu to > > suppress the warning: > > *argh*, I'm starting to go mad... > > Chris, could you please try the below

Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-07-23 Thread Peter Zijlstra
On Wed, Jul 22, 2020 at 10:57:56AM +0100, Chris Wilson wrote: > Perhaps more damning is that I can replace WF_ON_CPU with p->on_cpu to > suppress the warning: *argh*, I'm starting to go mad... Chris, could you please try the below patch? Can you also confirm that if you do: $ echo

Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-07-22 Thread Chris Wilson
Quoting pet...@infradead.org (2020-07-21 12:37:19) > On Tue, Jul 21, 2020 at 11:49:05AM +0100, Chris Wilson wrote: > > Quoting Peter Zijlstra (2020-06-22 11:01:23) > > > @@ -2378,6 +2385,9 @@ static inline bool ttwu_queue_cond(int c > > > static bool ttwu_queue_wakelist(struct task_struct *p, int

Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-07-21 Thread peterz
On Tue, Jul 21, 2020 at 11:49:05AM +0100, Chris Wilson wrote: > Quoting Peter Zijlstra (2020-06-22 11:01:23) > > @@ -2378,6 +2385,9 @@ static inline bool ttwu_queue_cond(int c > > static bool ttwu_queue_wakelist(struct task_struct *p, int cpu, int > > wake_flags) > > { > > if

Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-07-21 Thread Chris Wilson
Quoting Peter Zijlstra (2020-06-22 11:01:23) > @@ -2378,6 +2385,9 @@ static inline bool ttwu_queue_cond(int c > static bool ttwu_queue_wakelist(struct task_struct *p, int cpu, int > wake_flags) > { > if (sched_feat(TTWU_QUEUE) && ttwu_queue_cond(cpu, wake_flags)) { > + if

Re: [PATCH -v2 1/5] sched: Fix ttwu() race

2020-06-22 Thread Peter Zijlstra
*sigh*, this one should actually build and I got a smatch report that there's an uninitizlied usage of @cpu, so I shuffled that around a bit. --- Subject: sched: Fix ttwu() race From: Peter Zijlstra Date: Mon, 22 Jun 2020 12:01:23 +0200 Paul reported rcutorture occasionally hitting a NULL

[PATCH -v2 1/5] sched: Fix ttwu() race

2020-06-22 Thread Peter Zijlstra
Paul reported rcutorture occasionally hitting a NULL deref: sched_ttwu_pending() ttwu_do_wakeup() check_preempt_curr() := check_preempt_wakeup() find_matching_se() is_same_group() if (se->cfs_rq == pse->cfs_rq) <-- *BOOM* Debugging showed that this only