Thread (27 messages) 27 messages, 4 authors, 2019-08-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help