summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/exported-sql-viewer.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-03-02 20:02:07 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2022-03-08 18:55:27 +0300
commit22b94c4b63ebf2cf976d6f4eba230105984a7eb6 (patch)
treea3e776d77f77f09abe80da38e1f9b504e8436320 /tools/perf/scripts/python/exported-sql-viewer.py
parentbb95dfb9e2dfbe6b3f5eb5e8a20e0259dadbe906 (diff)
downloadlinux-22b94c4b63ebf2cf976d6f4eba230105984a7eb6.tar.xz
KVM: x86/mmu: Zap invalidated roots via asynchronous worker
Use the system worker threads to zap the roots invalidated by the TDP MMU's "fast zap" mechanism, implemented by kvm_tdp_mmu_invalidate_all_roots(). At this point, apart from allowing some parallelism in the zapping of roots, the workqueue is a glorified linked list: work items are added and flushed entirely within a single kvm->slots_lock critical section. However, the workqueue fixes a latent issue where kvm_mmu_zap_all_invalidated_roots() assumes that it owns a reference to all invalid roots; therefore, no one can set the invalid bit outside kvm_mmu_zap_all_fast(). Putting the invalidated roots on a linked list... erm, on a workqueue ensures that tdp_mmu_zap_root_work() only puts back those extra references that kvm_mmu_zap_all_invalidated_roots() had gifted to it. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions