qemu-e2k/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
authz.json
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
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
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
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-dealloc-visitor.c
qapi-forward-visitor.c
qapi-schema.json CPU topology: extend with s390 specifics 2023-10-20 07:16:53 +02:00
qapi-type-helpers.c
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
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
qmp-registry.c
qobject-input-visitor.c
qobject-output-visitor.c
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
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
trace.h
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