Re: poor cyclictest results with 5.0 series rt for arm64
From: Paul Thomas <hidden>
Date: 2019-08-13 18:03:14
On Tue, Aug 13, 2019 at 5:53 AM Sebastian Andrzej Siewior [off-list ref] wrote:
quoted hunk ↗ jump to hunk
On 2019-07-17 18:28:51 [-0400], Paul Thomas wrote:quoted
On Wed, Jul 17, 2019 at 6:21 AM Thomas Gleixner [off-list ref] wrote:quoted
On Wed, 17 Jul 2019, Thomas Gleixner wrote:quoted
On Wed, 17 Jul 2019, Thomas Gleixner wrote: The one below should fix it for real.That still has an issue which needs deeper investigation. Just keep the offending patch reverted for now.OK, sounds good.could you please try the following hunk?diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 6808cd9526c67..63c6960262861 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S@@ -648,7 +648,8 @@ alternative_if ARM64_HAS_IRQ_PRIO_MASKING orr x24, x24, x0 alternative_else_nop_endif - cbnz x24, 2f // preempt count != 0 + cbz x24, 1f // (need_resched + count) == 0 + cbnz w24, 2f // count != 0 ldr w24, [tsk, #TSK_TI_PREEMPT_LAZY] // get preempt lazy count cbnz w24, 2f // preempt lazy count != 0
I still get large latencies, like this: root@xu5:/opt/rt-tests# ./cyclictest -h ./cyclictest -S -m -n -p 99 -i 200 -h 400 -D 900 # /dev/cpu_dma_latency set to 0us policy: fifo: loadavg: 0.10 0.10 0.03 1/134 1901 T: 0 ( 1886) P:99 I:200 C:2724618 Min: 5 Act: 6 Avg: 6 Max: 45 T: 1 ( 1887) P:99 I:200 C:2724525 Min: 5 Act: 7 Avg: 6 Max: 29 T: 2 ( 1888) P:99 I:200 C:2724246 Min: 5 Act: 6 Avg: 6 Max: 6338 T: 3 ( 1889) P:99 I:200 C:2724339 Min: 5 Act: 8 Avg: 6 Max: 141 This is with the Lazy preempt commit in there. thanks, Paul