[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v7 4/7] memory: introduce local lock for address spa
From: |
Liu Ping Fan |
Subject: |
[Qemu-devel] [PATCH v7 4/7] memory: introduce local lock for address space |
Date: |
Sun, 25 Nov 2012 10:03:01 +0800 |
From: Liu Ping Fan <address@hidden>
For those address spaces which want to be able out of big lock, they
will be protected by their own local.
Signed-off-by: Liu Ping Fan <address@hidden>
---
memory.c | 1 +
memory.h | 3 +++
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/memory.c b/memory.c
index 2f68d67..18425fd 100644
--- a/memory.c
+++ b/memory.c
@@ -1535,6 +1535,7 @@ void memory_listener_unregister(MemoryListener *listener)
void address_space_init(AddressSpace *as, MemoryRegion *root)
{
memory_region_transaction_begin();
+ qemu_mutex_init(&as->lock);
as->root = root;
as->current_map = g_new(FlatView, 1);
flatview_init(as->current_map);
diff --git a/memory.h b/memory.h
index 79393f1..13a9e3e 100644
--- a/memory.h
+++ b/memory.h
@@ -22,6 +22,7 @@
#include "cpu-common.h"
#include "targphys.h"
#include "qemu-queue.h"
+#include "qemu-thread.h"
#include "iorange.h"
#include "ioport.h"
#include "int128.h"
@@ -164,6 +165,7 @@ typedef struct AddressSpace AddressSpace;
*/
struct AddressSpace {
/* All fields are private. */
+ QemuMutex lock;
const char *name;
MemoryRegion *root;
struct FlatView *current_map;
@@ -801,6 +803,7 @@ void mtree_info(fprintf_function mon_printf, void *f);
*
* @as: an uninitialized #AddressSpace
* @root: a #MemoryRegion that routes addesses for the address space
+ * @lock: if true, the physmap protected by local lock, otherwise big lock
*/
void address_space_init(AddressSpace *as, MemoryRegion *root);
--
1.7.4.4
- [Qemu-devel] [PATCH v7 0/7] push mmio dispatch out of big lock, Liu Ping Fan, 2012/11/24
- [Qemu-devel] [PATCH v7 1/7] qom: apply atomic on object's refcount, Liu Ping Fan, 2012/11/24
- [Qemu-devel] [PATCH v7 2/7] hotplug: introduce qdev_unplug_complete() to remove device from views, Liu Ping Fan, 2012/11/24
- [Qemu-devel] [PATCH v7 3/7] pci: remove pci device from mem view when unplug, Liu Ping Fan, 2012/11/24
- [Qemu-devel] [PATCH v7 4/7] memory: introduce local lock for address space,
Liu Ping Fan <=
- [Qemu-devel] [PATCH v7 5/7] memory: make mmio dispatch able to be out of biglock, Liu Ping Fan, 2012/11/24
- [Qemu-devel] [PATCH v7 6/7] memory: introduce tls context to trace nested mmio request issue, Liu Ping Fan, 2012/11/24
- [Qemu-devel] [PATCH v7 7/7] vcpu: push mmio dispatcher out of big lock, Liu Ping Fan, 2012/11/24