From: bugzilla-daemon@kernel.org
To: kvm@vger.kernel.org
Subject: [Bug 218267] [Sapphire Rapids][Upstream]Boot up multiple Windows VMs hang
Date: Tue, 17 Dec 2024 03:13:49 +0000 [thread overview]
Message-ID: <bug-218267-28872-ea0yY7wIwt@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-218267-28872@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=218267
--- Comment #9 from Chao Gao (chao.gao@intel.com) ---
On Mon, Dec 16, 2024 at 07:08:13PM +0000, bugzilla-daemon@kernel.org wrote:
>https://bugzilla.kernel.org/show_bug.cgi?id=218267
>
>--- Comment #8 from Sean Christopherson (seanjc@google.com) ---
>Thanks Chao!
>
>Until the ucode update is available, I think we can workaround the issue in
>KVM
>by clearing VECTORING_INFO_VALID_MASK _immediately_ after exit, i.e. before
>queueing the event for re-injection, if it should be impossible for the exit
>to
>have occurred while vectoring. I'm not sure I want to carry something like
Yes. I tried a similar workaround (i.e., clearing the "valid" bit only for
EXIT_REASON_MSR_WRITE) and our tests showed that it works well.
Strictly speaking, this issue also impacts those VM exits which may occur
during event delivery. Because they might be reported as occurring during event
delivery even if they didn't. KVM won't notice this, and the guest will receive
an extra event due to event re-injection. I wrote a kselftest to demonstrate
this.
Clearing the valid bit works in practice. And there is no ideal software
workaround for all cases. Disabling APICv or intercepting MOV-to-CR8 can
eliminate the issue, but neither is ideal due to the performance impact.
>this long-term since a ucode fix is imminent, but at the least it can
>hopefully
>unblock end users.
>
>The below uses a fairly conservative list of exits (a false positive could be
>quite painful). A slightly less conservative approach would be to also
>include:
>
>case EXIT_REASON_EXTERNAL_INTERRUPT:
We need to include EXTERNAL_INTERRUPT because we observed it in real workloads
on affected CPUs.
>case EXIT_REASON_TRIPLE_FAULT:
>case EXIT_REASON_INIT_SIGNAL:
>case EXIT_REASON_SIPI_SIGNAL:
>case EXIT_REASON_INTERRUPT_WINDOW:
>case EXIT_REASON_NMI_WINDOW:
>
>as those exits should all be recognized only at instruction boundaries.
>
>Compile tested only...
>
>---
...
>@@ -8487,6 +8549,10 @@ __init int vmx_hardware_setup(void)
> if (!enable_apicv || !cpu_has_vmx_ipiv())
> enable_ipiv = false;
>
>+ if (boot_cpu_data.x86_vfm != INTEL_SAPPHIRERAPIDS_X &&
>+ boot_cpu_data.x86_vfm != INTEL_EMERALDRAPIDS_X)
>+ enable_spr141_erratum_workaround = false;
RaptorLake has the same issue.
https://cdrdv2.intel.com/v1/dl/getContent/740518
>+
> if (cpu_has_vmx_tsc_scaling())
> kvm_caps.has_tsc_control = true;
>
>
>base-commit: 50e5669285fc2586c9f946c1d2601451d77cb49e
>--
>
>--
>You may reply to this email to add a comment.
>
>You are receiving this mail because:
>You are on the CC list for the bug.
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
next prev parent reply other threads:[~2024-12-17 3:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-15 8:23 [Bug 218267] New: [Sapphire Rapids][Upstream]Boot up multiple Windows VMs hang bugzilla-daemon
2023-12-18 17:54 ` Sean Christopherson
2023-12-18 17:54 ` [Bug 218267] " bugzilla-daemon
2024-03-27 11:59 ` bugzilla-daemon
2024-04-08 5:21 ` bugzilla-daemon
2024-04-08 17:22 ` bugzilla-daemon
2024-12-13 17:25 ` Maxim Levitsky
2024-08-06 11:02 ` bugzilla-daemon
2024-12-13 17:25 ` bugzilla-daemon
2024-12-14 1:33 ` bugzilla-daemon
2024-12-16 19:08 ` bugzilla-daemon
2025-01-22 16:43 ` Maxim Levitsky
2024-12-17 3:13 ` bugzilla-daemon [this message]
2024-12-24 6:44 ` bugzilla-daemon
2025-01-22 16:43 ` bugzilla-daemon
2025-01-27 18:32 ` bugzilla-daemon
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-all 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=bug-218267-28872-ea0yY7wIwt@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@kernel.org \
--cc=kvm@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).