diff options
author | Peter Xu <peterx@redhat.com> | 2019-06-03 14:50:54 +0800 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2019-07-15 15:39:03 +0200 |
commit | 36adac493410a68b7fad2f28a6cf0bdc3d4afabf (patch) | |
tree | 53770e62c2dec39ceb91a5e9dc5fae2f60a620e6 /include | |
parent | 9f4bf4baa8b820c7930e23c9566c9493db7e1d25 (diff) |
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')
-rw-r--r-- | include/sysemu/kvm_int.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sysemu/kvm_int.h b/include/sysemu/kvm_int.h index 687a2ee423..31df465fdc 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; |