All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Tina Zhang <zhang_wei@open-hieco.net>
Cc: kvm@vger.kernel.org, pbonzini@redhat.com, mlevitsk@redhat.com,
	 naveen@kernel.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH] KVM: SVM: Disable AVIC IPI virtualization on Hygon Family 18h (erratum #1235)
Date: Fri, 22 May 2026 05:56:18 -0700	[thread overview]
Message-ID: <ahBScosf2jUlKdAt@google.com> (raw)
In-Reply-To: <20260522040014.3380201-1-zhang_wei@open-hieco.net>

On Fri, May 22, 2026, Tina Zhang wrote:
> 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: 8de4a1c8164e ("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>
> ---
>  arch/x86/kvm/svm/avic.c | 12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c
> index adf211860949..993b551180fe 100644
> --- a/arch/x86/kvm/svm/avic.c
> +++ b/arch/x86/kvm/svm/avic.c
> @@ -1300,12 +1300,14 @@ bool __init avic_hardware_setup(void)
>  	}
>  
>  	/*
> -	 * Disable IPI virtualization for AMD Family 17h CPUs (Zen1 and Zen2)
> -	 * due to erratum 1235, which results in missed VM-Exits on the sender
> -	 * and thus missed wake events for blocking vCPUs due to the CPU
> -	 * failing to see a software update to clear IsRunning.
> +	 * Disable IPI virtualization for AMD Family 17h (Zen1 and Zen2) and
> +	 * Hygon Family 18h (derived from AMD Zen1) CPUs due to erratum 1235,
> +	 * which results in missed VM-Exits on the sender and thus missed wake
> +	 * events for blocking vCPUs due to the CPU failing to see a software
> +	 * update to clear IsRunning.
>  	 */
> -	enable_ipiv = enable_ipiv && boot_cpu_data.x86 != 0x17;
> +	if (boot_cpu_data.x86 == 0x17 || boot_cpu_data.x86 == 0x18)

IIUC, family 18h is carved out entirely for Hygon, correct?  I.e. there's no risk
of disabling IPI virtualization on unaffected AMD CPUs?

> +		enable_ipiv = false;
>  
>  	amd_iommu_register_ga_log_notifier(&avic_ga_log_notifier);
>  
> -- 
> 2.43.7
> 

  reply	other threads:[~2026-05-22 12:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-22  4:00 [PATCH] KVM: SVM: Disable AVIC IPI virtualization on Hygon Family 18h (erratum #1235) Tina Zhang
2026-05-22 12:56 ` Sean Christopherson [this message]
2026-05-25  3:58   ` 张巍
2026-05-26 19:14     ` 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=ahBScosf2jUlKdAt@google.com \
    --to=seanjc@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mlevitsk@redhat.com \
    --cc=naveen@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=zhang_wei@open-hieco.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.