Re: sched: Reenable interrupts in do sched_yield()

From: Thomas Gleixner
Date: Tue Oct 20 2020 - 14:03:07 EST


On Tue, Oct 20 2020 at 11:38, Steven Rostedt wrote:
> On Tue, 20 Oct 2020 16:46:55 +0200
> Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
>> - /*
>> - * Since we are going to call schedule() anyway, there's
>> - * no need to preempt or enable interrupts:
>
> I think the above comment still makes sense, just needs to be tweeked:
>
> /*
> * Since we are going to call schedule() anyway, there's
> * no need to allow preemption after releasing the rq lock.
>> - */
>
> Especially, since we are now enabling interrupts, which is likely to
> trigger a preemption.

sched_preempt_enable_no_resched() still enables preemption. It just
avoids the check. And it still allows preemption when an interrupt
triggering preemption happens between sched_preempt_enable_no_resched()
and __schedule() disabling preemption/interrupts.

So no, your new variant is just differently bogus and misleading.

Thanks,

tglx