summary refs log tree commit diff stats
path: root/results/classifier/gemma3:12b/peripherals/2703
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/gemma3:12b/peripherals/2703')
-rw-r--r--results/classifier/gemma3:12b/peripherals/270341
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 000000000..8e28cf7b0
--- /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.
+```