[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 3/9] acpi/core: always set SCI_EN when SMM isn't supported
From: |
Isaku Yamahata |
Subject: |
Re: [PATCH v2 3/9] acpi/core: always set SCI_EN when SMM isn't supported |
Date: |
Tue, 9 Feb 2021 11:23:05 -0800 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Tue, Feb 09, 2021 at 04:05:14PM +0100,
Igor Mammedov <imammedo@redhat.com> wrote:
> On Mon, 8 Feb 2021 13:57:22 -0800
> isaku.yamahata@gmail.com wrote:
>
> > From: Isaku Yamahata <isaku.yamahata@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.yamahata@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.yamahata@gmail.com>
- [PATCH v2 0/9] ACPI related fixes, isaku . yamahata, 2021/02/08
- [PATCH v2 1/9] checkpatch: don't emit warning on newly created acpi data files, isaku . yamahata, 2021/02/08
- [PATCH v2 2/9] qtest: update tests/qtest/bios-tables-test-allowed-diff.h, isaku . yamahata, 2021/02/08
- [PATCH v2 4/9] acpi: set fadt.smi_cmd to zero when SMM is not supported, isaku . yamahata, 2021/02/08
- [PATCH v2 6/9] hw/i386: declare ACPI mother board resource for MMCONFIG region, isaku . yamahata, 2021/02/08