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
