On 2025/12/9 01:08, Alex Bennée wrote:
> 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---

Yes it works. Please feel free to add

Tested-by: Zenghui Yu <[email protected]>

on it and patch #2. Thanks for the fixes!

Zenghui

Reply via email to