All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] x86/mm/ptdump: display page encryption state
@ 2022-04-20 15:01 Mike Rapoport
  0 siblings, 0 replies; only message in thread
From: Mike Rapoport @ 2022-04-20 15:01 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Andy Lutomirski, Dave Hansen, H. Peter Anvin, Ingo Molnar,
	Kirill Shutemov, Kuppuswamy Sathyanarayanan, Mike Rapoport,
	Mike Rapoport, Thomas Gleixner, x86, linux-kernel

From: Mike Rapoport <rppt@linux.ibm.com>

When memory encryption is enabled, for instance in SEV guest, it is useful
to see what memory ranges are mapped as encrypted in the kernel page tables
and what ranges are left plain.

Add printing of 'ENC' for the encrypted ranges to the page table dumps.

Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
---

v2: use cc_is_enc() instead of _PAGE_ENC as Dave suggested for TDX
compatibility

 arch/x86/include/asm/coco.h   | 10 ++++++++++
 arch/x86/mm/dump_pagetables.c |  4 ++++
 2 files changed, 14 insertions(+)

diff --git a/arch/x86/include/asm/coco.h b/arch/x86/include/asm/coco.h
index 3d98c3a60d34..cfc85a080a22 100644
--- a/arch/x86/include/asm/coco.h
+++ b/arch/x86/include/asm/coco.h
@@ -17,6 +17,11 @@ void cc_set_mask(u64 mask);
 #ifdef CONFIG_ARCH_HAS_CC_PLATFORM
 u64 cc_mkenc(u64 val);
 u64 cc_mkdec(u64 val);
+
+static inline bool cc_is_enc(u64 prot)
+{
+	return cc_mkdec(prot) != prot;
+}
 #else
 static inline u64 cc_mkenc(u64 val)
 {
@@ -27,6 +32,11 @@ static inline u64 cc_mkdec(u64 val)
 {
 	return val;
 }
+
+static inline bool cc_is_enc(u64 prot)
+{
+	return false;
+}
 #endif
 
 #endif /* _ASM_X86_COCO_H */
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index e1b599ecbbc2..0eaa0cc0b3b1 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -201,6 +201,10 @@ static void printk_prot(struct seq_file *m, pgprotval_t pr, int level, bool dmsg
 			pt_dump_cont_printf(m, dmsg, "PCD ");
 		else
 			pt_dump_cont_printf(m, dmsg, "    ");
+		if (cc_is_enc(pr))
+			pt_dump_cont_printf(m, dmsg, "ENC ");
+		else
+			pt_dump_cont_printf(m, dmsg, "    ");
 
 		/* Bit 7 has a different meaning on level 3 vs 4 */
 		if (level <= 3 && pr & _PAGE_PSE)

base-commit: b2d229d4ddb17db541098b83524d901257e93845
-- 
2.34.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-20 15:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-20 15:01 [PATCH v2] x86/mm/ptdump: display page encryption state Mike Rapoport

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.