Supersedes: <20200223172537.28464-1-ler...@redhat.com> Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=1512 Repo: https://github.com/lersek/edk2.git Branch: vcpu_hotplug_smm_bz_1512_v2
V1 was posted at: * [edk2-devel] [PATCH 00/16] OvmfPkg: support VCPU hotplug with -D SMM_REQUIRE https://edk2.groups.io/g/devel/message/54734 20200223172537.28464-1-lersek@redhat.com">http://mid.mail-archive.com/20200223172537.28464-1-lersek@redhat.com New in v2: - Document (in patch#11) and implement (in patch#12) the "combined" approach described here: 111145fc-be3d-2a9a-a126-c14345a8a8a4@redhat.com">http://mid.mail-archive.com/111145fc-be3d-2a9a-a126-c14345a8a8a4@redhat.com https://edk2.groups.io/g/devel/message/54754 The idea is basically to make the SMM Monarch wait not just until the hot-added CPU hits the normal RAM Post-SMM Pen (which is safe wrt. ordering, but can be attacked by the OS), but *also* until the hot-added CPU is just about to execute RSM first (which is a bit less safe wrt. ordering, but cannot be attacked by the OS). - Pick up Ard's conditional A-b for the other patches, which have not been modified. - Rebase to master, and retest. See the Notes sections on the individual patches. I wanted to get v2 out on the list before having to ask Intel folks to do an incremental review. Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> Cc: Eric Dong <eric.d...@intel.com> Cc: Hao A Wu <hao.a...@intel.com> Cc: Igor Mammedov <imamm...@redhat.com> Cc: Jian J Wang <jian.j.w...@intel.com> Cc: Jiewen Yao <jiewen....@intel.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Michael Kinney <michael.d.kin...@intel.com> Cc: Philippe Mathieu-Daudé <phi...@redhat.com> Cc: Ray Ni <ray...@intel.com> Thanks, Laszlo Laszlo Ersek (16): MdeModulePkg/PiSmmCore: log SMM image start failure UefiCpuPkg/PiSmmCpuDxeSmm: fix S3 Resume for CPU hotplug OvmfPkg: clone SmmCpuPlatformHookLib from UefiCpuPkg OvmfPkg: enable SMM Monarch Election in PiSmmCpuDxeSmm OvmfPkg: enable CPU hotplug support in PiSmmCpuDxeSmm OvmfPkg/CpuHotplugSmm: introduce skeleton for CPU Hotplug SMM driver OvmfPkg/CpuHotplugSmm: add hotplug register block helper functions OvmfPkg/CpuHotplugSmm: define the QEMU_CPUHP_CMD_GET_ARCH_ID macro OvmfPkg/CpuHotplugSmm: add function for collecting CPUs with events OvmfPkg/CpuHotplugSmm: collect CPUs with events OvmfPkg/CpuHotplugSmm: introduce Post-SMM Pen for hot-added CPUs OvmfPkg/CpuHotplugSmm: introduce First SMI Handler for hot-added CPUs OvmfPkg/CpuHotplugSmm: complete root MMI handler for CPU hotplug OvmfPkg: clone CpuS3DataDxe from UefiCpuPkg OvmfPkg/CpuS3DataDxe: superficial cleanups OvmfPkg/CpuS3DataDxe: enable S3 resume after CPU hotplug MdeModulePkg/Core/PiSmmCore/Dispatcher.c | 6 + OvmfPkg/CpuHotplugSmm/ApicId.h | 23 ++ OvmfPkg/CpuHotplugSmm/CpuHotplug.c | 426 ++++++++++++++++++++ OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf | 64 +++ OvmfPkg/CpuHotplugSmm/FirstSmiHandler.nasm | 154 +++++++ OvmfPkg/CpuHotplugSmm/FirstSmiHandlerContext.h | 47 +++ OvmfPkg/CpuHotplugSmm/PostSmmPen.nasm | 151 +++++++ OvmfPkg/CpuHotplugSmm/QemuCpuhp.c | 301 ++++++++++++++ OvmfPkg/CpuHotplugSmm/QemuCpuhp.h | 61 +++ OvmfPkg/CpuHotplugSmm/Smbase.c | 267 ++++++++++++ OvmfPkg/CpuHotplugSmm/Smbase.h | 46 +++ OvmfPkg/Include/IndustryStandard/Q35MchIch9.h | 5 +- OvmfPkg/Include/IndustryStandard/QemuCpuHotplug.h | 3 + OvmfPkg/OvmfPkgIa32.dsc | 7 +- OvmfPkg/OvmfPkgIa32.fdf | 3 +- OvmfPkg/OvmfPkgIa32X64.dsc | 7 +- OvmfPkg/OvmfPkgIa32X64.fdf | 3 +- OvmfPkg/OvmfPkgX64.dsc | 7 +- OvmfPkg/OvmfPkgX64.fdf | 3 +- UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.c => OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.c | 45 ++- UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf => OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf | 24 +- UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c | 14 +- {UefiCpuPkg => OvmfPkg}/CpuS3DataDxe/CpuS3Data.c | 99 +++-- {UefiCpuPkg => OvmfPkg}/CpuS3DataDxe/CpuS3DataDxe.inf | 30 +- 24 files changed, 1707 insertions(+), 89 deletions(-) copy UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.c => OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.c (61%) copy UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf => OvmfPkg/Library/SmmCpuPlatformHookLibQemu/SmmCpuPlatformHookLibQemu.inf (43%) copy {UefiCpuPkg => OvmfPkg}/CpuS3DataDxe/CpuS3Data.c (77%) copy {UefiCpuPkg => OvmfPkg}/CpuS3DataDxe/CpuS3DataDxe.inf (69%) create mode 100644 OvmfPkg/CpuHotplugSmm/ApicId.h create mode 100644 OvmfPkg/CpuHotplugSmm/CpuHotplug.c create mode 100644 OvmfPkg/CpuHotplugSmm/CpuHotplugSmm.inf create mode 100644 OvmfPkg/CpuHotplugSmm/FirstSmiHandler.nasm create mode 100644 OvmfPkg/CpuHotplugSmm/FirstSmiHandlerContext.h create mode 100644 OvmfPkg/CpuHotplugSmm/PostSmmPen.nasm create mode 100644 OvmfPkg/CpuHotplugSmm/QemuCpuhp.c create mode 100644 OvmfPkg/CpuHotplugSmm/QemuCpuhp.h create mode 100644 OvmfPkg/CpuHotplugSmm/Smbase.c create mode 100644 OvmfPkg/CpuHotplugSmm/Smbase.h base-commit: edfe16a6d9f8c6830d7ad93ee7616225fe4e9c13 -- 2.19.1.3.g30247aa5d201 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#54945): https://edk2.groups.io/g/devel/message/54945 Mute This Topic: https://groups.io/mt/71575167/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-