On Tue, 27 Jan 2026 at 12:46, Mohamed Mediouni <[email protected]> wrote:
> > On 27. Jan 2026, at 11:54, Peter Maydell <[email protected]> wrote:
> >
> > On Wed, 21 Jan 2026 at 13:41, Mohamed Mediouni <[email protected]> 
> > wrote:
> >> +/*
> >> + * In the prior Qemu ACPI table handling, GICv2 configurations
> >> + * had vms->its=1... That's broken.
> >> + *
> >> + * Match that assumption to match the existing ACPI tables that
> >> + * have been shipping for quite a while.
> >> + */
> >> +static int is_gicv2_acpi_workaround_needed(VirtMachineState *vms) {
> >> +    return vms->gic_version == 2;
> >> +}
> >
> > We don't need to keep identical bug-for-bug ACPI tables like that.
> > If we were incorrectly reporting an ITS in a GICv2-only ACPI table,
> > that was a bug and we can fix it. (This might need adjusting of the
> > golden reference ACPI data in some of the bios-tables-tests if we
> > were testing that, so it ought to go in its own patch.)
> >
> Hello,
>
> I’m a bit concerned about breaking hibernation in this case…
>
> My intent was keeping this behavior for now and then add a machine model 
> version dependent toggle in a follow-up patch.

I'm not an ACPI table expert but my understanding is that it's
OK to change the ACPI table contents without having to make
those changes machine-version dependent. See e.g. commit d6afe18b7242,
which changed the ACPI tables for the its=off case and did not
make those changes machine-version specific.

> >> +bool virt_is_its_enabled(VirtMachineState *vms)

> > Why do we need these? The idea of finalize_msi_controller()
> > is that it fixes vms->msi_controller so that you can just
> > directly say vms->msi_controller == VIRT_MSI_CTRL_ITS or
> > vms->msi_controller == VIRT_MSI_CTRL_GICV2M rather than
> > having to have more complicated logic.
> >
> It’s because of object_class_property_add_str(oc, "msi", virt_get_msi, 
> virt_set_msi) (and the same applies for the its property), is it safe to 
> assume that virt_get_msi/virt_get_its will never be called from that prior to 
> finalize?

The get and set property functions need to handle the
msi_controller field not having been finalized, but
they are only getting and setting it.

thanks
-- PMM

Reply via email to