On 8/05/2024 4:24 am, Sean Christopherson wrote:
On Tue, May 07, 2024, Kai Huang wrote:
So I think we have consensus to go with the approach that shows in your
second diff -- that is to always enable virtualization during module loading
for all other ARCHs other than x86, for which we only always enables
virtualization during module loading for TDX.
Assuming the other arch maintainers are ok with that approach. If waiting until
a VM is created is desirable for other architectures, then we'll need to figure
out a plan b. E.g. KVM arm64 doesn't support being built as a module, so enabling
hardware during initialization would mean virtualization is enabled for any kernel
that is built with CONFIG_KVM=y.
Actually, duh. There's absolutely no reason to force other architectures to
choose when to enable virtualization. As evidenced by the massaging to have x86
keep enabling virtualization on-demand for !TDX, the cleanups don't come from
enabling virtualization during module load, they come from registering cpuup and
syscore ops when virtualization is enabled.
I.e. we can keep kvm_usage_count in common code, and just do exactly what I
proposed for kvm_x86_enable_virtualization().
I have patches to do this, and initial testing suggests they aren't wildly
broken. I'll post them soon-ish, assuming nothing pops up in testing. They are
clean enough that they can land in advance of TDX, e.g. in kvm-coco-queue even
before other architectures verify I didn't break them.
Hi Sean,
Just want to check with you what is your plan on this?
Please feel free to let me know if there's anything that I can help.
Ah shoot, I posted patches[*] but managed to forget to Cc any of the TDX folks.
Sorry :-/
[*] https://lore.kernel.org/all/20240425233951.3344485-1-seanjc@xxxxxxxxxx
Oh I missed that :-( Thanks for the info!