On Mon, Apr 27, 2026 at 02:20:10PM -0700, Sean Christopherson wrote: > On Mon, Apr 27, 2026, Tycho Andersen wrote: > > From: "Tycho Andersen (AMD)" <[email protected]> > > > > Add a user-visible way to set the RAPL_DIS bit for SNP init. > > > > Since setting RAPL_DIS affects the whole system, put the module parameter > > in kvm_amd instead of in the CCP driver to hopefully make it more obvious > > to admins. > > > > Signed-off-by: Tycho Andersen (AMD) <[email protected]> > > --- > > Documentation/admin-guide/kernel-parameters.txt | 5 +++++ > > arch/x86/kvm/svm/sev.c | 8 ++++++++ > > 2 files changed, 13 insertions(+) > > > > diff --git a/Documentation/admin-guide/kernel-parameters.txt > > b/Documentation/admin-guide/kernel-parameters.txt > > index 4d0f545fb3ec..2b50eed8664c 100644 > > --- a/Documentation/admin-guide/kernel-parameters.txt > > +++ b/Documentation/admin-guide/kernel-parameters.txt > > @@ -3207,6 +3207,11 @@ Kernel parameters > > max_snp_asid == min_sev_asid-1, will effectively make > > SEV-ES unusable. > > > > + kvm-amd.rapl_disable= [KVM,AMD] Whether to disable RAPL > > + (Running Average Power Limit) when initializing the SNP > > + firmware. This disables the counters for the entire > > system until an > > + SNP shutdown command is issued. > > I'm pretty sure I said this earlier: KVM absolutely should not be able to > disable > RAPL for the entire system. That needs to be a power management thing.
You definitely noted "not CCP", I don't think I quite understood what that meant though: https://lore.kernel.org/all/[email protected]/ I'm a little worried that putting it in power management will generate some weird dependencies, or weakref symbols that can't change things if they are loaded independently of kvm_amd or something. But let me see what I can come up with. > KVM then needs to communicate (and enforce?) the policy to > userspace. KVM doesn't need to enforce anything, the SEV firmware will generate a launch error for policy violation if it's not supported. For communicating to userspace if it's not a kvm module parameter, one option is to mask it off in sev_get_snp_supported_policy() if it was initialized without the support. Then it'll be visible via KVM_X86_SNP_POLICY_BITS. Thanks, Tycho

