On Sat, 2023-08-26 at 00:14 +1200, Kai Huang wrote: > There are two problems in terms of using kexec() to boot to a new > kernel > when the old kernel has enabled TDX: 1) Part of the memory pages are > still TDX private pages; 2) There might be dirty cachelines > associated > with TDX private pages. Does TDX support hibernate? I'm wondering about two potential problems: 1. Reading/writing private pages from the direct map on save/restore 2. The seam module needing to be re-inited (the tdx_enable() stuff) If that's the case you could have something like the below to just block it when TDX could be in use: diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 2b4a946a6ff5..3b1b7202452d 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -84,7 +84,8 @@ bool hibernation_available(void) { return nohibernate == 0 && !security_locked_down(LOCKDOWN_HIBERNATION) && - !secretmem_active() && !cxl_mem_active(); + !secretmem_active() && !cxl_mem_active() && + !platform_tdx_enabled(); } /** Or maybe better, it could check tdx_module_status? But there is no way to read that variable from hibernate.