mbox series

[0/6] x86: fix cpu hotplug with secure boot

Message ID 20200720141610.574308-1-imammedo@redhat.com
Headers show
Series x86: fix cpu hotplug with secure boot | expand

Message

Igor Mammedov July 20, 2020, 2:16 p.m. UTC
v1:
  - fix typos and some phrases (Laszlo)
  - add unplug check (Laszlo)
  - redo AML scan logic to avoid race when adding multiple CPUs

CPU hotplug with Secure Boot was not really supported and firmware wasn't aware
of hotplugged CPUs (which might lead to guest crashes). During 4.2 we introduced
locked SMI handler RAM arrea to make sure that guest OS wasn't able to inject
its own SMI handler and OVMF added initial CPU hotplug support.

This series is QEMU part of that support which lets QMVF tell QEMU that
CPU hotplug with SMI broadcast enabled is supported so that QEMU would be able
to prevent hotplug in case it's not supported and trigger SMI on hotplug when
it's necessary. 


Igor Mammedov (6):
  x86: lpc9: let firmware negotiate 'CPU hotplug with SMI' features
  x86: cphp: prevent guest crash on CPU hotplug when broadcast SMI is in
    use
  x86: cpuhp: refuse cpu hot-unplug request earlier if not supported
  tests: acpi: mark to be changed tables in
    bios-tables-test-allowed-diff
  x68: acpi: trigger SMI before scanning for hotplugged CPUs
  tests: acpi: update acpi blobs with new AML

 include/hw/acpi/cpu.h             |   1 +
 include/hw/i386/ich9.h            |   4 +++
 hw/acpi/cpu.c                     |  50 ++++++++++++++++++++++++++++--
 hw/acpi/ich9.c                    |  23 +++++++++++++-
 hw/i386/acpi-build.c              |  35 ++++++++++++++++++++-
 hw/i386/pc.c                      |  16 +++++++++-
 hw/isa/lpc_ich9.c                 |  15 +++++++++
 tests/data/acpi/pc/DSDT           | Bin 4934 -> 4973 bytes
 tests/data/acpi/pc/DSDT.acpihmat  | Bin 6258 -> 6297 bytes
 tests/data/acpi/pc/DSDT.bridge    | Bin 6793 -> 6832 bytes
 tests/data/acpi/pc/DSDT.cphp      | Bin 5397 -> 5436 bytes
 tests/data/acpi/pc/DSDT.dimmpxm   | Bin 6587 -> 6626 bytes
 tests/data/acpi/pc/DSDT.ipmikcs   | Bin 5006 -> 5045 bytes
 tests/data/acpi/pc/DSDT.memhp     | Bin 6293 -> 6332 bytes
 tests/data/acpi/pc/DSDT.numamem   | Bin 4940 -> 4979 bytes
 tests/data/acpi/q35/DSDT          | Bin 7678 -> 7717 bytes
 tests/data/acpi/q35/DSDT.acpihmat | Bin 9002 -> 9041 bytes
 tests/data/acpi/q35/DSDT.bridge   | Bin 7695 -> 7734 bytes
 tests/data/acpi/q35/DSDT.cphp     | Bin 8141 -> 8180 bytes
 tests/data/acpi/q35/DSDT.dimmpxm  | Bin 9331 -> 9370 bytes
 tests/data/acpi/q35/DSDT.ipmibt   | Bin 7753 -> 7792 bytes
 tests/data/acpi/q35/DSDT.memhp    | Bin 9037 -> 9076 bytes
 tests/data/acpi/q35/DSDT.mmio64   | Bin 8808 -> 8847 bytes
 tests/data/acpi/q35/DSDT.numamem  | Bin 7684 -> 7723 bytes
 tests/data/acpi/q35/DSDT.tis      | Bin 8283 -> 8322 bytes
 25 files changed, 139 insertions(+), 5 deletions(-)