Re: [patch 09/10] sched/core: Add migrate_disable/enable()

From: peterz
Date: Thu Sep 17 2020 - 15:17:46 EST


On Thu, Sep 17, 2020 at 05:13:41PM +0200, Sebastian Siewior wrote:
> On 2020-09-17 16:49:37 [+0200], peterz@xxxxxxxxxxxxx wrote:
> > I'm aware of the duct-tape :-) But I was under the impression that we
> > didn't want the duct-tape, and that there was lots of issues with the
> > FPU code, or was that another issue?
>
> Of course it would be better not to need the duct tape.
> Also symmetrical locking is what you want but clearly futex is one of
> a kind.
>
> I'm currently not aware of any issues in the FPU code in regard to this.
> A few weeks ago, I was looking for this kind of usage and only futex
> popped up.

I'm not sure what the problem with FPU was, I was throwing alternatives
at tglx to see what would stick, in part to (re)discover the design
constraints of this thing.

One reason for not allowing migrate_disable() to sleep was: FPU code.

Could it be it does something like:

preempt_disable();
spin_lock();

spin_unlock();
preempt_enable();

Where we'll never get preempted while migrate_disable()'d and thus never
trigger any of the sleep paths?