public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael Kubacki" <mikuback@linux.microsoft.com>
To: devel@edk2.groups.io, ardb@kernel.org
Cc: Laszlo Ersek <lersek@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>,
	Jiewen Yao <jiewen.yao@intel.com>, Michael Brown <mcb30@ipxe.org>,
	Oliver Steffen <osteffen@redhat.com>,
	Michael Kubacki <michael.kubacki@microsoft.com>
Subject: Re: [edk2-devel] [RFC PATCH] OvmfPkg/PlatformCI VS2019: Enable temporary workaround for cpuhp bugfix
Date: Thu, 19 Jan 2023 11:51:10 -0500	[thread overview]
Message-ID: <b94612d2-920b-a324-a9b9-e593b404048b@linux.microsoft.com> (raw)
In-Reply-To: <20230119134302.1524569-1-ardb@kernel.org>

Reviewed-by: Michael Kubacki <michael.kubacki@microsoft.com>

On 1/19/2023 8:43 AM, 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 <lersek@redhat.com>
> 
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> 
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> 
> Cc: Michael Brown <mcb30@ipxe.org>
> 
> Cc: Oliver Steffen <osteffen@redhat.com>
> 
> Cc: Michael Kubacki <michael.kubacki@microsoft.com>
> 
> 
> 
> Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=4250
> 
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
> 
> ---
> 
>   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")
> 

  parent reply	other threads:[~2023-01-19 16:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-19 13:43 [RFC PATCH] OvmfPkg/PlatformCI VS2019: Enable temporary workaround for cpuhp bugfix Ard Biesheuvel
2023-01-19 13:55 ` Gerd Hoffmann
2023-01-19 16:51 ` Michael Kubacki [this message]
2023-01-19 17:06   ` [edk2-devel] " Yao, Jiewen
2023-01-20  9:24 ` Laszlo Ersek
2023-01-20  9:54   ` [edk2-devel] " Ard Biesheuvel
2023-01-20 14:21     ` Laszlo Ersek
2023-01-20 13:47 ` Laszlo Ersek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b94612d2-920b-a324-a9b9-e593b404048b@linux.microsoft.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox