On 05/26/17 at 12:17pm, Xunlei Pang wrote:
On 04/19/2017 at 05:21 AM, Tom Lendacky wrote:
quoted
Provide support so that kexec can be used to boot a kernel when SME is
enabled.
Support is needed to allocate pages for kexec without encryption. This
is needed in order to be able to reboot in the kernel in the same manner
as originally booted.
Hi Tom,
Looks like kdump will break, I didn't see the similar handling for kdump cases, see kernel:
kimage_alloc_crash_control_pages(), kimage_load_crash_segment(), etc.
We need to support kdump with SME, kdump kernel/initramfs/purgatory/elfcorehdr/etc
are all loaded into the reserved memory(see crashkernel=X) by userspace kexec-tools.
For kexec_load, it is loaded by kexec-tools, we have in kernel loader
syscall kexec_file_load, it is handled in kernel.
I think a straightforward way would be to mark the whole reserved memory range without
encryption before loading all the kexec segments for kdump, I guess we can handle this
easily in arch_kexec_unprotect_crashkres().
Moreover, now that "elfcorehdr=X" is left as decrypted, it needs to be remapped to the
encrypted data.
Tom, could you have a try on kdump according to suggestion from Xunlei?
It is just based on theoretical patch understanding, there could be
other issues when you work on it. Feel free to ask if we can help on
anything.
Thanks
Dave