unicorn/qemu
Paolo Bonzini e3d1cef8fb
memory: prepare for multiple bits in the dirty log mask
When the dirty log mask will also cover other bits than DIRTY_MEMORY_VGA,
some listeners may be interested in the overall zero/non-zero value of
the dirty log mask; others may be interested in the value of single bits.

For this reason, always call log_start/log_stop if bits have respectively
appeared or disappeared, and pass the old and new values of the dirty log
mask so that listeners can distinguish the kinds of change.

For example, KVM checks if dirty logging used to be completely disabled
(in log_start) or is now completely disabled (in log_stop). On the
other hand, Xen has to check manually if DIRTY_MEMORY_VGA changed,
since that is the only bit it cares about.

Backports commit b2dfd71c4843a762f2befe702adb249cf55baf66 from qemu
2018-02-13 08:52:23 -05:00
..
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu softfloat: expand out STATUS macro 2018-02-12 13:43:13 -05:00
hw target-i386: disable LINT0 after reset 2018-02-12 21:07:36 -05:00
include memory: prepare for multiple bits in the dirty log mask 2018-02-13 08:52:23 -05:00
qapi This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
qobject This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
qom qom: Fix object_property_add_alias() with [*] 2018-02-12 16:33:58 -05:00
scripts Save copies of generated qapi files. 2017-01-21 00:30:50 +11:00
target-arm target-arm: Remove v8_ prefix from names of non-v8-specific cpreg arrays 2018-02-13 08:16:23 -05:00
target-i386 target-i386: Fix signedness of MSR_IA32_APICBASE_BASE 2018-02-13 08:17:18 -05:00
target-m68k target-*: Increment num_insns immediately after tcg_gen_insn_start 2018-02-11 12:46:30 -05:00
target-mips target-mips: save cpu state before calling MSA load and store helpers 2018-02-12 16:31:17 -05:00
target-sparc target-*: Increment num_insns immediately after tcg_gen_insn_start 2018-02-11 12:46:30 -05:00
tcg tcg: add TCG_TARGET_TLB_DISPLACEMENT_BITS 2018-02-13 08:28:29 -05:00
util Arm support ported. (#736) 2017-01-23 23:30:57 +08:00
aarch64.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
aarch64eb.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
accel.c Automated leading tab to spaces conversion. 2017-01-21 12:28:22 +11:00
arm.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
armeb.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure tcg: Drop ia64 host support 2018-02-04 18:33:02 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec.c exec: make iotlb RCU-friendly 2018-02-12 15:20:39 -05:00
cpus.c cleanup more synchronization code 2017-01-09 14:05:39 +08:00
cputlb.c Add MemTxAttrs to the IOTLB 2018-02-12 18:38:38 -05:00
exec.c exec: optimize phys_page_set_level 2018-02-13 08:38:24 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c Merge branch 'master' into msvc2 2017-04-21 01:17:00 +08:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
ioport.c memory: Define API for MemoryRegionOps to take attrs and return status 2018-02-12 17:17:27 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
Makefile cleanup qemu/default-configs/ 2017-01-19 14:52:30 +08:00
Makefile.objs cleanup qemu/Makefile.objs 2017-01-21 21:50:12 +08:00
Makefile.target tcg: Move some opcode generation functions out of line 2018-02-09 08:10:00 -05:00
memory.c memory: prepare for multiple bits in the dirty log mask 2018-02-13 08:52:23 -05:00
memory_mapping.c revert to use of g_free to make future qemu integrations easier (#695) 2016-12-21 22:28:36 +08:00
mips.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
mips64.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
mips64el.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
mipsel.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
powerpc.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
qapi-schema.json import 2015-08-21 15:04:50 +08:00
qemu-log.c import 2015-08-21 15:04:50 +08:00
qemu-timer.c timer is redundant 2017-01-20 16:46:58 +08:00
rules.mak import 2015-08-21 15:04:50 +08:00
softmmu_template.h Add MemTxAttrs to the IOTLB 2018-02-12 18:38:38 -05:00
sparc.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
sparc64.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00
tcg-runtime.c platform.h move #3 2017-01-21 00:13:21 +11:00
translate-all.c target-i386: remove superfluous TARGET_HAS_SMC macro 2018-02-12 16:41:55 -05:00
translate-all.h translate-all: delete prototype for non-existent function 2018-02-13 08:26:08 -05:00
unicorn_common.h This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c This code should now build the x86_x64-softmmu part 2. 2017-01-19 22:50:28 +11:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h memory: differentiate memory_region_is_logging and memory_region_get_dirty_log_mask 2018-02-13 08:41:44 -05:00