[PATCH v4 0/3] svm: avic: Allow AVIC support on system w/ physical APIC ID > 255

From: Suravee Suthikulpanit
Date: Tue Feb 01 2022 - 23:13:51 EST


Originally, AMD SVM AVIC supports 8-bit host physical APIC ID.
However, newer AMD systems can have physical APIC ID larger than 255,
and AVIC hardware has been extended to support upto 12-bit host
physical APIC ID.

This series introduces a helper function in the APIC subsystem to get
the maximum physical APIC ID allowing the SVM AVIC driver to calculate
the proper size to program the host physical APIC ID in the AVIC
physical APIC ID table entry.

Regards,
Suravee Suthikulpanit

Changes from V3 (https://lkml.org/lkml/2021/12/13/1062)

* Rename and modify patch 1/3 to also set vcpu_(un)blocking only
when AVIC is enabled.

* PATCH 3/3: Instead of dynamically calculate the host
physical APIC ID mask value, use the max host physical APIC ID
to determine whether to use 8-bit or 12-bit mask.

* PATCH 3/3: change avic_host_physical_id_mask size.

* PATCH 3/3: change warning condition in avic_vcpu_load()

Suravee Suthikulpanit (3):
KVM: SVM: Only call vcpu_(un)blocking when AVIC is enabled.
x86/apic: Add helper function to get maximum physical APIC ID
KVM: SVM: Add support for 12-bit host physical APIC ID

arch/x86/include/asm/apic.h | 1 +
arch/x86/kernel/apic/apic.c | 6 +++++
arch/x86/kvm/svm/avic.c | 50 +++++++++++++++++++++++++++++--------
arch/x86/kvm/svm/svm.c | 10 ++------
arch/x86/kvm/svm/svm.h | 4 +--
5 files changed, 49 insertions(+), 22 deletions(-)

--
2.25.1