Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-10-04 Thread Sebastian Andrzej Siewior
On 2019-09-24 11:35:16 [-0500], Scott Wood wrote: > > OK, sounds like stop_one_cpu_nowait() is the way to go then. so I applied the last three patches from the migrate-disable() series and it looks good. Nothing blew up in my testing. There were no objects to the stop_one_cpu_nowait() suggestion

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-24 Thread Scott Wood
On Tue, 2019-09-24 at 18:05 +0200, Sebastian Andrzej Siewior wrote: > On 2019-09-24 10:47:36 [-0500], Scott Wood wrote: > > When the stop machine finishes it will do a wake_up_process() via > > complete(). Since this does not pass WF_LOCK_SLEEPER, saved_state will > > be > > cleared, and you'll ha

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-24 Thread Sebastian Andrzej Siewior
On 2019-09-24 10:47:36 [-0500], Scott Wood wrote: > When the stop machine finishes it will do a wake_up_process() via > complete(). Since this does not pass WF_LOCK_SLEEPER, saved_state will be > cleared, and you'll have TASK_RUNNING when you get to other_func() and > schedule(), regardless of whe

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-24 Thread Scott Wood
On Tue, 2019-09-24 at 17:25 +0200, Sebastian Andrzej Siewior wrote: > On 2019-09-24 08:53:43 [-0500], Scott Wood wrote: > > As I pointed out in the "[PATCH RT 6/8] sched: migrate_enable: Set state > > to > > TASK_RUNNING" discussion, we can get here inside the rtmutex code (e.g. > > from > > debug_

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-24 Thread Sebastian Andrzej Siewior
On 2019-09-24 08:53:43 [-0500], Scott Wood wrote: > As I pointed out in the "[PATCH RT 6/8] sched: migrate_enable: Set state to > TASK_RUNNING" discussion, we can get here inside the rtmutex code (e.g. from > debug_rt_mutex_print_deadlock) where saved_state is already holding > something -- plus, t

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-24 Thread Scott Wood
On Tue, 2019-09-24 at 13:21 +0200, Sebastian Andrzej Siewior wrote: > On 2019-09-23 19:52:33 [+0200], To Scott Wood wrote: > > I made dis: > > diff --git a/kernel/cpu.c b/kernel/cpu.c > index 885a195dfbe02..25afa2bb1a2cf 100644 > --- a/kernel/cpu.c > +++ b/kernel/cpu.c > @@ -308,7 +308,9 @@ void

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-24 Thread Sebastian Andrzej Siewior
On 2019-09-23 19:52:33 [+0200], To Scott Wood wrote: I made dis: diff --git a/kernel/cpu.c b/kernel/cpu.c index 885a195dfbe02..25afa2bb1a2cf 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -308,7 +308,9 @@ void pin_current_cpu(void) preempt_lazy_enable(); preempt_enable(); +

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-23 Thread Sebastian Andrzej Siewior
On 2019-09-23 11:59:23 [-0500], Scott Wood wrote: > On Tue, 2019-09-17 at 09:06 -0500, Scott Wood wrote: > > On Tue, 2019-09-17 at 09:59 +0200, Sebastian Andrzej Siewior wrote: > > > On 2019-09-11 17:57:27 [+0100], Scott Wood wrote: > > > > diff --git a/kernel/cpu.c b/kernel/cpu.c > > > > index 885

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-23 Thread Scott Wood
On Tue, 2019-09-17 at 09:06 -0500, Scott Wood wrote: > On Tue, 2019-09-17 at 09:59 +0200, Sebastian Andrzej Siewior wrote: > > On 2019-09-11 17:57:27 [+0100], Scott Wood wrote: > > > diff --git a/kernel/cpu.c b/kernel/cpu.c > > > index 885a195dfbe0..32c6175b63b6 100644 > > > --- a/kernel/cpu.c > >

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-17 Thread Scott Wood
On Tue, 2019-09-17 at 09:59 +0200, Sebastian Andrzej Siewior wrote: > On 2019-09-11 17:57:27 [+0100], Scott Wood wrote: > > diff --git a/kernel/cpu.c b/kernel/cpu.c > > index 885a195dfbe0..32c6175b63b6 100644 > > --- a/kernel/cpu.c > > +++ b/kernel/cpu.c > > @@ -308,7 +308,9 @@ void pin_current_cpu

Re: [PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-17 Thread Sebastian Andrzej Siewior
On 2019-09-11 17:57:27 [+0100], Scott Wood wrote: > diff --git a/kernel/cpu.c b/kernel/cpu.c > index 885a195dfbe0..32c6175b63b6 100644 > --- a/kernel/cpu.c > +++ b/kernel/cpu.c > @@ -308,7 +308,9 @@ void pin_current_cpu(void) > preempt_lazy_enable(); > preempt_enable(); > > + rt_i

[PATCH RT v3 3/5] sched: migrate_dis/enable: Use rt_invol_sleep

2019-09-11 Thread Scott Wood
Without this, rcu_note_context_switch() will complain if an RCU read lock is held when migrate_enable() calls stop_one_cpu(). Likewise when migrate_disable() calls pin_current_cpu() which calls __read_rt_lock() -- which bypasses the part of the mutex code that calls rt_invol_sleep_inc(). Signed-o