Re: [PATCH v5 31/32] x86: Add sysfs support for Secure Memory Encryption

From: Tom Lendacky
Date: Thu May 04 2017 - 10:18:42 EST


On 4/27/2017 10:52 AM, Dave Hansen wrote:
On 04/27/2017 12:25 AM, Dave Young wrote:
On 04/21/17 at 02:55pm, Dave Hansen wrote:
On 04/18/2017 02:22 PM, Tom Lendacky wrote:
Add sysfs support for SME so that user-space utilities (kdump, etc.) can
determine if SME is active.

A new directory will be created:
/sys/kernel/mm/sme/

And two entries within the new directory:
/sys/kernel/mm/sme/active
/sys/kernel/mm/sme/encryption_mask

Why do they care, and what will they be doing with this information?

Since kdump will copy old memory but need this to know if the old memory
was encrypted or not. With this sysfs file we can know the previous SME
status and pass to kdump kernel as like a kernel param.

Tom, have you got chance to try if it works or not?

What will the kdump kernel do with it though? We kexec() into that
kernel so the SME keys will all be the same, right? So, will the kdump

Yes, the SME key will be same after a kexec.

kernel be just setting the encryption bit in the PTE so it can copy the
old plaintext out?

Yes, the idea would be to set the encryption bit in the PTE when mapping
and copying encrypted pages and not set it for unencrypted pages.


Why do we need both 'active' and 'encryption_mask'? How could it be
that the hardware-enumerated 'encryption_mask' changes across a kexec()?


We don't need both, I just added the 'encryption mask' entry for
information. It won't change across a kexec, I can remove it.

Thanks,
Tom