Tested-by: Joelle van Dyne <[email protected]>

(With HV_EXIT_REASON_CANCELED change, otherwise it hangs on shutdown)

On Mon, Dec 8, 2025 at 4:56 PM Zenghui Yu <[email protected]> wrote:
>
> 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