Zenghui Yu <[email protected]> writes:

> Hi Alex,
>
> On 2025/12/5 23:11, Alex Bennée wrote:
>> When we handle a host call we report state back to the caller via
>> registers. Set vcpu_dirty to indicate QEMU is currently the reference
>> and hoist the flush_cpu_state() and make the call unconditional.
>> 
>> Fixes: https://gitlab.com/qemu-project/qemu/-/issues/3228
>> Signed-off-by: Alex Bennée <[email protected]>
>
> This fixes the guest boot issue.
>
> However I notice that some (all?) HMP commands (e.g., "info registers")
> don't return and result in guest hang. Haven't dig further though.

Does this fix it:

--8<---------------cut here---------------start------------->8---
target/arm: make HV_EXIT_REASON_CANCELED leave main loop

Without this we can spin tightly in the main HVF dispatch loop and
never release the lock long enough.

Signed-off-by: Alex Bennée <[email protected]>

1 file changed, 1 insertion(+)
 target/arm/hvf/hvf.c | 1 +

modified    target/arm/hvf/hvf.c
@@ -2020,6 +2020,7 @@ static int hvf_handle_vmexit(CPUState *cpu, 
hv_vcpu_exit_t *exit)
         break;
     case HV_EXIT_REASON_CANCELED:
         /* we got kicked, no exit to process */
+        ret = -1;
         break;
     default:
         g_assert_not_reached();
--8<---------------cut here---------------end--------------->8---

>
> Thanks,
> Zenghui

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to