Excerpt from https://github.com/cahirwpz/mimiker/pull/1006/checks?check_run_id=1926763381:
| 8.938410 | 2 | kern/callout.c:101 | KL_CALLOUT | Add callout {0xffff00000010bb20} with wakeup at 8948. |
| 8.938421 | 2 | kern/callout.c:101 | KL_CALLOUT | Add callout {0xffff00000010bb50} with wakeup at 8949. |
| 8.938431 | 2 | kern/thread.c:179 | KL_THREAD | Join 2 {0xffff0000000021d0} with 167 {0xffff000000002368} |
| 8.938455 | 2 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 2 goes to sleep on 0xffff000000002370 at pc=0xffff000000213cf4 |
| 8.938499 | 171 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 171 goes to sleep on 0xffff0000002301e4 at pc=0xffff00000023021c |
^
|
v
| 8.963309 | 0 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 1 from 0xffff0000002a9090 at pc=0xffff000000228048 |
| 8.966100 | 1 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 167 from 0xffff0000002301e4 at pc=0xffff00000023021c |
| 8.966120 | 1 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 168 from 0xffff0000002301e4 at pc=0xffff00000023021c |
| 8.966134 | 1 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 169 from 0xffff0000002301e4 at pc=0xffff00000023021c |
Excerpt from https://github.com/cahirwpz/mimiker/pull/1006/checks?check_run_id=1926763381:
| 4.025008 | 134 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 134 goes to sleep on 0xffff0000002301a4 at pc=0xffff0000002301dc |
| 4.025024 | 135 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 135 goes to sleep on 0xffff0000002301a4 at pc=0xffff0000002301dc |
| 4.025040 | 136 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 136 goes to sleep on 0xffff0000002301a4 at pc=0xffff0000002301dc |
^
|
v
| 4.125152 | 0 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 1 from 0xffff0000002a9090 at pc=0xffff000000228018 |
| 4.134341 | 1 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 132 from 0xffff0000002301a4 at pc=0xffff0000002301dc |
| 4.134365 | 1 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 133 from 0xffff0000002301a4 at pc=0xffff0000002301dc |
In both cases the test callout_sync fails due to the time jump, which causes callouts that are supposed to run on different ticks to run at the same time.
The AArch64 timer is driven by the QEMU virtual clock, not the host clock, which makes the time jump all the more strange.
UPDATE: the same thing happens on MIPS: https://github.com/cahirwpz/mimiker/runs/1928695030
| 6.950163 | 102 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 102 goes to sleep on 0xc0162b18 at pc=0xc0162b68 |
| 6.950205 | 103 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 103 goes to sleep on 0xc0162b18 at pc=0xc0162b68 |
| 6.950244 | 104 | kern/sleepq.c:119 | KL_SLEEPQ | Thread 104 goes to sleep on 0xc0162b18 at pc=0xc0162b68 |
| 7.063905 | 0 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 1 from 0xc01fa420 at pc=0xc01548fc |
| 7.064159 | 1 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 100 from 0xc0162b18 at pc=0xc0162b68 |
| 7.064252 | 1 | kern/sleepq.c:157 | KL_SLEEPQ | Wakeup thread 101 from 0xc0162b18 at pc=0xc0162b68 |
Excerpt from https://github.com/cahirwpz/mimiker/pull/1006/checks?check_run_id=1926763381:
Excerpt from https://github.com/cahirwpz/mimiker/pull/1006/checks?check_run_id=1926763381:
In both cases the test
callout_syncfails due to the time jump, which causes callouts that are supposed to run on different ticks to run at the same time.The AArch64 timer is driven by the QEMU virtual clock, not the host clock, which makes the time jump all the more strange.
UPDATE: the same thing happens on MIPS: https://github.com/cahirwpz/mimiker/runs/1928695030