v2: - AML: clean is_inserted flag only after SMI callback - make x-smi-cpu-hotunplug false by default - massage error hint on not supported unplug 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 (7): 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 acpi: add aml_land() and aml_break() primitives tests: acpi: mark to be changed tables in bios-tables-test-allowed-diff x68: acpi: trigger SMI before sending hotplug Notify event to OSPM tests: acpi: update acpi blobs with new AML include/hw/acpi/aml-build.h | 2 + include/hw/acpi/cpu.h | 1 + include/hw/i386/ich9.h | 4 ++ include/hw/i386/pc.h | 3 ++ hw/acpi/aml-build.c | 16 ++++++ hw/acpi/cpu.c | 80 ++++++++++++++++++++++++++++-- hw/acpi/ich9.c | 24 ++++++++- hw/i386/acpi-build.c | 35 ++++++++++++- hw/i386/pc.c | 17 ++++++- hw/i386/pc_piix.c | 1 + hw/i386/pc_q35.c | 1 + hw/isa/lpc_ich9.c | 16 ++++++ tests/data/acpi/pc/DSDT | Bin 4934 -> 5009 bytes tests/data/acpi/pc/DSDT.acpihmat | Bin 6258 -> 6334 bytes tests/data/acpi/pc/DSDT.bridge | Bin 6793 -> 6868 bytes tests/data/acpi/pc/DSDT.cphp | Bin 5397 -> 5473 bytes tests/data/acpi/pc/DSDT.dimmpxm | Bin 6587 -> 6663 bytes tests/data/acpi/pc/DSDT.ipmikcs | Bin 5006 -> 5081 bytes tests/data/acpi/pc/DSDT.memhp | Bin 6293 -> 6368 bytes tests/data/acpi/pc/DSDT.numamem | Bin 4940 -> 5015 bytes tests/data/acpi/q35/DSDT | Bin 7678 -> 7753 bytes tests/data/acpi/q35/DSDT.acpihmat | Bin 9002 -> 9078 bytes tests/data/acpi/q35/DSDT.bridge | Bin 7695 -> 7770 bytes tests/data/acpi/q35/DSDT.cphp | Bin 8141 -> 8217 bytes tests/data/acpi/q35/DSDT.dimmpxm | Bin 9331 -> 9407 bytes tests/data/acpi/q35/DSDT.ipmibt | Bin 7753 -> 7828 bytes tests/data/acpi/q35/DSDT.memhp | Bin 9037 -> 9112 bytes tests/data/acpi/q35/DSDT.mmio64 | Bin 8808 -> 8883 bytes tests/data/acpi/q35/DSDT.numamem | Bin 7684 -> 7759 bytes tests/data/acpi/q35/DSDT.tis | Bin 8283 -> 8358 bytes 30 files changed, 192 insertions(+), 8 deletions(-) -- 2.26.2