On Wed, 17 Jul 2019, Thomas Gleixner wrote: > On Wed, 17 Jul 2019, Thomas Gleixner wrote: > > > Paul, > > > > On Tue, 16 Jul 2019, Paul Thomas wrote: > > > On Tue, Jul 16, 2019 at 7:14 PM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote: > > > > Either that patch is broken or it got broken on forward porting it from > > > > 4.19. Need to look with brain awake tomorrow. > > > > > > Yes! this looks like it fixes it. The hash I see is slightly different: > > > b7f42e8fb48cbe38e4c2d0cab48309aadfa6d032 > > > > > > But the name was the same "arch/arm64: Add lazy preempt support" > > > > So, brain works better now. Can you test the patch below? > > Bah, ignore that. Still broken. -ENOTENOUGHCOFFEE The one below should fix it for real. Thanks, tglx 8<-------------------- --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -612,10 +612,12 @@ ENDPROC(el1_sync) ldr x24, [tsk, #TSK_TI_PREEMPT] // get preempt count cbnz x24, 2f // preempt count != 0 + ldr x0, [tsk, #TSK_TI_FLAGS] // get flags + tbnz x0, #TIF_NEED_RESCHED, 1f // needs rescheduling? + ldr w24, [tsk, #TSK_TI_PREEMPT_LAZY] // get preempt lazy count cbnz w24, 2f // preempt lazy count != 0 - ldr x0, [tsk, #TSK_TI_FLAGS] // get flags tbz x0, #TIF_NEED_RESCHED_LAZY, 2f // needs rescheduling? 1: bl el1_preempt