On Tue, Jul 18, 2017 at 12:42:26PM +0200, Christoffer Dall wrote: > On Tue, Jul 18, 2017 at 12:17:07PM +0200, Andrew Jones wrote: > > On Thu, Jul 13, 2017 at 09:20:06PM +0200, Christoffer Dall wrote: > > > Add a test for the vtimer. I've tested on > > > accel=tcg > > > accel=kvm : on seattle, and mustang > > > accel=kvm,kernel-irqchip=off : on mustang > > > > > > I first fix two issues I had running the basic timer test on APM mustang > > > on using TCG. I wonder why the vtimer tests worked using TCG for Drew, > > > since they didn't work for me, and I don't see how they would have > > > without patch 1. > > > > That's weird. I just tested again with a latest qemu master pull and it > > still works for me without patch 1. However, as you and Marc discussed, > > it's the right thing to do with regards to the spec. > > > > What is the command line you use to test this? The one generated by the run script $ cat logs/timer.log timeout -k 1s --foreground 2s ../build/q/aarch64-softmmu/qemu-system-aarch64 -nodefaults -machine virt,accel=tcg -cpu cortex-a57 -device virtio-serial-device -device virtconsole,chardev=ctd -chardev testdev,id=ctd -device pci-testdev -display none -serial stdio -kernel arm/timer.flat -smp 1 # -initrd /tmp/tmp.2Z4KzFEbAs CNTFRQ_EL0 : 0x0000000003b9aca0 CNTVCT_EL0 : 0x00000000000aa949 CNTV_CTL_EL0 : 0x0000000000000000 CNTV_CVAL_EL0: 0x0000000000000000 PASS: vtimer-busy-loop: not pending before INFO: vtimer-busy-loop: After timer: 0x0000000000167bd1 INFO: vtimer-busy-loop: Expected : 0x0000000000163ae6 INFO: vtimer-busy-loop: Difference : 268 us PASS: vtimer-busy-loop: latency within 10 ms PASS: vtimer-busy-loop: interrupt received SUMMARY: 3 tests > > By looking at the code in QEMU, I see this: > > target/arm/helper.c:gt_recalc_timer() > > if (gt->ctl & 1) { > ... > } else { > gt->ctl &= ~4; > qemu_set_irq(cpu->gt_timer_outputs[timeridx], 0); > timer_del(cpu->gt_timer[timeridx]); > trace_arm_gt_recalc_disabled(timeridx); > } > > So bits 1 and 2 (IMASK and ISTATUS, respectively) are cleared. > > I instrumented the code and verified this. > > Confusing. Indeed. drew