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..