linux/arch/x86/kvm/svm
Tina Zhang 9a12fa5213 KVM: SVM: Disable AVIC IPI virtualization on Hygon Family 18h (erratum #1235)
Hygon Family 18h CPUs are derived from AMD Family 17h (Zen1) silicon and
share the same erratum #1235: hardware may read a stale IsRunning=1 bit
during ICR write emulation and silently fail to generate an
AVIC_IPI_FAILURE_TARGET_NOT_RUNNING VM-Exit on the sending vCPU.

The absence of the VM-Exit causes KVM to miss the required wakeup of
blocking target vCPUs, leading to hung vCPUs and unbounded delays in
guest execution.

Extend the existing AMD Family 17h erratum #1235 workaround to also cover
Hygon Family 18h.  With IPI virtualization disabled, KVM never sets
IsRunning=1 in the Physical ID table, so every non-self IPI generates a
VM-Exit and is correctly emulated.

Fixes: 8de4a1c816 ("KVM: SVM: Disable (x2)AVIC IPI virtualization if CPU has erratum #1235")
Cc: <stable@vger.kernel.org>
Signed-off-by: Tina Zhang <zhang_wei@open-hieco.net>
Message-ID: <20260522040014.3380201-1-zhang_wei@open-hieco.net>
2026-05-23 10:09:04 +02:00
..
avic.c KVM: SVM: Disable AVIC IPI virtualization on Hygon Family 18h (erratum #1235) 2026-05-23 10:09:04 +02:00
hyperv.c KVM: SVM: Assert that Hyper-V's HV_SVM_EXITCODE_ENL == SVM_EXIT_SW 2026-01-13 17:37:03 -08:00
hyperv.h KVM: nSVM: Always intercept VMMCALL when L2 is active 2026-03-04 16:08:56 -08:00
nested.c KVM: nSVM: Never use L0's PAUSE loop exiting while L2 is running 2026-05-12 22:17:28 +02:00
pmu.c KVM: x86/pmu: Load/put mediated PMU context when entering/exiting guest 2026-01-08 11:52:11 -08:00
sev.c KVM SVM changes for 7.1 2026-04-13 19:00:43 +02:00
svm_onhyperv.c KVM: SVM: Make svm_x86_ops globally visible, clean up on-HyperV usage 2025-09-23 08:56:44 -07:00
svm_onhyperv.h KVM: SVM: Make svm_x86_ops globally visible, clean up on-HyperV usage 2025-09-23 08:56:44 -07:00
svm_ops.h work around gcc bugs with 'asm goto' with outputs 2024-02-09 15:57:48 -08:00
svm.c KVM: nSVM: Never use L0's PAUSE loop exiting while L2 is running 2026-05-12 22:17:28 +02:00
svm.h KVM: x86: use inlines instead of macros for is_sev_*guest 2026-04-13 19:00:47 +02:00
vmenter.S KVM: x86: Move "kvm_rebooting" to kernel as "virt_rebooting" 2026-03-04 08:52:31 -08:00