From: "Shukla, Manali" <manali.shukla@amd.com>
To: <seanjc@google.com>, <pbonzini@redhat.com>
Cc: <mingo@redhat.com>, <bp@alien8.de>, <dave.hansen@linux.intel.com>,
<kvm@vger.kernel.org>, <x86@kernel.org>, <santosh.shukla@amd.com>,
<nikunj.dadhania@amd.com>, <Naveen.Rao@amd.com>,
<dapeng1.mi@linux.intel.com>
Subject: Re: [PATCH v1 0/9] KVM: x86: Add support for AMD Extended APIC registers
Date: Mon, 27 Apr 2026 10:04:53 +0530 [thread overview]
Message-ID: <9a9f712e-5f01-4652-9901-93cf3bdeef47@amd.com> (raw)
In-Reply-To: <0a9b715c-0476-469d-a09e-b56cb9f41455@amd.com>
On 3/10/2026 11:47 AM, Manali Shukla wrote:
> On 2/4/2026 1:14 PM, Manali Shukla wrote:
>> Add support for AMD's Extended APIC registers, which reside in a 4KB
>> APIC page instead of the legacy 1KB APIC register space. Extended LVT
>> registers (offsets 0x500-0x530) provide additional interrupt vectors
>> for features like Instruction Based Sampling (IBS).
>>
>> Introduce KVM_CAP_LAPIC2 to allow userspace to opt into the full 4KB
>> APIC register space. The capability uses a bitmask to support different
>> APIC extensions:
>>
>> KVM_LAPIC2_DEFAULT: 4KB APIC register space (common foundation)
>> KVM_LAPIC2_AMD_DEFAULT: Extended LVT registers (AMD-specific)
>>
>> Add KVM_GET/SET_LAPIC2 ioctls that operate on a 4KB APIC register space
>> accommodate extended registers. Legacy KVM_GET/SET_LAPIC continue to
>> work for backward compatibility.
>>
>> Emulate extended APIC registers (APIC_EFEAT, APIC_ECTRL, APIC_EILVTn)
>> when the guest has X86_FEATURE_EXTAPIC and userspace enables
>> KVM_CAP_LAPIC2. Current AMD processors support four extended LVT
>> entries, future processors may support up to 255.
>>
>> Integrate with AVIC to accelerate extended LVT MSR access when
>> AVIC_EXTLVT is supported. Reads are accelerated without VM-exits;
>> writes trigger trap-style VM-exits.
>>
>> Tested on AMD hardware with Extapic support:
>> - Extended APIC register read/write emulation and AVIC acceleration
>> with IBS driver running on the guest
>> - VM migration with extended APIC state and without extended APIC state
>> - Backward compatibility check:
>> Fallback to legacy IOCTLs when KVM_CAP_LAPIC2 capability is not enabled
>>
>> Equivalent Qemu changes can be found at:
>> https://github.com/AMDESE/qemu/tree/extlvt_v1
>>
>> Patches are prepared on kvm-x86/next (003f68c79227).
>>
>> Manali Shukla (7):
>> KVM: x86: Refactor APIC register mask handling to support extended
>> APIC registers
>> x86/apic: Add helper to get maximum number of Extended LVT registers
>> KVM: SVM: Set kvm_caps.has_extapic when CPU supports Extended APIC
>> KVM: x86: Introduce KVM_CAP_LAPIC2 for 4KB APIC register space support
>> KVM: x86: Refactor APIC state get/set to accept variable-sized buffers
>> KVM: Add KVM_GET_LAPIC2 and KVM_SET_LAPIC2 for extended APIC
>> KVM: SVM: Add AVIC support for extended LVT MSRs
>>
>> Santosh Shukla (2):
>> KVM: x86: Emulate Extended LVT registers for AMD guests
>> x86/cpufeatures: Add CPUID feature bit for Extended LVT AVIC
>> acceleration
>>
>> Documentation/virt/kvm/api.rst | 75 +++++++++++++
>> arch/x86/include/asm/apic.h | 1 +
>> arch/x86/include/asm/apicdef.h | 18 +++
>> arch/x86/include/asm/cpufeatures.h | 1 +
>> arch/x86/include/asm/kvm_host.h | 12 ++
>> arch/x86/include/uapi/asm/kvm.h | 5 +
>> arch/x86/kernel/apic/apic.c | 17 +++
>> arch/x86/kvm/cpuid.c | 10 +-
>> arch/x86/kvm/lapic.c | 169 ++++++++++++++++++++---------
>> arch/x86/kvm/lapic.h | 14 ++-
>> arch/x86/kvm/svm/avic.c | 14 +++
>> arch/x86/kvm/svm/svm.c | 3 +
>> arch/x86/kvm/vmx/vmx.c | 10 +-
>> arch/x86/kvm/x86.c | 93 +++++++++++++++-
>> arch/x86/kvm/x86.h | 2 +
>> include/uapi/linux/kvm.h | 7 ++
>> 16 files changed, 390 insertions(+), 61 deletions(-)
>>
>
> A Gentle reminder to review.
>
> -Manali
>
A Gentle reminder to review.
-Manali
prev parent reply other threads:[~2026-04-27 4:35 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-04 7:44 [PATCH v1 0/9] KVM: x86: Add support for AMD Extended APIC registers Manali Shukla
2026-02-04 7:44 ` [PATCH v1 1/9] KVM: x86: Refactor APIC register mask handling to support extended " Manali Shukla
2026-05-14 12:48 ` Naveen N Rao
2026-02-04 7:44 ` [PATCH v1 2/9] x86/apic: Add helper to get maximum number of Extended LVT registers Manali Shukla
2026-05-06 11:22 ` Borislav Petkov
2026-05-14 12:50 ` Naveen N Rao
2026-02-04 7:44 ` [PATCH v1 3/9] KVM: SVM: Set kvm_caps.has_extapic when CPU supports Extended APIC Manali Shukla
2026-05-14 12:58 ` Naveen N Rao
2026-02-04 7:44 ` [PATCH v1 4/9] KVM: x86: Introduce KVM_CAP_LAPIC2 for 4KB APIC register space support Manali Shukla
2026-05-14 13:08 ` Naveen N Rao
2026-02-04 7:44 ` [PATCH v1 5/9] KVM: x86: Refactor APIC state get/set to accept variable-sized buffers Manali Shukla
2026-05-14 14:20 ` Naveen N Rao
2026-02-04 7:44 ` [PATCH v1 6/9] KVM: Add KVM_GET_LAPIC2 and KVM_SET_LAPIC2 for extended APIC Manali Shukla
2026-03-16 13:00 ` Nikunj A. Dadhania
2026-03-23 11:15 ` Manali Shukla
2026-05-14 14:36 ` Naveen N Rao
2026-05-14 14:41 ` Naveen N Rao
2026-02-04 7:44 ` [PATCH v1 7/9] KVM: x86: Emulate Extended LVT registers for AMD guests Manali Shukla
2026-05-14 14:48 ` Naveen N Rao
2026-02-04 7:44 ` [PATCH v1 8/9] x86/cpufeatures: Add CPUID feature bit for Extended LVT AVIC acceleration Manali Shukla
2026-02-04 7:44 ` [PATCH v1 9/9] KVM: SVM: Add AVIC support for extended LVT MSRs Manali Shukla
2026-05-14 15:10 ` Naveen N Rao
2026-03-10 6:17 ` [PATCH v1 0/9] KVM: x86: Add support for AMD Extended APIC registers Manali Shukla
2026-04-27 4:34 ` Shukla, Manali [this message]
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=9a9f712e-5f01-4652-9901-93cf3bdeef47@amd.com \
--to=manali.shukla@amd.com \
--cc=Naveen.Rao@amd.com \
--cc=bp@alien8.de \
--cc=dapeng1.mi@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nikunj.dadhania@amd.com \
--cc=pbonzini@redhat.com \
--cc=santosh.shukla@amd.com \
--cc=seanjc@google.com \
--cc=x86@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