diff options
Diffstat (limited to 'results/classifier/gemma3:12b/peripherals/2703')
| -rw-r--r-- | results/classifier/gemma3:12b/peripherals/2703 | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/results/classifier/gemma3:12b/peripherals/2703 b/results/classifier/gemma3:12b/peripherals/2703 new file mode 100644 index 00000000..8e28cf7b --- /dev/null +++ b/results/classifier/gemma3:12b/peripherals/2703 @@ -0,0 +1,41 @@ + +ptimer period sporadically too long +Description of problem: +A ptimer in a custom device with a frequency of 10kHz is sporadically called after more than 100,000ns in virtual time have elapsed. + +With a icount shift of 4 or 5 this happens almost everytime before the linux guest can even finish booting. + +With a shift of 0 this happens very rarely, but it does occur from time to time. +Steps to reproduce: +1. setup a ptimer with a frequency of 10kHz and assert that the time passed between callbacks is exactly 100,000ns +2. run +3. wait for boom +Additional information: +``` +// Timer setup +ptimer_transaction_begin(state->timer); + +ptimer_set_freq(state->timer, 10000); +ptimer_run(state->timer, 0); + +ptimer_transaction_commit(state->timer); +``` +``` +// timer callback +int64_t now = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); +static int64_t last = 0; +if (last > 0) +{ + if (now - last != 100000) + { + fprintf(stderr, "error tick %ld after %ld is incorrect: %ld\n", now, last, now - last); + assert(0); + } +} +last = now; +``` + +``` +error tick 47867503135 after 47867400000 is incorrect: 103135 +qemu-system-x86_64: ../...file.c:119: timer_callback: Assertion `0' failed. +``` |