diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-05-10 14:05:04 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-05-10 14:05:04 +0200 |
commit | db3bf8271bd6afe732256b98e86fe38612cb5ff9 (patch) | |
tree | 15e2332661668a0689083555ee22fea16a68ee87 | |
parent | addb36ee488757125c43c02076006dba8c9e69bc (diff) | |
download | plan9front-db3bf8271bd6afe732256b98e86fe38612cb5ff9.tar.xz |
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.
-rw-r--r-- | sys/src/9/bcm64/l.s | 11 |
1 files 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 |