public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: "Naveen N Rao (AMD)" <naveen@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	kvm@vger.kernel.org,  Jim Mattson <jmattson@google.com>,
	Maxim Levitsky <mlevitsk@redhat.com>,
	 Vasant Hegde <vasant.hegde@amd.com>,
	 Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>,
	Nikunj A Dadhania <nikunj@amd.com>,
	 Alejandro Jimenez <alejandro.j.jimenez@oracle.com>,
	Joao Martins <joao.m.martins@oracle.com>,
	 "Maciej S. Szmigiero" <maciej.szmigiero@oracle.com>
Subject: Re: [RFC PATCH v2 5/5] KVM: SVM: Enable AVIC by default from Zen 4
Date: Mon, 15 Sep 2025 15:53:18 -0700	[thread overview]
Message-ID: <aMiY3nfsxlJb2TiD@google.com> (raw)
In-Reply-To: <46b11506a6cf566fd55d3427020c0efea13bfc6a.1756993734.git.naveen@kernel.org>

On Thu, Sep 04, 2025, Naveen N Rao (AMD) wrote:
> AVIC and x2AVIC are fully functional since Zen 4, with no known hardware
> errata. Enable it by default on those processors, but allow users to
> continue passing 'avic' module parameter to explicitly enable/disable
> AVIC.
> 
> Convert 'avic' to an integer to be able to identify if the user has
> asked to explicitly enable or disable AVIC. By default, 'avic' is
> initialized to -1 and AVIC is enabled if Zen 4+ processor is detected
> (and other dependencies are satisfied).
> 
> So as not to break existing usage of 'avic' which was a boolean, switch
> to using module_param_cb() and use existing callbacks which expose this
> field as a boolean (so users can still continue to pass 'avic=on' or
> 'avic=off') but sets an integer value.
> 
> Finally, stop warning about missing HvInUseWrAllowed on SNP-enabled
> systems if trying to enable AVIC by default so as not to spam the kernel
> log.

Printing once on a module load isn't spam.

> Users who specifically care about AVIC

Which we're trying to make "everyone" by enabling AVIC by default (even though
it's conditional).  The only thing that should care about the "auto" behavior is
the code that needs to resolve "auto", everything else should act as if "avic" is
a pure boolean.

> diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c
> index 9fe1fd709458..6bd5079a01f1 100644
> --- a/arch/x86/kvm/svm/avic.c
> +++ b/arch/x86/kvm/svm/avic.c
> @@ -1095,8 +1095,13 @@ void avic_vcpu_unblocking(struct kvm_vcpu *vcpu)
>   */
>  void avic_hardware_setup(bool force_avic)
>  {
> +	bool default_avic = (avic == -1);

We should treat any negative value as "auto", otherwise I think the semantics get
a bit weird, e.g. -1 == auto, but -2 == on, which isn't very intuitive.

>  	bool enable = false;
>  
> +	/* Enable AVIC by default from Zen 4 */
> +	if (default_avic)
> +		avic = boot_cpu_data.x86 > 0x19 || cpu_feature_enabled(X86_FEATURE_ZEN4);
> +
>  	if (!avic || !npt_enabled)
>  		goto out;

  reply	other threads:[~2025-09-15 22:53 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-04 18:00 [RFC PATCH v2 0/5] KVM: SVM: Enable AVIC by default on Zen 4+ Naveen N Rao (AMD)
2025-09-04 18:00 ` [RFC PATCH v2 1/5] KVM: SVM: Stop warning if x2AVIC feature bit alone is enabled Naveen N Rao (AMD)
2025-09-15 20:04   ` Sean Christopherson
2025-09-16  7:14     ` Naveen N Rao
2025-09-16 13:40       ` Mario Limonciello
2025-09-16 13:51         ` Sean Christopherson
2025-09-16 18:37           ` Naveen N Rao
2025-09-16 19:26             ` Mario Limonciello
2025-09-17  0:44               ` Sean Christopherson
2025-09-04 18:00 ` [RFC PATCH v2 2/5] KVM: SVM: Simplify the message printed with 'force_avic' Naveen N Rao (AMD)
2025-09-15 22:42   ` Sean Christopherson
2025-09-04 18:00 ` [RFC PATCH v2 3/5] KVM: SVM: Move all AVIC setup to avic_hardware_setup() Naveen N Rao (AMD)
2025-09-15 19:59   ` Sean Christopherson
2025-09-04 18:00 ` [RFC PATCH v2 4/5] KVM: SVM: Move 'force_avic' module parameter to svm.c Naveen N Rao (AMD)
2025-09-15 22:43   ` Sean Christopherson
2025-09-04 18:00 ` [RFC PATCH v2 5/5] KVM: SVM: Enable AVIC by default from Zen 4 Naveen N Rao (AMD)
2025-09-15 22:53   ` Sean Christopherson [this message]
2025-09-16  7:39     ` Naveen N Rao
2025-09-16 14:27       ` Sean Christopherson
2025-09-16 18:53         ` Naveen N Rao
2025-09-15 23:17   ` Sean Christopherson
2025-09-16 10:17     ` Naveen N Rao
2025-09-15 23:23 ` [RFC PATCH v2 0/5] KVM: SVM: Enable AVIC by default on Zen 4+ Sean Christopherson
2025-09-16 10:31   ` Naveen N Rao

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=aMiY3nfsxlJb2TiD@google.com \
    --to=seanjc@google.com \
    --cc=alejandro.j.jimenez@oracle.com \
    --cc=jmattson@google.com \
    --cc=joao.m.martins@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=maciej.szmigiero@oracle.com \
    --cc=mlevitsk@redhat.com \
    --cc=naveen@kernel.org \
    --cc=nikunj@amd.com \
    --cc=pbonzini@redhat.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=vasant.hegde@amd.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