diff options
| author | Sean Christopherson <[email protected]> | 2021-02-25 12:47:30 -0800 |
|---|---|---|
| committer | Paolo Bonzini <[email protected]> | 2021-03-15 04:43:37 -0400 |
| commit | e0c378684b6545ad2d4403bb701d0ac4932b4e95 (patch) | |
| tree | 068e4c08fe76e6bac75b2e92a359f206940caa0d /tools/perf/scripts/python | |
| parent | 44aaa0150bfd576dc5043094fd1a23699cf280e8 (diff) | |
KVM: x86/mmu: Retry page faults that hit an invalid memslot
Retry page faults (re-enter the guest) that hit an invalid memslot
instead of treating the memslot as not existing, i.e. handling the
page fault as an MMIO access. When deleting a memslot, SPTEs aren't
zapped and the TLBs aren't flushed until after the memslot has been
marked invalid.
Handling the invalid slot as MMIO means there's a small window where a
page fault could replace a valid SPTE with an MMIO SPTE. The legacy
MMU handles such a scenario cleanly, but the TDP MMU assumes such
behavior is impossible (see the BUG() in __handle_changed_spte()).
There's really no good reason why the legacy MMU should allow such a
scenario, and closing this hole allows for additional cleanups.
Fixes: 2f2fad0897cb ("kvm: x86/mmu: Add functions to handle changed TDP SPTEs")
Cc: Ben Gardon <[email protected]>
Signed-off-by: Sean Christopherson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions