Hi Sean, On 11.03.2022 04:27, Sean Christopherson wrote:
The main goal of this series is to fix KVM's longstanding bug of not honoring L1's exception intercepts wants when handling an exception that occurs during delivery of a different exception. E.g. if L0 and L1 are using shadow paging, and L2 hits a #PF, and then hits another #PF while vectoring the first #PF due to _L1_ not having a shadow page for the IDT, KVM needs to check L1's intercepts before morphing the #PF => #PF => #DF so that the #PF is routed to L1, not injected into L2 as a #DF. nVMX has hacked around the bug for years by overriding the #PF injector for shadow paging to go straight to VM-Exit, and nSVM has started doing the same. The hacks mostly work, but they're incomplete, confusing, and lead to other hacky code, e.g. bailing from the emulator because #PF injection forced a VM-Exit and suddenly KVM is back in L1.
Looks like we were working on similar KVM area recently [1]. It look like parts of our patch sets touch the same code. Since your patch set is much bigger and comprehensive I will base mine on top of yours once there are no more incoming review comments for your patch set (in other words, once it is in its final form). Thanks, Maciej [1]: https://lore.kernel.org/kvm/cover.1646944472.git.maciej.szmigiero@xxxxxxxxxx/