Re: "KVM: x86/mmu: Overhaul TDP MMU zapping and flushing" breaks SVM on Hyper-V

From: Paolo Bonzini
Date: Mon Feb 13 2023 - 07:51:06 EST



On 2/13/23 13:44, Jeremi Piotrowski wrote:
Just built a kernel from that tree, and it displays the same behavior. The problem
is not that the addresses are wrong, but that the flushes are issued at the wrong
time now. At least for what "enlightened NPT TLB flush" requires.

It is not clear to me why HvCallFluyshGuestPhysicalAddressSpace or HvCallFlushGuestPhysicalAddressList would have stricter requirements than a "regular" TLB shootdown using INVEPT.

Can you clarify what you mean by wrong time, preferrably with some kind of sequence of events?

That is, something like

CPU 0 Modify EPT from ... to ...
CPU 0 call_rcu() to free page table
CPU 1 ... which is invalid because ...
CPU 0 HvCallFlushGuestPhysicalAddressSpace

Paolo