qemu/hw/core
David Hildenbrand 3b95a71b22 virtio-mem: Migrate immutable properties early
The bitmap and the size are immutable while migration is active: see
virtio_mem_is_busy(). We can migrate this information early, before
migrating any actual RAM content. Further, all information we need for
sanity checks is immutable as well.

Having this information in place early will, for example, allow for
properly preallocating memory before touching these memory locations
during RAM migration: this way, we can make sure that all memory was
actually preallocated and that any user errors (e.g., insufficient
hugetlb pages) can be handled gracefully.

In contrast, usable_region_size and requested_size can theoretically
still be modified on the source while the VM is running. Keep migrating
these properties the usual, late, way.

Use a new device property to keep behavior of compat machines
unmodified.

Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>S
Signed-off-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2023-02-06 19:22:56 +01:00
..
bus.c
clock-vmstate.c clock-vmstate: Add missing END_OF_LIST 2022-03-02 18:12:40 +00:00
clock.c misc: fix commonly doubled up words 2022-08-01 11:58:02 +02:00
cpu-common.c accel: introduce accelerator blocker API 2023-01-11 09:59:39 +01:00
cpu-sysemu.c hw/core/cpu-sysemu: used cached class in cpu_asidx_from_attrs 2022-10-03 20:53:30 -07:00
fw-path-provider.c
generic-loader.c hw/core/loader: return image sizes as ssize_t 2022-06-10 09:31:42 +10:00
gpio.c hw/qdev: Rename qdev_connect_gpio_out*() 'input_pin' parameter 2021-12-31 13:21:36 +01:00
guest-loader.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
guest-loader.h
hotplug-stubs.c hw/core: Restrict hotplug to system emulation 2021-11-01 19:44:11 +01:00
hotplug.c
irq.c hw/core/irq: remove unused 'qemu_irq_split' function 2022-04-21 11:37:04 +01:00
Kconfig
loader-fit.c
loader.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
machine-hmp-cmds.c machine: Move HMP commands from monitor/ to hw/core/ 2023-02-04 07:56:54 +01:00
machine-qmp-cmds.c machine: Move QMP commands from monitor/ to hw/core/ 2023-02-04 07:56:54 +01:00
machine-smp.c hw/acpi/aml-build: Only generate cluster node in PPTT when specified 2023-01-08 01:54:23 -05:00
machine.c virtio-mem: Migrate immutable properties early 2023-02-06 19:22:56 +01:00
meson.build hw/core: Move the ARM sysbus-fdt to core 2022-04-29 10:48:26 +10:00
nmi.c
null-machine.c
numa.c qapi machine: Elide redundant has_FOO in generated C 2022-12-14 20:04:47 +01:00
or-irq.c
platform-bus.c
ptimer.c core/ptimers: Remove unnecessary 'sysemu/cpus.h' include 2022-02-21 10:18:06 +01:00
qdev-clock.c Drop more useless casts from void * to pointer 2022-12-14 16:19:35 +01:00
qdev-fw.c
qdev-hotplug.c hw/core: Extract hotplug-related functions to qdev-hotplug.c 2021-11-01 19:44:11 +01:00
qdev-prop-internal.h
qdev-properties-system.c hw/core/qdev-properties-system: Allow the 'slew' policy only on x86 2023-01-13 16:22:57 +01:00
qdev-properties.c qdev-properties: Add a new macro with bitmask check for uint64_t property 2022-05-14 12:32:41 +02:00
qdev.c hw: Remove device_legacy_reset() 2022-12-16 15:55:32 +00:00
register.c
reset.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
resettable.c hw/core/resettable: fix reset level counting 2022-10-27 10:27:23 +01:00
split-irq.c
stream.c
sysbus-fdt.c hw/core: Tidy up unnecessary casting away of const 2022-10-22 22:50:27 +02:00
sysbus.c bulk: Rename TARGET_FMT_plx -> HWADDR_FMT_plx 2023-01-18 11:14:34 +01:00
trace-events hw: Remove device_legacy_reset() 2022-12-16 15:55:32 +00:00
trace.h
uboot_image.h hw/core: Sync uboot_image.h from U-Boot v2022.01 2022-05-24 10:38:50 +10:00
vm-change-state-handler.c
vmstate-if.c