[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230326144701.3039598-12-nikunj@amd.com>
Date: Sun, 26 Mar 2023 20:17:01 +0530
From: Nikunj A Dadhania <nikunj@....com>
To: <linux-kernel@...r.kernel.org>, <x86@...nel.org>
CC: <bp@...en8.de>, <thomas.lendacky@....com>,
<dionnaglaze@...gle.com>, <pgonda@...gle.com>, <seanjc@...gle.com>,
<pbonzini@...hat.com>, <nikunj@....com>, <michael.roth@....com>,
<ketanch@...k.ac.in>
Subject: [PATCH v2 11/11] x86/sev: Enable Secure TSC for SNP guests
Now that all the required plumbing is done for enabling SNP
Secure TSC feature, add Secure TSC to snp features present list.
The CC_ATTR_GUEST_SECURE_TSC can be used by the guest to query whether
the SNP guest has Secure TSC feature active.
Signed-off-by: Nikunj A Dadhania <nikunj@....com>
---
arch/x86/boot/compressed/sev.c | 2 +-
arch/x86/coco/core.c | 3 +++
arch/x86/mm/mem_encrypt.c | 10 ++++++++--
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/arch/x86/boot/compressed/sev.c b/arch/x86/boot/compressed/sev.c
index d63ad8f99f83..13b6ff192c3e 100644
--- a/arch/x86/boot/compressed/sev.c
+++ b/arch/x86/boot/compressed/sev.c
@@ -315,7 +315,7 @@ static void enforce_vmpl0(void)
* by the guest kernel. As and when a new feature is implemented in the
* guest kernel, a corresponding bit should be added to the mask.
*/
-#define SNP_FEATURES_PRESENT (0)
+#define SNP_FEATURES_PRESENT (MSR_AMD64_SNP_SECURE_TSC)
void snp_check_features(void)
{
diff --git a/arch/x86/coco/core.c b/arch/x86/coco/core.c
index 49b44f881484..a3d93ed722c9 100644
--- a/arch/x86/coco/core.c
+++ b/arch/x86/coco/core.c
@@ -68,6 +68,9 @@ static bool amd_cc_platform_has(enum cc_attr attr)
case CC_ATTR_GUEST_SEV_SNP:
return sev_status & MSR_AMD64_SEV_SNP_ENABLED;
+ case CC_ATTR_GUEST_SECURE_TSC:
+ return sev_status & MSR_AMD64_SNP_SECURE_TSC;
+
default:
return false;
}
diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
index 01abecc9a774..26608b9f2ca7 100644
--- a/arch/x86/mm/mem_encrypt.c
+++ b/arch/x86/mm/mem_encrypt.c
@@ -69,8 +69,14 @@ static void print_mem_encrypt_feature_info(void)
pr_cont(" SEV-ES");
/* Secure Nested Paging */
- if (cc_platform_has(CC_ATTR_GUEST_SEV_SNP))
- pr_cont(" SEV-SNP");
+ if (cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) {
+ pr_cont(" SEV-SNP\n");
+ pr_cont("SNP Features active: ");
+
+ /* SNP Secure TSC */
+ if (cc_platform_has(CC_ATTR_GUEST_SECURE_TSC))
+ pr_cont(" SECURE-TSC");
+ }
pr_cont("\n");
}
--
2.34.1
Powered by blists - more mailing lists