Message ID | 20240731150811.156771-14-nikunj@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add Secure TSC support for SNP guests | expand |
On 7/31/24 10:08, Nikunj A Dadhania wrote: > Add confidential compute platform attribute CC_ATTR_GUEST_SECURE_TSC that > can be used by the guest to query whether the Secure TSC feature is active. > > Signed-off-by: Nikunj A Dadhania <nikunj@amd.com> > --- > include/linux/cc_platform.h | 8 ++++++++ > arch/x86/coco/core.c | 3 +++ > 2 files changed, 11 insertions(+) > > diff --git a/include/linux/cc_platform.h b/include/linux/cc_platform.h > index caa4b4430634..96dc61846c9d 100644 > --- a/include/linux/cc_platform.h > +++ b/include/linux/cc_platform.h > @@ -88,6 +88,14 @@ enum cc_attr { > * enabled to run SEV-SNP guests. > */ > CC_ATTR_HOST_SEV_SNP, > + > + /** > + * @CC_ATTR_GUEST_SECURE_TSC: Secure TSC is active. > + * > + * The platform/OS is running as a guest/virtual machine and actively > + * using AMD SEV-SNP Secure TSC feature. > + */ > + CC_ATTR_GUEST_SECURE_TSC, If this is specifically used for the AMD feature, as opposed to a generic "does your system have a secure TSC", then it should probably be CC_ATTR_GUEST_SNP_SECURE_TSC or CC_ATTR_GUEST_SEV_SNP_SECURE_TSC. Thanks, Tom > }; > > #ifdef CONFIG_ARCH_HAS_CC_PLATFORM > diff --git a/arch/x86/coco/core.c b/arch/x86/coco/core.c > index 0f81f70aca82..00df00e2cb4a 100644 > --- a/arch/x86/coco/core.c > +++ b/arch/x86/coco/core.c > @@ -100,6 +100,9 @@ static bool noinstr amd_cc_platform_has(enum cc_attr attr) > case CC_ATTR_HOST_SEV_SNP: > return cc_flags.host_sev_snp; > > + case CC_ATTR_GUEST_SECURE_TSC: > + return sev_status & MSR_AMD64_SNP_SECURE_TSC; > + > default: > return false; > }
On 9/13/2024 8:51 PM, Tom Lendacky wrote: > On 7/31/24 10:08, Nikunj A Dadhania wrote: >> @@ -88,6 +88,14 @@ enum cc_attr { >> * enabled to run SEV-SNP guests. >> */ >> CC_ATTR_HOST_SEV_SNP, >> + >> + /** >> + * @CC_ATTR_GUEST_SECURE_TSC: Secure TSC is active. >> + * >> + * The platform/OS is running as a guest/virtual machine and actively >> + * using AMD SEV-SNP Secure TSC feature. >> + */ >> + CC_ATTR_GUEST_SECURE_TSC, > > If this is specifically used for the AMD feature, as opposed to a generic > "does your system have a secure TSC", then it should probably be > CC_ATTR_GUEST_SNP_SECURE_TSC or CC_ATTR_GUEST_SEV_SNP_SECURE_TSC. Sure, let me rename it to CC_ATTR_GUEST_SNP_SECURE_TSC. Regards Nikunj
diff --git a/include/linux/cc_platform.h b/include/linux/cc_platform.h index caa4b4430634..96dc61846c9d 100644 --- a/include/linux/cc_platform.h +++ b/include/linux/cc_platform.h @@ -88,6 +88,14 @@ enum cc_attr { * enabled to run SEV-SNP guests. */ CC_ATTR_HOST_SEV_SNP, + + /** + * @CC_ATTR_GUEST_SECURE_TSC: Secure TSC is active. + * + * The platform/OS is running as a guest/virtual machine and actively + * using AMD SEV-SNP Secure TSC feature. + */ + CC_ATTR_GUEST_SECURE_TSC, }; #ifdef CONFIG_ARCH_HAS_CC_PLATFORM diff --git a/arch/x86/coco/core.c b/arch/x86/coco/core.c index 0f81f70aca82..00df00e2cb4a 100644 --- a/arch/x86/coco/core.c +++ b/arch/x86/coco/core.c @@ -100,6 +100,9 @@ static bool noinstr amd_cc_platform_has(enum cc_attr attr) case CC_ATTR_HOST_SEV_SNP: return cc_flags.host_sev_snp; + case CC_ATTR_GUEST_SECURE_TSC: + return sev_status & MSR_AMD64_SNP_SECURE_TSC; + default: return false; }
Add confidential compute platform attribute CC_ATTR_GUEST_SECURE_TSC that can be used by the guest to query whether the Secure TSC feature is active. Signed-off-by: Nikunj A Dadhania <nikunj@amd.com> --- include/linux/cc_platform.h | 8 ++++++++ arch/x86/coco/core.c | 3 +++ 2 files changed, 11 insertions(+)