Bug 1849177
| Summary: | OVMF: negotiate "SMI on VCPU hotplug" with QEMU | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | Ademar Reis <areis> | ||||
| Component: | edk2 | Assignee: | Laszlo Ersek <lersek> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Yumei Huang <yuhuang> | ||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 8.2 | CC: | berrange, chayang, coli, imammedo, jinzhao, juzhang, kraxel, leidwang, lersek, mrezanin, pbonzini, philmd, virt-maint, yfu, yuhuang | ||||
| Target Milestone: | pre-dev-freeze | Keywords: | FutureFeature, RFE, Triaged | ||||
| Target Release: | --- | Flags: | pm-rhel:
mirror+
|
||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | edk2-20200602gitca407c7246bf-4.el8 | Doc Type: | If docs needed, set a value | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2021-05-18 15:50:59 UTC | Type: | Feature Request | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | edk2-stable202008 | ||||
| Embargoed: | |||||||
| Bug Depends On: | 1454803 | ||||||
| Bug Blocks: | 1849170, 1849172 | ||||||
| Attachments: |
|
||||||
|
Description
Ademar Reis
2020-06-19 18:36:20 UTC
Created attachment 1698308 [details] preliminary upstream patch (applies to upstream 239b50a86370) [PATCH] OvmfPkg/SmmControl2Dxe: negotiate ICH9_LPC_SMI_F_CPU_HOTPLUG (not posting this upstream until I can test it with Igor's patches for bug 1849170 -- see bug 1849170 comment 4) Posted upstream patch: * [edk2-devel] [PATCH] OvmfPkg/SmmControl2Dxe: negotiate ICH9_LPC_SMI_F_CPU_HOTPLUG https://edk2.groups.io/g/devel/message/62561 http://mid.mail-archive.com/20200714184305.9814-1-lersek@redhat.com (In reply to Laszlo Ersek from comment #4) > Posted upstream patch: > > * [edk2-devel] [PATCH] OvmfPkg/SmmControl2Dxe: negotiate > ICH9_LPC_SMI_F_CPU_HOTPLUG > > https://edk2.groups.io/g/devel/message/62561 > http://mid.mail-archive.com/20200714184305.9814-1-lersek@redhat.com Merged up-stream as commit 5ba203b54e59, via <https://github.com/tianocore/edk2/pull/897>. (In reply to Laszlo Ersek from comment #6) > (In reply to Laszlo Ersek from comment #4) > > Posted upstream patch: > > > > * [edk2-devel] [PATCH] OvmfPkg/SmmControl2Dxe: negotiate > > ICH9_LPC_SMI_F_CPU_HOTPLUG > > > > https://edk2.groups.io/g/devel/message/62561 > > http://mid.mail-archive.com/20200714184305.9814-1-lersek@redhat.com > > Merged up-stream as commit 5ba203b54e59, via > <https://github.com/tianocore/edk2/pull/897>. We might have to revert his (= just the feat negotiation), approaching the edk2-stable202008 release, due to various races found recently: http://mid.mail-archive.com/cfd4dd52-4827-2288-4b4e-b396d48494f0@redhat.com https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg06579.html Additional patches should be posted for upstream OVMF, in order to fix the races: https://bugzilla.tianocore.org/show_bug.cgi?id=2929 This is necessary for a released upstream version of OVMF to negotiate ICH9_LPC_SMI_F_CPU_HOTPLUG with QEMU (from a usability perspective). If those patches are merged in time for edk2-stable202008, then this BZ can be moved again to POST / TestOnly / ... Otherwise, 5ba203b54e59 will have to be reverted, and this BZ will have to remain in ASSIGNED status for a while. Posted * [edk2-devel] [PATCH 0/2] OvmfPkg: fix race conditions in VCPU hotplug (for edk2-stable202008) https://edk2.groups.io/g/devel/message/64659 http://mid.mail-archive.com/20200826222129.25798-1-lersek@redhat.com (In reply to Laszlo Ersek from comment #10) > Posted > > * [edk2-devel] [PATCH 0/2] > OvmfPkg: fix race conditions in VCPU hotplug (for edk2-stable202008) > > https://edk2.groups.io/g/devel/message/64659 > http://mid.mail-archive.com/20200826222129.25798-1-lersek@redhat.com Merged as commit range 63d92674d240..cbccf995920a, via <https://github.com/tianocore/edk2/pull/905>. Virt-QE: - This RHBZ completes the work from <https://bugzilla.redhat.com/show_bug.cgi?id=1454803>. - Please use the singular "virsh setvcpu DOMAIN --enable VCPU# --live" command, for hot-plugging a particular CPU (this lets you pick a CPU with specific topology coordinates). - Please also use the "virsh setvcpus DOMAIN VCPU_COUNT --live" command, for hot-plugging more than 1 VCPU in very quick succession, without specifying topology indexes. - Windows guests preceding the Windows 10 family are out of scope, down-stream. Also, Windows Client OSes may be out of scope (consult other sources for determining what Windows 10 releases (Client vs. Server) are supposed to support VCPU hotplug). - Note that this edk2 BZ is testable on a qemu-kvm build that fixes <https://bugzilla.redhat.com/show_bug.cgi?id=1849170>: - Both plug and unplug attempts should be rejected gracefully by "virsh" when using the "pc-q35-rhel8.3.0" machine type, or earlier. - When using "pc-q35-rhel8.4.0", unplug attempts should be rejected gracefully, and plug attempts should succeed. - Furthermore, edk2 BZ should be regression-tested against the RHEL-8.3.0 qemu-kvm build that fixes <https://bugzilla.redhat.com/show_bug.cgi?id=1846886>. Both plug and unplug are supposed to fail gracefully. (Note that the highest version Q35 machine type with such a build is "pc-q35-rhel8.3.0".) - Hot-plugged VCPUs may have to be manually onlined in the Linux guest, dependent on guest Linux distro. A host-side shorthand for that is the "--guest" option of the (plural) "virsh setvcpus" command. Otherwise, manipulate the "/sys/devices/system/cpu/cpu<N>/online" pseudo-files in the guest directly. (Note that the numbering of these guest-side pathnames is in order of the guest kernel *learning of* the hot-added processors; it does not necessarily reflect APIC ID order, or libvirt domain XML VCPU order.) - When plugging, you may test VCPU overcommit, but: - please note that the performance hit may be significant, - please keep <https://bugzilla.redhat.com/show_bug.cgi?id=1861718#c24> in mind ("we do not support CPU overcommit on a per VM basis"). Hi Laszlo, I found one new edk2 build which fix this bz refer to the change log: https://brewweb.engineering.redhat.com/brew/buildinfo?buildID=1390673 But this bug still in POST status, is this normal ? Could you help check it ? Thanks! Hi Laszlo, I hit error "cpu hotplug with SMI wasn't enabled by firmware" when testing cpu hotplug under ovmf[1]. Igor said it looks like firmware patches weren't backported yet. Would you please double check if all the edk2 patches have been backported to edk2-20200602gitca407c7246bf-4.el8? Thanks! [1] https://bugzilla.redhat.com/show_bug.cgi?id=1849170#c15 Yes, edk2-20200602gitca407c7246bf-4.el8 should contain everything needed. I'll respond under bug 1849170. Thanks Laszlo! I'm extending ITM to be same as bug 1849170. Verify: qemu-kvm-5.2.0-3.module+el8.4.0+9499+42e58f08 kernel-4.18.0-275.el8.x86_64 edk2-ovmf-20200602gitca407c7246bf-4.el8.noarch guest: RHEL8.4, Win2019 machine type: pc-q35-rhel8.4.0 Test scenarios: 1. Hotplug single vcpu to guest w/ and w/o cpu overcommit, test passed. 2. Hotplug multiple vcpus to guest w/ and w/o cpu overcommit, test passed. 3. Unplug vcpu from rhel guest, hit error "cpu hot-unplug with SMI wasn't enabled by firmware" as expected. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (edk2 bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2021:1856 |