[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/26] KVM: Simplify dirty log sync in kvm_set_phys_mem
From: |
Paolo Bonzini |
Subject: |
[PULL 15/26] KVM: Simplify dirty log sync in kvm_set_phys_mem |
Date: |
Thu, 20 May 2021 10:22:46 +0200 |
From: Peter Xu <peterx@redhat.com>
kvm_physical_sync_dirty_bitmap() on the whole section is inaccurate, because
the section can be a superset of the memslot that we're working on. The result
is that if the section covers multiple kvm memslots, we could be doing the
synchronization for multiple times for each kvmslot in the section.
With the two helpers that we just introduced, it's very easy to do it right now
by calling the helpers.
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20210506160549.130416-7-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
accel/kvm/kvm-all.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
index 7031dd4250..0ba6d48120 100644
--- a/accel/kvm/kvm-all.c
+++ b/accel/kvm/kvm-all.c
@@ -1161,7 +1161,8 @@ static void kvm_set_phys_mem(KVMMemoryListener *kml,
goto out;
}
if (mem->flags & KVM_MEM_LOG_DIRTY_PAGES) {
- kvm_physical_sync_dirty_bitmap(kml, section);
+ kvm_slot_get_dirty_log(kvm_state, mem);
+ kvm_slot_sync_dirty_pages(mem);
}
/* unregister the slot */
--
2.31.1
- [PULL 01/26] configure: Only clone softfloat-3 repositories if TCG is enabled, (continued)
- [PULL 01/26] configure: Only clone softfloat-3 repositories if TCG is enabled, Paolo Bonzini, 2021/05/20
- [PULL 14/26] KVM: Provide helper to sync dirty bitmap from slot to ramblock, Paolo Bonzini, 2021/05/20
- [PULL 04/26] hw/mem/nvdimm: Use Kconfig 'imply' instead of 'depends on', Paolo Bonzini, 2021/05/20
- [PULL 12/26] KVM: Create the KVMSlot dirty bitmap on flag changes, Paolo Bonzini, 2021/05/20
- [PULL 02/26] configure: check for submodules if --with-git-submodules=ignore, Paolo Bonzini, 2021/05/20
- [PULL 07/26] object: add more commands to preconfig mode, Paolo Bonzini, 2021/05/20
- [PULL 05/26] i386/cpu: Expose AVX_VNNI instruction to guest, Paolo Bonzini, 2021/05/20
- [PULL 21/26] meson: Set implicit_include_directories to false, Paolo Bonzini, 2021/05/20
- [PULL 20/26] tests/qtest/fuzz: Fix build failure, Paolo Bonzini, 2021/05/20
- [PULL 08/26] qtest: add a QOM object for qtest, Paolo Bonzini, 2021/05/20
- [PULL 15/26] KVM: Simplify dirty log sync in kvm_set_phys_mem,
Paolo Bonzini <=
- [PULL 19/26] KVM: Dirty ring support, Paolo Bonzini, 2021/05/20
- [PULL 09/26] KVM: do not allow setting properties at runtime, Paolo Bonzini, 2021/05/20
- [PULL 18/26] KVM: Disable manual dirty log when dirty ring enabled, Paolo Bonzini, 2021/05/20
- [PULL 06/26] meson: bump submodule to 0.57.2, Paolo Bonzini, 2021/05/20
- [PULL 22/26] remove qemu-options* from root directory, Paolo Bonzini, 2021/05/20
- [PULL 16/26] KVM: Cache kvm slot dirty bitmap size, Paolo Bonzini, 2021/05/20
- [PULL 25/26] qemu-config: load modules when instantiating option groups, Paolo Bonzini, 2021/05/20
- [PULL 10/26] memory: Introduce log_sync_global() to memory listener, Paolo Bonzini, 2021/05/20
- [PULL 11/26] KVM: Use a big lock to replace per-kml slots_lock, Paolo Bonzini, 2021/05/20
- [PULL 17/26] KVM: Add dirty-ring-size property, Paolo Bonzini, 2021/05/20