On Tue, Feb 09, 2021 at 04:05:14PM +0100, Igor Mammedov <imamm...@redhat.com> wrote:
> On Mon, 8 Feb 2021 13:57:22 -0800 > isaku.yamah...@gmail.com wrote: > > > From: Isaku Yamahata <isaku.yamah...@intel.com> > > > > If SMM is not supported, ACPI fixed hardware doesn't support > > legacy-mode. ACPI-only platform. Where SCI_EN in PM1_CNT register is > > always set. > > The bit tells OS legacy mode(SCI_EN cleared) or ACPI mode(SCI_EN set). > > does it break some specific software? With the next patch (setting fadt.smi_cmd = 0 when smm isn't supported), guest Linux tries to switch to ACPI mode, finds smi_cmd = 0, and then fails to initialize acpi subsystem. will update the commit message in next respin. > > ACPI spec 4.8.10.1 PM1 Event Grouping > > PM1 Eanble Registers > > > For ACPI-only platforms (where SCI_EN is always set) > > > > Signed-off-by: Isaku Yamahata <isaku.yamah...@intel.com> > it changes guest ABI for old machine types but it seems to me that > it's harmless (in typical use-cases backward and forward migrated > guest should work fine). > > The only thing that is broken is transitioning to legacy mode > when guest was started on old QEMU and then migrated to the new one > where disable op will be NOP and qemu always stays in ACPI mode > (so guest will hang while it waits for transition to happen). The patch affects guests only when SMM isn't supported. Concretely - user explicitly specified to disable smm by -machine smm=off or - underlying kvm doesn't have KVM_CAP_X86_SMM (smm=auto: default) Please refer to x86_machine_is_smm_enabled(). Also Libvirt checks if guest bios requires SMI and enables smm even when user disabling SMM. qemuFirmwareEnableFeatures() If smm is disabled and legacy-mode is enabled without this patch, SMI won't be injected to guest anyway. Thus guest breaks already. > Can you test this scenario with various guest OSes (old/new/MS Windows) > to check if it won't break them. Unless -machine smm=off is explicitly passed, this patch won't break guests. And such case is rare as I described above. My motivation for this patch series is preparation for TDX which disallows SMM mode and SMI injection. > if we are to be conservative, we need to disable this compliance fix > on old machine types. I'm fine with adding one more knob to be on safe side. -machine smm=off is such knob, though. Thanks, -- Isaku Yamahata <isaku.yamah...@gmail.com>