From db3bf8271bd6afe732256b98e86fe38612cb5ff9 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Fri, 10 May 2019 14:05:04 +0200 Subject: [PATCH] bcm64: use exclusive monitor on nrdy to wake up idlehands() when the exclusive monitor is cleared, a event is generated which we can use to wake up idlehands. that way we do not need to wait for the next timer interrupt until a cpu takes work from the run queue. --- sys/src/9/bcm64/l.s | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sys/src/9/bcm64/l.s b/sys/src/9/bcm64/l.s index 4e64773f7..69e9c3924 100644 --- a/sys/src/9/bcm64/l.s +++ b/sys/src/9/bcm64/l.s @@ -293,10 +293,13 @@ TEXT splx(SB), 1, $-4 TEXT idlehands(SB), 1, $-4 DMB $ISH - MOVW nrdy(SB), R0 - CBNZ R0, _ready - WFI -_ready: + MOV $nrdy(SB), R1 + LDXRW (R1), R0 + CBZ R0, _goodnight + CLREX + SEVL +_goodnight: + WFE RETURN TEXT cycles(SB), 1, $-4