From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.groups.io with SMTP id smtpd.web11.75276.1674224482028797175 for ; Fri, 20 Jan 2023 06:21:22 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=cS/PTF87; spf=pass (domain: redhat.com, ip: 170.10.129.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674224481; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VkjBLodfBtMLacZQjMWSNJyxnTA6BtD1Mv+Jhc83RdA=; b=cS/PTF877gTw+HaKN06VaipeuxuvLPCP1g++UCC379zIqijQGi9V10U9+wDwqoKYQ1ynFY QwPlDIThLSZhW8oRUW5J2/cLkRQfpAuoScuxEUuYnHbZi6JcI/63o+wN7PAVzvvq99YF7q 04y4agiNMhQETN8RuegsTkaI+G6ClX4= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-187-Pw94NA7iNbSkyjIFp3n-Nw-1; Fri, 20 Jan 2023 09:21:18 -0500 X-MC-Unique: Pw94NA7iNbSkyjIFp3n-Nw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7354938041CA; Fri, 20 Jan 2023 14:21:17 +0000 (UTC) Received: from [10.39.193.187] (unknown [10.39.193.187]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CEF2840C2064; Fri, 20 Jan 2023 14:21:15 +0000 (UTC) Message-ID: <4e237cb7-4b70-d05c-ff8f-c93f59ba4232@redhat.com> Date: Fri, 20 Jan 2023 15:21:14 +0100 MIME-Version: 1.0 Subject: Re: [edk2-devel] [RFC PATCH] OvmfPkg/PlatformCI VS2019: Enable temporary workaround for cpuhp bugfix To: Ard Biesheuvel , devel@edk2.groups.io Cc: Oliver Steffen , Gerd Hoffmann , Jiewen Yao , Michael Brown , Michael Kubacki References: <20230119134302.1524569-1-ardb@kernel.org> From: "Laszlo Ersek" In-Reply-To: X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 1/20/23 10:54, Ard Biesheuvel wrote: > On Fri, 20 Jan 2023 at 10:25, Laszlo Ersek wrote: >> >> On 1/19/23 14:43, Ard Biesheuvel wrote: >>> QEMU for x86 has a nasty CPU hotplug bug of which the ramifications are >>> difficult to oversee, even though KVM acceleration seems to be >>> unaffected. This has been addressed in QEMU mainline, and will percolate >>> through the ecosystem at its usual pace. In the mean time, due to the >>> potential impact on production workloads, we will be updating OVMF to >>> abort the boot when it detects a QEMU build that is affected. >>> >>> Tiancore's platform CI uses QEMU in TCG mode, and is therefore impacted >>> by this mitigation, unless its QEMU builds are updated. This has been >>> done for Ubuntu-GCC5, but Windows-VS2019 still uses a QEMU build that is >>> affected. >>> >>> Aborting the boot upon detecting the QEMU issue will render all boot >>> tests carried out on Windows-VS2019 broken unless we implement the >>> 'escape hatch' that enables proceed-at-your-own-risk mode, and permits >>> the boot to proceed even if the QEMU issue is detected. >>> >>> So let's enable this for Windows-VS2019, and remove it again once it is >>> no longer needed. >>> >>> Cc: Laszlo Ersek >>> Cc: Gerd Hoffmann >>> Cc: Jiewen Yao >>> Cc: Michael Brown >>> Cc: Oliver Steffen >>> Cc: Michael Kubacki >>> >>> Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4250 >>> Signed-off-by: Ard Biesheuvel >>> --- >>> OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml | 2 +- >>> OvmfPkg/PlatformCI/PlatformBuildLib.py | 12 ++++++++++++ >>> 2 files changed, 13 insertions(+), 1 deletion(-) >>> >>> diff --git a/OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml b/OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml >>> index 7e63f419b26b..b3b91aa84ea0 100644 >>> --- a/OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml >>> +++ b/OvmfPkg/PlatformCI/.azurepipelines/Windows-VS2019.yml >>> @@ -24,7 +24,7 @@ jobs: >>> package: 'OvmfPkg' >>> vm_image: 'windows-2019' >>> should_run: true >>> - run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE" >>> + run_flags: "MAKE_STARTUP_NSH=TRUE QEMU_HEADLESS=TRUE QEMU_CPUHP_QUIRK=TRUE" >>> >>> #Use matrix to speed up the build process >>> strategy: >>> diff --git a/OvmfPkg/PlatformCI/PlatformBuildLib.py b/OvmfPkg/PlatformCI/PlatformBuildLib.py >>> index bfef9849c749..58dc1189a2cc 100644 >>> --- a/OvmfPkg/PlatformCI/PlatformBuildLib.py >>> +++ b/OvmfPkg/PlatformCI/PlatformBuildLib.py >>> @@ -170,6 +170,7 @@ class PlatformBuilder( UefiBuilder, BuildSettingsManager): >>> self.env.SetValue("PRODUCT_NAME", "OVMF", "Platform Hardcoded") >>> self.env.SetValue("MAKE_STARTUP_NSH", "FALSE", "Default to false") >>> self.env.SetValue("QEMU_HEADLESS", "FALSE", "Default to false") >>> + self.env.SetValue("QEMU_CPUHP_QUIRK", "FALSE", "Default to false") >>> return 0 >>> >>> def PlatformPreBuild(self): >>> @@ -211,6 +212,17 @@ class PlatformBuilder( UefiBuilder, BuildSettingsManager): >>> args += " -pflash " + os.path.join(OutputPath_FV, "OVMF.fd") # path to firmware >>> >>> >>> + ### >>> + ### NOTE This is a temporary workaround to allow platform CI to cope with >>> + ### a QEMU bug in the CPU hotplug code. Once the CI environment has >>> + ### been updated to carry a fixed version of QEMU, this can be >>> + ### removed again >>> + ### >>> + ### Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4250 >>> + ### >>> + if (self.env.GetValue("QEMU_CPUHP_QUIRK").upper() == "TRUE"): >>> + args += " -fw_cfg name=opt/org.tianocore/X-Cpuhp-Bugcheck-Override,string=yes" >>> + >>> if (self.env.GetValue("MAKE_STARTUP_NSH").upper() == "TRUE"): >>> f = open(os.path.join(VirtualDrive, "startup.nsh"), "w") >>> f.write("BOOT SUCCESS !!! \n") >> >> Reviewed-by: Laszlo Ersek >> >> Technically speaking, can I merge this *prepended* to my v3 patch set >> ([PATCH v3 0/2] OvmfPkg/PlatformInitLib: catch QEMU's CPU hotplug reg >> block regression), in the *same* PR? >> >> Because then I'll do that, saving us a bit of duplicated work. >> > > Yes, please go ahead and merge this if it is all ready to go. I won't > get around to it to later this afternoon. > >> I'll then also file the BZ for reverting this (once I know the commit >> hash), for when a new QEMU is out for Windows -- whom should I assign >> that BZ? Oliver or Ard? >> > > You can assign it to me. And please put Michael Kubacki on cc as well. > https://bugzilla.tianocore.org/show_bug.cgi?id=4324 (I couldn't add Oliver to the CC list; AIUI, he's not managed to get a BZ account just yet.) Thanks! Laszlo