On Wed, Nov 11, 2020 at 03:34:58PM +0100, Peter Zijlstra wrote: > On Tue, Oct 27, 2020 at 04:08:26PM +0100, Frederic Weisbecker wrote: > > schedule_user() was traditionally used by the entry code's tail to > > preempt userspace after the call to user_enter(). Indeed the call to > > user_enter() used to be performed upon syscall exit slow path which was > > right before the last opportunity to schedule() while resuming to > > userspace. The context tracking state had to be saved on the task stack > > and set back to CONTEXT_KERNEL temporarily in order to safely switch to > > another task. > > > > Only a few archs use it now and those implementing > > HAVE_CONTEXT_TRACKING_OFFSTACK definetly can't rely on it. > > powerpc64 and sparc64 only, right?
Exactly! I can precise that in the changelog. Thanks. > > > Signed-off-by: Frederic Weisbecker <frede...@kernel.org> > > Cc: Marcelo Tosatti <mtosa...@redhat.com> > > Cc: Paul E. McKenney <paul...@kernel.org> > > Cc: Peter Zijlstra <pet...@infradead.org> > > Cc: Phil Auld <pa...@redhat.com> > > Cc: Thomas Gleixner <t...@linutronix.de> > > --- > > kernel/sched/core.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > > index c23d7cb5aee3..44426e5acde2 100644 > > --- a/kernel/sched/core.c > > +++ b/kernel/sched/core.c > > @@ -4631,7 +4631,7 @@ void __sched schedule_idle(void) > > } while (need_resched()); > > } > > > > -#ifdef CONFIG_CONTEXT_TRACKING > > +#if defined(CONFIG_CONTEXT_TRACKING) && > > !defined(CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK) > > asmlinkage __visible void __sched schedule_user(void) > > { > > /* > > -- > > 2.25.1 > >