diff options
| author | Paolo Bonzini <[email protected]> | 2022-05-03 11:23:08 +0000 |
|---|---|---|
| committer | Paolo Bonzini <[email protected]> | 2022-05-03 11:23:08 +0000 |
| commit | 4f510c8bb1dd0edc5f8f82cbe990c6174ceb5a06 (patch) | |
| tree | 978126728b3e43c9639a1b305be872d3a6567756 /tools/perf/scripts/python/flamegraph.py | |
| parent | KVM: x86: work around QEMU issue with synthetic CPUID leaves (diff) | |
| parent | KVM: x86/mmu: Use atomic XCHG to write TDP MMU SPTEs with volatile bits (diff) | |
| download | kernel-4f510c8bb1dd0edc5f8f82cbe990c6174ceb5a06.tar.gz kernel-4f510c8bb1dd0edc5f8f82cbe990c6174ceb5a06.zip | |
Merge branch 'kvm-tdp-mmu-atomicity-fix' into HEAD
We are dropping A/D bits (and W bits) in the TDP MMU. Even if mmu_lock
is held for write, as volatile SPTEs can be written by other tasks/vCPUs
outside of mmu_lock.
Attempting to prove that bug exposed another notable goof, which has been
lurking for a decade, give or take: KVM treats _all_ MMU-writable SPTEs
as volatile, even though KVM never clears WRITABLE outside of MMU lock.
As a result, the legacy MMU (and the TDP MMU if not fixed) uses XCHG to
update writable SPTEs.
The fix does not seem to have an easily-measurable affect on performance;
page faults are so slow that wasting even a few hundred cycles is dwarfed
by the base cost.
Diffstat (limited to 'tools/perf/scripts/python/flamegraph.py')
0 files changed, 0 insertions, 0 deletions
