[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 14/50] memory: eliminate global MemoryListeners
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 14/50] memory: eliminate global MemoryListeners |
Date: |
Mon, 24 Oct 2016 15:46:59 +0200 |
There is none, so just drop the code.
Signed-off-by: Paolo Bonzini <address@hidden>
---
include/exec/memory.h | 2 +-
memory.c | 23 ++++++-----------------
2 files changed, 7 insertions(+), 18 deletions(-)
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 10d7eac..39f3410 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -255,7 +255,7 @@ struct MemoryListener {
hwaddr addr, hwaddr len);
/* Lower = earlier (during add), later (during del) */
unsigned priority;
- AddressSpace *address_space_filter;
+ AddressSpace *address_space;
QTAILQ_ENTRY(MemoryListener) link;
};
diff --git a/memory.c b/memory.c
index 58f9269..1886b44 100644
--- a/memory.c
+++ b/memory.c
@@ -100,8 +100,7 @@ enum ListenerDirection { Forward, Reverse };
static bool memory_listener_match(MemoryListener *listener,
MemoryRegionSection *section)
{
- return !listener->address_space_filter
- || listener->address_space_filter == section->address_space;
+ return listener->address_space == section->address_space;
}
#define MEMORY_LISTENER_CALL_GLOBAL(_callback, _direction, _args...) \
@@ -2176,9 +2175,7 @@ void memory_global_dirty_log_sync(void)
if (!listener->log_sync) {
continue;
}
- /* Global listeners are being phased out. */
- assert(listener->address_space_filter);
- as = listener->address_space_filter;
+ as = listener->address_space;
view = address_space_get_flatview(as);
FOR_EACH_FLAT_RANGE(fr, view) {
MemoryRegionSection mrs = section_from_flat_range(fr, as);
@@ -2218,11 +2215,6 @@ static void listener_add_address_space(MemoryListener
*listener,
FlatView *view;
FlatRange *fr;
- if (listener->address_space_filter
- && listener->address_space_filter != as) {
- return;
- }
-
if (listener->begin) {
listener->begin(listener);
}
@@ -2255,12 +2247,11 @@ static void listener_add_address_space(MemoryListener
*listener,
flatview_unref(view);
}
-void memory_listener_register(MemoryListener *listener, AddressSpace *filter)
+void memory_listener_register(MemoryListener *listener, AddressSpace *as)
{
MemoryListener *other = NULL;
- AddressSpace *as;
- listener->address_space_filter = filter;
+ listener->address_space = as;
if (QTAILQ_EMPTY(&memory_listeners)
|| listener->priority >= QTAILQ_LAST(&memory_listeners,
memory_listeners)->priority) {
@@ -2274,9 +2265,7 @@ void memory_listener_register(MemoryListener *listener,
AddressSpace *filter)
QTAILQ_INSERT_BEFORE(other, listener, link);
}
- QTAILQ_FOREACH(as, &address_spaces, address_spaces_link) {
- listener_add_address_space(listener, as);
- }
+ listener_add_address_space(listener, as);
}
void memory_listener_unregister(MemoryListener *listener)
@@ -2310,7 +2299,7 @@ static void do_address_space_destroy(AddressSpace *as)
address_space_destroy_dispatch(as);
QTAILQ_FOREACH(listener, &memory_listeners, link) {
- assert(listener->address_space_filter != as);
+ assert(listener->address_space != as);
}
flatview_unref(as->current_map);
--
1.8.3.1
- [Qemu-devel] [PULL 07/50] qemu-thread: use acquire/release to clarify semantics of QemuEvent, (continued)
- [Qemu-devel] [PULL 07/50] qemu-thread: use acquire/release to clarify semantics of QemuEvent, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 03/50] block/iscsi: Introducing new zero-copy API, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 08/50] rcu: simplify memory barriers, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 04/50] block/iscsi: Adding new iSER transport layer option, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 06/50] atomic: introduce smp_mb_acquire and smp_mb_release, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 12/50] target-i386: fix 32-bit addresses in LEA, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 11/50] test-i386: fix bitrot for 64-bit, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 09/50] atomic: base mb_read/mb_set on load-acquire and store-release, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 10/50] qht-bench: relax test_start/stop atomic accesses, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 13/50] tcg: try sti when moving a constant into a dead memory temp, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 14/50] memory: eliminate global MemoryListeners,
Paolo Bonzini <=
- [Qemu-devel] [PULL 17/50] memory: optimize memory_region_sync_dirty_bitmap, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 15/50] memory: add a per-AddressSpace list of listeners, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 20/50] rng: remove unused included header, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 16/50] memory: optimize memory_global_dirty_log_sync, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 19/50] char.h: misc doc fix, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 21/50] char: remove use-after-free on win-stdio, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 18/50] char: serial: check divider value against baud base, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 22/50] ringbuf: fix chr_write return value, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 23/50] sun4uv: fix serial initialization regression, Paolo Bonzini, 2016/10/24
- [Qemu-devel] [PULL 28/50] char: introduce CharBackend, Paolo Bonzini, 2016/10/24