On 28/7/25 12:46, Mohamed Mediouni wrote:
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.
Sorry I misread.
Better to follow QEMU style to ease reviewers:
error_report("vtimer activated vmexit when using platform GIC");
abort();
Or just:
assert(!hvf_irqchip_in_kernel());
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;