diff options
author | Vipin Sharma <vipinsh@google.com> | 2023-03-22 01:00:12 +0300 |
---|---|---|
committer | Sean Christopherson <seanjc@google.com> | 2023-04-04 22:37:30 +0300 |
commit | 89c313f20c1ed30e04cedae735994c902ee93ddb (patch) | |
tree | c8ceb623d9e4c7841f7c123f176ed9a0ca9b8cd8 /tools/perf/scripts/python/exported-sql-viewer.py | |
parent | 697c89bed94effde145d84e618142dd89b2b54af (diff) | |
download | linux-89c313f20c1ed30e04cedae735994c902ee93ddb.tar.xz |
KVM: x86/mmu: Atomically clear SPTE dirty state in the clear-dirty-log flow
Optimize the clearing of dirty state in TDP MMU SPTEs by doing an
atomic-AND (on SPTEs that have volatile bits) instead of the full XCHG
that currently ends up being invoked (see kvm_tdp_mmu_write_spte()).
Clearing _only_ the bit in question will allow KVM to skip the many
irrelevant checks in __handle_changed_spte() by avoiding any collateral
damage due to the XCHG writing all SPTE bits, e.g. the XCHG could race
with fast_page_fault() setting the W-bit and the CPU setting the D-bit,
and thus incorrectly drop the CPU's D-bit update.
Link: https://lore.kernel.org/all/Y9hXmz%2FnDOr1hQal@google.com
Signed-off-by: Vipin Sharma <vipinsh@google.com>
Reviewed-by: David Matlack <dmatlack@google.com>
[sean: split the switch to atomic-AND to a separate patch]
Link: https://lore.kernel.org/r/20230321220021.2119033-5-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions