On 4/28/26 10:53, Sean Christopherson wrote:
> On Tue, Apr 28, 2026, Tycho Andersen wrote:
>> 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.
> 
> Ugh, and it's not even powerman per se, it's actually a module in perf.  Oof.
> 
> I 100% agree it'll be tricky, but I also stand by comments that neither the 
> CCP
> driver or KVM should be allowed to silently pull the rug out from under the 
> RAPL
> module.

Maybe something that can be added to the current sev= kernel command line
parameter, e.g. sev=norapl, or such? Maybe even with a kernel config
option for a default value? On SNP_SHUTDOWN it will be re-enabled if it
was disabled.

> 
>>> 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

Did you mean sev_get_snp_policy_bits() or were you referring to the KVM
ioctl() for retrieving them?

>> initialized without the support. Then it'll be visible via
>> KVM_X86_SNP_POLICY_BITS.
> 
> Ya, this is what I was envisioning.

It's still a valid policy bit (if supported by the platform), so I don't
think masking it off is appropriate.

Thanks,
Tom





Reply via email to