Hi TDX developers,
Can I get another round of review before we ask Dave and Sean to look at
it? I'd like to pick up a few more RB tags.
-- Summary --
In the early days of TDX it was assumed the HW would need some cache
flushing help around transitioning memory between KeyIDs, and so TDX arch
was designed to specify how the VMM needed to help the module perform
this. But it turned out the HW was able to handle these issues without SW
help. For some reason the TDX arch around performing the flushes remained.
Now the TDX arch is getting fixed and Linux can remove the code that was
helping perform this unneeded cache flushing. The changes will appear in
a future documentation update.
As some more context, while this is nice cleanup as is, merging these
patches will let us drop 2 patches out of the TDX huge pages series. Then
that series doesn't need to modify these flushes to work with TDX huge
pages. It also addresses Kiryl's comment about the cache flushing in
tdh_mem_page_aug() not respecting the 'level' arg, or warning that non-4KB
sizes are not supported.[0]
-- Changes since v1 --
Yilun asked if we could also remove the WBINVD calls around kexec and TDX
setup error paths. It seems the answer is likely yes, but not confirmed
enough for me yet. So I left that change for the future. Besides, it
doesn't have the same TDX huge page intersection.
Yilun's comment about cleaning up the TDR reclaim after the changes in
patch 2 was a bit bigger that I expected. I really debated whether to
split that out. But it wasn't very feasible to do it as a prep patch, so I
left it as one big bigger. Really debated doing that, or an follow up
cleanup patch. Opinions requested.
Based on v7.3-rc7.
Thanks,
Rick
Rick Edgecombe (2):
x86/virt/tdx: Drop tdx_clflush_*()
x86/virt/tdx: Drop tdh_phymem_page_wbinvd_*()
arch/x86/include/asm/tdx.h | 2 --
arch/x86/kvm/vmx/tdx.c | 40 +++++-------------------------
arch/x86/virt/vmx/tdx/tdx.c | 49 -------------------------------------
arch/x86/virt/vmx/tdx/tdx.h | 1 -
4 files changed, 6 insertions(+), 86 deletions(-)
--
2.55.0