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

From: Dave Hansen
Date: Thu Apr 27 2017 - 11:52:50 EST


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
kernel be just setting the encryption bit in the PTE so it can copy the
old plaintext out?

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