qemu/qapi
Fabiano Rosas 4ed49feb44 migration/ram: Introduce 'mapped-ram' migration capability
Add a new migration capability 'mapped-ram'.

The core of the feature is to ensure that RAM pages are mapped
directly to offsets in the resulting migration file instead of being
streamed at arbitrary points.

The reasons why we'd want such behavior are:

 - The resulting file will have a bounded size, since pages which are
   dirtied multiple times will always go to a fixed location in the
   file, rather than constantly being added to a sequential
   stream. This eliminates cases where a VM with, say, 1G of RAM can
   result in a migration file that's 10s of GBs, provided that the
   workload constantly redirties memory.

 - It paves the way to implement O_DIRECT-enabled save/restore of the
   migration stream as the pages are ensured to be written at aligned
   offsets.

 - It allows the usage of multifd so we can write RAM pages to the
   migration file in parallel.

For now, enabling the capability has no effect. The next couple of
patches implement the core functionality.

Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240229153017.2221-8-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>
2024-03-01 15:42:04 +08:00
..
acpi.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
audio.json audio/pw: Pipewire->PipeWire case fix for user-visible text 2023-07-17 15:22:56 +04:00
authz.json qapi: Reformat doc comments to conform to current conventions 2023-05-10 10:01:01 +02:00
block-core.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
block-export.json qapi: Add missing union tag documentation 2024-02-12 10:04:32 +01:00
block.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
char.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
common.json qapi: Move @String out of common.json to discourage reuse 2024-02-12 10:04:32 +01:00
compat.json qapi: Belatedly update CompatPolicy documentation for unstable 2023-10-19 07:02:29 +02:00
control.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
crypto.json QAPI patches patches for 2024-02-12 2024-02-13 10:54:59 +00:00
cryptodev.json spelling: information 2023-06-09 23:38:16 +03:00
cxl.json qapi: Reformat recent doc comments to conform to current conventions 2023-07-26 14:51:36 +02:00
dump.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
error.json qapi: Reformat doc comments to conform to current conventions 2023-05-10 10:01:01 +02:00
introspect.json qapi: Drop redundant documentation of inherited members 2024-02-03 09:19:25 +01:00
job.json blockjob: introduce block-job-change QMP command 2023-10-31 18:20:25 +01:00
machine-common.json CPU topology: extend with s390 specifics 2023-10-20 07:16:53 +02:00
machine-target.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
machine.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
meson.build CPU topology: extend with s390 specifics 2023-10-20 07:16:53 +02:00
migration.json migration/ram: Introduce 'mapped-ram' migration capability 2024-03-01 15:42:04 +08:00
misc-target.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
misc.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
net.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
opts-visitor.c cutils: Adjust signature of parse_uint[_full] 2023-06-02 12:27:19 -05:00
pci.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
pragma.json qapi/migration: Add missing tls-authz documentation 2024-02-12 10:04:32 +01:00
qapi-clone-visitor.c qapi: Make visitor functions taking Error ** return bool, not void 2020-07-10 15:18:08 +02:00
qapi-dealloc-visitor.c qapi: Make visitor functions taking Error ** return bool, not void 2020-07-10 15:18:08 +02:00
qapi-forward-visitor.c qapi: remove needless include 2022-03-22 14:46:18 +04:00
qapi-schema.json CPU topology: extend with s390 specifics 2023-10-20 07:16:53 +02:00
qapi-type-helpers.c monitor: introduce HumanReadableText and HMP support 2021-11-02 15:55:13 +00:00
qapi-util.c qapi: Fix dangling references to docs/devel/qapi-code-gen.txt 2024-01-26 07:04:53 +01:00
qapi-visit-core.c qapi: Factor out compat_policy_input_ok() 2021-10-29 21:27:20 +02:00
qdev.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
qmp-dispatch.c monitor: use aio_co_reschedule_self() 2024-02-07 14:44:21 +01:00
qmp-event.c Replace qemu_gettimeofday() with g_get_real_time() 2022-04-06 10:50:37 +02:00
qmp-registry.c qapi: Generalize command policy checking 2021-10-29 18:24:46 +02:00
qobject-input-visitor.c include: add qemu/keyval.h 2022-04-21 17:03:51 +04:00
qobject-output-visitor.c qapi: Extend -compat to set policy for unstable interfaces 2021-10-29 21:28:01 +02:00
qom.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
rdma.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
replay.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
rocker.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
run-state.json qapi: Reject multiple and empty feature descriptions 2024-02-26 10:43:56 +01:00
sockets.json qapi: Add missing union tag documentation 2024-02-12 10:04:32 +01:00
stats.json qapi: Add missing union tag documentation 2024-02-12 10:04:32 +01:00
string-input-visitor.c qapi, qemu-options: make all parsing visitors parse boolean options the same 2020-11-04 12:00:40 -05:00
string-output-visitor.c string-output-visitor: Fix (pseudo) struct handling 2024-01-26 11:16:58 +01:00
tpm.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
trace-events qapi: Generalize struct member policy checking 2021-10-29 18:23:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
trace.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
transaction.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
ui.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
virtio.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00
yank.json qapi: Require descriptions and tagged sections to be indented 2024-02-26 10:43:56 +01:00