aboutsummaryrefslogtreecommitdiff
path: root/include/sysemu/kvm_int.h
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2019-06-03 14:50:54 +0800
committerJuan Quintela <quintela@redhat.com>2019-07-15 15:39:03 +0200
commit36adac493410a68b7fad2f28a6cf0bdc3d4afabf (patch)
tree53770e62c2dec39ceb91a5e9dc5fae2f60a620e6 /include/sysemu/kvm_int.h
parent9f4bf4baa8b820c7930e23c9566c9493db7e1d25 (diff)
downloadqemu-36adac493410a68b7fad2f28a6cf0bdc3d4afabf.zip
qemu-36adac493410a68b7fad2f28a6cf0bdc3d4afabf.tar.gz
qemu-36adac493410a68b7fad2f28a6cf0bdc3d4afabf.tar.bz2
kvm: Introduce slots lock for memory listener
Introduce KVMMemoryListener.slots_lock to protect the slots inside the kvm memory listener. Currently it is close to useless because all the KVM code path now is always protected by the BQL. But it'll start to make sense in follow up patches where we might do remote dirty bitmap clear and also we'll update the per-slot cached dirty bitmap even without the BQL. So let's prepare for it. We can also use per-slot lock for above reason but it seems to be an overkill. Let's just use this bigger one (which covers all the slots of a single address space) but anyway this lock is still much smaller than the BQL. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20190603065056.25211-10-peterx@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'include/sysemu/kvm_int.h')
-rw-r--r--include/sysemu/kvm_int.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sysemu/kvm_int.h b/include/sysemu/kvm_int.h
index 687a2ee..31df465 100644
--- a/include/sysemu/kvm_int.h
+++ b/include/sysemu/kvm_int.h
@@ -27,6 +27,8 @@ typedef struct KVMSlot
typedef struct KVMMemoryListener {
MemoryListener listener;
+ /* Protects the slots and all inside them */
+ QemuMutex slots_lock;
KVMSlot *slots;
int as_id;
} KVMMemoryListener;