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

From: peterz
Date: Thu Sep 17 2020 - 10:56:32 EST


On Thu, Sep 17, 2020 at 04:38:50PM +0200, Sebastian Siewior wrote:
> On 2020-09-17 16:24:38 [+0200], peterz@xxxxxxxxxxxxx wrote:
> > And if I'm not mistaken, the above migrate_enable() *does* require being
> > able to schedule, and our favourite piece of futex:
> >
> > raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
> > spin_unlock(q.lock_ptr);
> >
> > is broken. Consider that spin_unlock() doing migrate_enable() with a
> > pending sched_setaffinity().
>
> There are two instances of the above and only in the futex code and we
> have sort of duct tape for that by manually balancing the migrate
> counter so that it does not come to this.
> But yes, not having to do the manual balance is a plus.

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?