On 17/02/21 19:43, Maxim Levitsky wrote:
1. npt/ept disabled in the host. In this case we have a single shadowing
and a nested hypervisor has to do its own shadowing on top of it.
In this case the MMU itself has to generate page faults (they are a result
of hardware page faults, but are completely different), and in case
of nesting these page faults have to be sometimes injected as VM exits.
[...] Also if the emulator injects the page fault, then indeed I think the
bug will happen.
But in both cases you (ought to) get an injected exception which then
becomes a page fault vmexit at next check_nested_events. That's the
part that we are all collectively missing.
Paolo