From: Sean Christopherson <seanjc@google.com>
To: Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Dongli Zhang <dongli.zhang@oracle.com>,
Chao Gao <chao.gao@intel.com>
Subject: [PATCH v3 00/10] KVM: VMX: Fix APICv activation bugs
Date: Fri, 5 Dec 2025 15:19:03 -0800 [thread overview]
Message-ID: <20251205231913.441872-1-seanjc@google.com> (raw)
Fix two bugs related to updating APICv state, add a regression test, and
then rip out the "defer updates until nested VM-Exit" that contributed to
bug #2, and eliminated a number ideas for fixing bug #1 (ignoring that my
ideas weren't all that great).
The only thing that gives me pause is the TLB flushing logic in
vmx_set_virtual_apic_mode(), mainly because I don't love open coding things
like that. But for me, it's a much lesser evil than the mounting pile of
booleans related to tracking deferred updates, and the mental gymnastics
needed to understanding the interactions and ordering.
The fixes are tagged for stable@, and I'll probably land the selftest in
6.19 as well. Everything else is most definitely 6.20+ material.
v3:
- Add a selftest.
- Rip out the deferred updates stuff.
- Collect Chao's review.
- Add Dongli's fix for bug #2. [Chao]
v2:
- https://lore.kernel.org/all/20251110063212.34902-1-dongli.zhang@oracle.com
- Add support for guest mode (suggested by Chao Gao).
- Add comments in the code (suggested by Chao Gao).
- Remove WARN_ON_ONCE from vmx_hwapic_isr_update().
- Edit commit message "AMD SVM APICv" to "AMD SVM AVIC"
(suggested by Alejandro Jimenez).
Dongli Zhang (2):
KVM: VMX: Update SVI during runtime APICv activation
KVM: nVMX: Immediately refresh APICv controls as needed on nested
VM-Exit
Sean Christopherson (8):
KVM: selftests: Add a test to verify APICv updates (while L2 is
active)
KVM: nVMX: Switch to vmcs01 to update PML controls on-demand if L2 is
active
KVM: nVMX: Switch to vmcs01 to update TPR threshold on-demand if L2 is
active
KVM: nVMX: Switch to vmcs01 to update SVI on-demand if L2 is active
KVM: nVMX: Switch to vmcs01 to refresh APICv controls on-demand if L2
is active
KVM: nVMX: Switch to vmcs01 to update APIC page on-demand if L2 is
active
KVM: nVMX: Switch to vmcs01 to set virtual APICv mode on-demand if L2
is active
KVM: x86: Update APICv ISR (a.k.a. SVI) as part of
kvm_apic_update_apicv()
arch/x86/kvm/lapic.c | 21 +-
arch/x86/kvm/lapic.h | 1 -
arch/x86/kvm/vmx/nested.c | 30 +--
arch/x86/kvm/vmx/vmx.c | 104 +++++-----
arch/x86/kvm/vmx/vmx.h | 9 -
arch/x86/kvm/x86.c | 5 +
tools/testing/selftests/kvm/Makefile.kvm | 1 +
.../testing/selftests/kvm/include/x86/apic.h | 4 +
.../kvm/x86/vmx_apicv_updates_test.c | 181 ++++++++++++++++++
9 files changed, 257 insertions(+), 99 deletions(-)
create mode 100644 tools/testing/selftests/kvm/x86/vmx_apicv_updates_test.c
base-commit: 5d3e2d9ba9ed68576c70c127e4f7446d896f2af2
--
2.52.0.223.gf5cc29aaa4-goog
next reply other threads:[~2025-12-05 23:19 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-05 23:19 Sean Christopherson [this message]
2025-12-05 23:19 ` [PATCH v3 01/10] KVM: VMX: Update SVI during runtime APICv activation Sean Christopherson
2025-12-05 23:19 ` [PATCH v3 02/10] KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-Exit Sean Christopherson
2025-12-05 23:19 ` [PATCH v3 03/10] KVM: selftests: Add a test to verify APICv updates (while L2 is active) Sean Christopherson
2025-12-12 3:24 ` Chao Gao
2025-12-12 18:01 ` Sean Christopherson
2025-12-05 23:19 ` [PATCH v3 04/10] KVM: nVMX: Switch to vmcs01 to update PML controls on-demand if L2 is active Sean Christopherson
2025-12-24 7:53 ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 05/10] KVM: nVMX: Switch to vmcs01 to update TPR threshold " Sean Christopherson
2025-12-25 6:38 ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 06/10] KVM: nVMX: Switch to vmcs01 to update SVI " Sean Christopherson
2025-12-25 8:30 ` Chao Gao
2025-12-30 21:03 ` Sean Christopherson
2025-12-31 2:17 ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 07/10] KVM: nVMX: Switch to vmcs01 to refresh APICv controls " Sean Christopherson
2025-12-26 1:45 ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 08/10] KVM: nVMX: Switch to vmcs01 to update APIC page " Sean Christopherson
2025-12-26 2:01 ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 09/10] KVM: nVMX: Switch to vmcs01 to set virtual APICv mode " Sean Christopherson
2025-12-26 5:16 ` Chao Gao
2025-12-05 23:19 ` [PATCH v3 10/10] KVM: x86: Update APICv ISR (a.k.a. SVI) as part of kvm_apic_update_apicv() Sean Christopherson
2025-12-26 5:16 ` Chao Gao
2025-12-10 0:25 ` [PATCH v3 00/10] KVM: VMX: Fix APICv activation bugs Sean Christopherson
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=20251205231913.441872-1-seanjc@google.com \
--to=seanjc@google.com \
--cc=chao.gao@intel.com \
--cc=dongli.zhang@oracle.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
/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
all inboxes | Powered by JetHome®