Hi, > On 28. Jul 2025, at 12:18, Philippe Mathieu-Daudé <phi...@linaro.org> wrote: > > Hi Mohamed, > > On 26/7/25 00:30, Mohamed Mediouni wrote: >> When using the vGIC, timers are directly handled by the platform, so no >> vmexits ought to happen in that case. >> Signed-off-by: Mohamed Mediouni <moha...@unpredictable.fr> >> --- >> target/arm/hvf/hvf.c | 10 ++++++++++ >> 1 file changed, 10 insertions(+) > > >> @@ -1965,6 +1971,10 @@ int hvf_vcpu_exec(CPUState *cpu) >> /* This is the main one, handle below. */ >> break; >> case HV_EXIT_REASON_VTIMER_ACTIVATED: >> + /* This is only for when a user-mode irqchip is used. */ >> + if (hvf_irqchip_in_kernel()) { >> + assert("vtimer activated vmexit when using platform GIC"); > > This line does nothing (not firing), is that what you intended to? It’s specifically so that if this trips, I know that I really screwed things up. Helped me a bit in developing this.
However, this whole patch isn’t expected to ever trigger irl, so would be fine to drop from that perspective. HV_EXIT_REASON_VTIMER_ACTIVATED will never be returned by Hypervisor.framework when the vGIC is enabled. Thank you, -Mohamed >> + } >> qemu_set_irq(arm_cpu->gt_timer_outputs[GTIMER_VIRT], 1); >> cpu->accel->vtimer_masked = true; >> return 0; >