Re: [RFC PATCH 1/5] x86: introduce preemption disable prefix

From: Peter Zijlstra
Date: Fri Oct 19 2018 - 04:22:25 EST


On Thu, Oct 18, 2018 at 10:00:53PM -0700, Alexei Starovoitov wrote:
> >
> > >
> > > Another example is __BPF_PROG_RUN_ARRAY(), which also uses
> > > preempt_enable_no_resched().
> >
> > Alexei, I think this code is just wrong.
>
> why 'just wrong' ?

Because you lost a preemption point, this is a no-no.

>
> > Do you know why it uses
> > preempt_enable_no_resched()?
>
> dont recall precisely.
> we could be preemptable at the point where macro is called.
> I think the goal of no_resched was to avoid adding scheduling points
> where they didn't exist before just because a prog ran for few nsec.
> May be Daniel or Roman remember.

No, you did the exact opposite, where there previously was a preemption,
you just ate it. The band saw didn't get stopped in time, you loose your
hand etc..