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;




Reply via email to