mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ashish Kalra <Ashish.Kalra@amd.com>
To: <tglx@kernel.org>, <mingo@redhat.com>, <bp@alien8.de>,
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, <hpa@zytor.com>,
	<seanjc@google.com>, <peterz@infradead.org>,
	<thomas.lendacky@amd.com>, <herbert@gondor.apana.org.au>,
	<davem@davemloft.net>, <ardb@kernel.org>
Cc: <pbonzini@redhat.com>, <aik@amd.com>, <Michael.Roth@amd.com>,
	<KPrateek.Nayak@amd.com>, <Tycho.Andersen@amd.com>,
	<Nathan.Fontenot@amd.com>, <ackerleytng@google.com>,
	<jackyli@google.com>, <pgonda@google.com>, <rientjes@google.com>,
	<jacobhxu@google.com>, <xin@zytor.com>,
	<pawan.kumar.gupta@linux.intel.com>, <babu.moger@amd.com>,
	<dyoung@redhat.com>, <nikunj@amd.com>, <darwi@linutronix.de>,
	<linux-kernel@vger.kernel.org>, <linux-crypto@vger.kernel.org>,
	<kvm@vger.kernel.org>, <linux-coco@lists.linux.dev>
Subject: [PATCH v4 2/2] x86/sev: Set up RMPOPT only on an active SNP host
Date: Wed, 28 Oct 2026 19:49:38 +0000	[thread overview]
Message-ID: <331aeb2f29710865ec064bacf9edacaadde2b094.1793216372.git.ashish.kalra@amd.com> (raw)
In-Reply-To: <cover.1793216372.git.ashish.kalra@amd.com>

From: Ashish Kalra <ashish.kalra@amd.com>

rmpopt_init() allocates the RMPOPT workqueue and prints "RMPOPT
optimizations enabled", gated only on X86_FEATURE_RMPOPT - a CPUID bit
advertised independently of whether SNP is active.  As a device_initcall
it runs on every system with that bit, so on a host where SNP is not
enabled (disabled in the BIOS, or AMD IOMMU initialization fails to bring
it up) the workqueue is allocated and the message is printed at boot even
though RMPOPT is never used: snp_enable_rmpopt() bails out on a non-SNP
host.

Rather than add an explicit SNP-host gate to the initcall, set RMPOPT up
where the host SNP state is established.  Call rmpopt_init() from the tail
of snp_rmptable_init(), which runs only once the host RMP table has been
set up and CC_ATTR_HOST_SEV_SNP is guaranteed (it WARN_ON_ONCE()s
otherwise), and drop the device_initcall.  rmpopt_init() keeps its
original X86_FEATURE_RMPOPT-only gate and no longer needs a separate
SNP-host check.

This is soft initialization only - the workqueue and the announcement; the
actual RMPOPT_BASE programming is still done later by snp_enable_rmpopt(),
which re-checks X86_FEATURE_RMPOPT, CC_ATTR_HOST_SEV_SNP and
rmpopt_soft_init.  An rmpopt_init() failure is non-fatal to SNP and is
intentionally ignored by snp_rmptable_init().

Suggested-by: Tom Lendacky <thomas.lendacky@amd.com>
Fixes: c6c6f156d192 ("x86/sev: Perform RMP optimizations asynchronously")
Signed-off-by: Ashish Kalra <ashish.kalra@amd.com>
---
 arch/x86/virt/svm/sev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/virt/svm/sev.c b/arch/x86/virt/svm/sev.c
index cd0412b9d251..39d3943cdc49 100644
--- a/arch/x86/virt/svm/sev.c
+++ b/arch/x86/virt/svm/sev.c
@@ -662,7 +662,6 @@ static int __init rmpopt_init(void)
 
 	return 0;
 }
-device_initcall(rmpopt_init);
 
 void snp_enable_rmpopt(void)
 {
@@ -726,6 +725,8 @@ int __init snp_rmptable_init(void)
 	 */
 	crash_kexec_post_notifiers = true;
 
+	rmpopt_init();
+
 	return 0;
 }
 
-- 
2.43.0


  parent reply	other threads:[~2026-10-28 19:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-28 19:48 [PATCH v4 0/2] x86/sev: Fix RMPOPT enablement on non-RMPOPT configs Ashish Kalra
2026-10-28 19:49 ` [PATCH v4 1/2] x86/sev: Clear RMPOPT when segmented RMP is disabled by firmware Ashish Kalra
2026-10-28 21:51   ` Pankaj Gupta
2026-10-28 19:49 ` Ashish Kalra [this message]
2026-10-28 22:00   ` [PATCH v4 2/2] x86/sev: Set up RMPOPT only on an active SNP host Gupta, Pankaj

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=331aeb2f29710865ec064bacf9edacaadde2b094.1793216372.git.ashish.kalra@amd.com \
    --to=ashish.kalra@amd.com \
    --cc=KPrateek.Nayak@amd.com \
    --cc=Michael.Roth@amd.com \
    --cc=Nathan.Fontenot@amd.com \
    --cc=Tycho.Andersen@amd.com \
    --cc=ackerleytng@google.com \
    --cc=aik@amd.com \
    --cc=ardb@kernel.org \
    --cc=babu.moger@amd.com \
    --cc=bp@alien8.de \
    --cc=darwi@linutronix.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=dyoung@redhat.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=hpa@zytor.com \
    --cc=jackyli@google.com \
    --cc=jacobhxu@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=nikunj@amd.com \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pgonda@google.com \
    --cc=rientjes@google.com \
    --cc=seanjc@google.com \
    --cc=tglx@kernel.org \
    --cc=thomas.lendacky@amd.com \
    --cc=x86@kernel.org \
    --cc=xin@zytor.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

all inboxes | Powered by JetHome®