History log of /openbmc/qemu/migration/ (Results 301 – 325 of 2385)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
5994024f23-Oct-2023 Het Gala <het.gala@nutanix.com>

migration: Implement MigrateChannelList to qmp migration flow.

Integrate MigrateChannelList with all transport backends
(socket, exec and rdma) for both src and dest migration
endpoints for qmp migr

migration: Implement MigrateChannelList to qmp migration flow.

Integrate MigrateChannelList with all transport backends
(socket, exec and rdma) for both src and dest migration
endpoints for qmp migration.

For current series, limit the size of MigrateChannelList
to single element (single interface) as runtime check.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-13-farosas@suse.de>

show more ...

d95533e123-Oct-2023 Het Gala <het.gala@nutanix.com>

migration: modify migration_channels_and_uri_compatible() for new QAPI syntax

migration_channels_and_uri_compatible() check for transport mechanism
suitable for multifd migration gets executed when

migration: modify migration_channels_and_uri_compatible() for new QAPI syntax

migration_channels_and_uri_compatible() check for transport mechanism
suitable for multifd migration gets executed when the caller calls old
uri syntax. It needs it to be run when using the modern MigrateChannel
QAPI syntax too.

After URI -> 'MigrateChannel' :
migration_channels_and_uri_compatible() ->
migration_channels_and_transport_compatible() passes object as argument
and check for valid transport mechanism.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-12-farosas@suse.de>

show more ...

074dbce523-Oct-2023 Het Gala <het.gala@nutanix.com>

migration: New migrate and migrate-incoming argument 'channels'

MigrateChannelList allows to connect accross multiple interfaces.
Add MigrateChannelList struct as argument to migration QAPIs.

We pl

migration: New migrate and migrate-incoming argument 'channels'

MigrateChannelList allows to connect accross multiple interfaces.
Add MigrateChannelList struct as argument to migration QAPIs.

We plan to include multiple channels in future, to connnect
multiple interfaces. Hence, we choose 'MigrateChannelList'
as the new argument over 'MigrateChannel' to make migration
QAPIs future proof.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-10-farosas@suse.de>

show more ...

02afba6323-Oct-2023 Fabiano Rosas <farosas@suse.de>

migration: Convert the file backend to the new QAPI syntax

Convert the file: URI to accept a FileMigrationArgs to be compatible
with the new migration QAPI.

Signed-off-by: Fabiano Rosas <farosas@su

migration: Convert the file backend to the new QAPI syntax

Convert the file: URI to accept a FileMigrationArgs to be compatible
with the new migration QAPI.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-9-farosas@suse.de>

show more ...

cbab4fac23-Oct-2023 Het Gala <het.gala@nutanix.com>

migration: convert exec backend to accept MigrateAddress.

Exec transport backend for 'migrate'/'migrate-incoming' QAPIs accept
new wire protocol of MigrateAddress struct.

It is achived by parsing '

migration: convert exec backend to accept MigrateAddress.

Exec transport backend for 'migrate'/'migrate-incoming' QAPIs accept
new wire protocol of MigrateAddress struct.

It is achived by parsing 'uri' string and storing migration parameters
required for exec connection into strList struct.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-8-farosas@suse.de>

show more ...

3fa9642f23-Oct-2023 Het Gala <het.gala@nutanix.com>

migration: convert rdma backend to accept MigrateAddress

RDMA based transport backend for 'migrate'/'migrate-incoming' QAPIs
accept new wire protocol of MigrateAddress struct.

It is achived by pars

migration: convert rdma backend to accept MigrateAddress

RDMA based transport backend for 'migrate'/'migrate-incoming' QAPIs
accept new wire protocol of MigrateAddress struct.

It is achived by parsing 'uri' string and storing migration parameters
required for RDMA connection into well defined InetSocketAddress struct.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-7-farosas@suse.de>

show more ...

34dfc5e423-Oct-2023 Het Gala <het.gala@nutanix.com>

migration: convert socket backend to accept MigrateAddress

Socket transport backend for 'migrate'/'migrate-incoming' QAPIs accept
new wire protocol of MigrateAddress struct.

It is achived by parsin

migration: convert socket backend to accept MigrateAddress

Socket transport backend for 'migrate'/'migrate-incoming' QAPIs accept
new wire protocol of MigrateAddress struct.

It is achived by parsing 'uri' string and storing migration parameters
required for socket connection into well defined SocketAddress struct.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-6-farosas@suse.de>

show more ...

72a8192e23-Oct-2023 Het Gala <het.gala@nutanix.com>

migration: convert migration 'uri' into 'MigrateAddress'

This patch parses 'migrate' and 'migrate-incoming' QAPI's 'uri'
string containing migration connection related information
and stores them in

migration: convert migration 'uri' into 'MigrateAddress'

This patch parses 'migrate' and 'migrate-incoming' QAPI's 'uri'
string containing migration connection related information
and stores them inside well defined 'MigrateAddress' struct.

Fabiano fixed for "file" transport.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231023182053.8711-4-farosas@suse.de>
Message-ID: <20231023182053.8711-5-farosas@suse.de>

show more ...

88577f3217-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Change ram_dirty_bitmap_reload() retval to bool

Now we have a Error** passed into the return path thread stack, which is
even clearer than an int retval. Change ram_dirty_bitmap_reload()

migration: Change ram_dirty_bitmap_reload() retval to bool

Now we have a Error** passed into the return path thread stack, which is
even clearer than an int retval. Change ram_dirty_bitmap_reload() and the
callers to use a bool instead to replace errnos.

Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231017202633.296756-5-peterx@redhat.com>

show more ...

f8c543e817-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Allow network to fail even during recovery

Normally the postcopy recover phase should only exist for a super short
period, that's the duration when QEMU is trying to recover from an
inter

migration: Allow network to fail even during recovery

Normally the postcopy recover phase should only exist for a super short
period, that's the duration when QEMU is trying to recover from an
interrupted postcopy migration, during which handshake will be carried out
for continuing the procedure with state changes from PAUSED -> RECOVER ->
POSTCOPY_ACTIVE again.

Here RECOVER phase should be super small, that happens right after the
admin specified a new but working network link for QEMU to reconnect to
dest QEMU.

However there can still be case where the channel is broken in this small
RECOVER window.

If it happens, with current code there's no way the src QEMU can got kicked
out of RECOVER stage. No way either to retry the recover in another channel
when established.

This patch allows the RECOVER phase to fail itself too - we're mostly
ready, just some small things missing, e.g. properly kick the main
migration thread out when sleeping on rp_sem when we found that we're at
RECOVER stage. When this happens, it fails the RECOVER itself, and
rollback to PAUSED stage. Then the user can retry another round of
recovery.

To make it even stronger, teach QMP command migrate-pause to explicitly
kick src/dst QEMU out when needed, so even if for some reason the migration
thread didn't got kicked out already by a failing rethrn-path thread, the
admin can also kick it out.

This will be an super, super corner case, but still try to cover that.

One can try to test this with two proxy channels for migration:

(a) socat unix-listen:/tmp/src.sock,reuseaddr,fork tcp:localhost:10000
(b) socat tcp-listen:10000,reuseaddr,fork unix:/tmp/dst.sock

So the migration channel will be:

(a) (b)
src -> /tmp/src.sock -> tcp:10000 -> /tmp/dst.sock -> dst

Then to make QEMU hang at RECOVER stage, one can do below:

(1) stop the postcopy using QMP command postcopy-pause
(2) kill the 2nd proxy (b)
(3) try to recover the postcopy using /tmp/src.sock on src
(4) src QEMU will go into RECOVER stage but won't be able to continue
from there, because the channel is actually broken at (b)

Before this patch, step (4) will make src QEMU stuck in RECOVER stage,
without a way to kick the QEMU out or continue the postcopy again. After
this patch, (4) will quickly fail qemu and bounce back to PAUSED stage.

Admin can also kick QEMU from (4) into PAUSED when needed using
migrate-pause when needed.

After bouncing back to PAUSED stage, one can recover again.

Reported-by: Xiaohui Li <xiaohli@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2111332
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231017202633.296756-3-peterx@redhat.com>

show more ...

7aa6070d17-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Refactor error handling in source return path

rp_state.error was a boolean used to show error happened in return path
thread. That's not only duplicating error reporting (migrate_set_err

migration: Refactor error handling in source return path

rp_state.error was a boolean used to show error happened in return path
thread. That's not only duplicating error reporting (migrate_set_error),
but also not good enough in that we only do error_report() and set it to
true, we never can keep a history of the exact error and show it in
query-migrate.

To make this better, a few things done:

- Use error_setg() rather than error_report() across the whole lifecycle
of return path thread, keeping the error in an Error*.

- With above, no need to have mark_source_rp_bad(), remove it, alongside
with rp_state.error itself.

- Use migrate_set_error() to apply that captured error to the global
migration object when error occured in this thread.

- Do the same when detected qemufile error in source return path

We need to re-export qemu_file_get_error_obj() to do the last one.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231017202633.296756-2-peterx@redhat.com>

show more ...

fa3673e425-Oct-2023 Steve Sistare <steven.sistare@oracle.com>

migration: per-mode blockers

Extend the blocker interface so that a blocker can be registered for
one or more migration modes. The existing interfaces register a
blocker for all modes, and the new

migration: per-mode blockers

Extend the blocker interface so that a blocker can be registered for
one or more migration modes. The existing interfaces register a
blocker for all modes, and the new interfaces take a varargs list
of modes.

Internally, maintain a separate blocker list per mode. The same Error
object may be added to multiple lists. When a block is deleted, it is
removed from every list, and the Error is freed.

No functional change until a new mode is added.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <1698263069-406971-3-git-send-email-steven.sistare@oracle.com>

show more ...

eea1e5c925-Oct-2023 Steve Sistare <steven.sistare@oracle.com>

migration: mode parameter

Create a mode migration parameter that can be used to select alternate
migration algorithms. The default mode is normal, representing the
current migration algorithm, and

migration: mode parameter

Create a mode migration parameter that can be used to select alternate
migration algorithms. The default mode is normal, representing the
current migration algorithm, and does not need to be explicitly set.

No functional change until a new mode is added, except that the mode is
shown by the 'info migrate' command.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <1698263069-406971-2-git-send-email-steven.sistare@oracle.com>

show more ...

3e5f3bcd30-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Add tracepoints for downtime checkpoints

This patch is inspired by Joao Martin's patch here:

https://lore.kernel.org/r/20230926161841.98464-1-joao.m.martins@oracle.com

Add tracepoints f

migration: Add tracepoints for downtime checkpoints

This patch is inspired by Joao Martin's patch here:

https://lore.kernel.org/r/20230926161841.98464-1-joao.m.martins@oracle.com

Add tracepoints for major downtime checkpoints on both src and dst. They
share the same tracepoint with a string showing its stage.

Besides the checkpoints in the previous patch, this patch also added
destination checkpoints.

On src, we have these checkpoints added:

- src-downtime-start: right before vm stops on src
- src-vm-stopped: after vm is fully stopped
- src-iterable-saved: after all iterables saved (END sections)
- src-non-iterable-saved: after all non-iterable saved (FULL sections)
- src-downtime-stop: migration fully completed

On dst, we have these checkpoints added:

- dst-precopy-loadvm-completes: after loadvm all done for precopy
- dst-precopy-bh-*: record BH steps to resume VM for precopy
- dst-postcopy-bh-*: record BH steps to resume VM for postcopy

On dst side, we don't have a good way to trace total time consumed by
iterable or non-iterable for now. We can mark it by 1st time receiving a
FULL / END section, but rather than that let's just rely on the other
tracepoints added for vmstates to back up the information.

With this patch, one can enable "vmstate_downtime*" tracepoints and it'll
enable all tracepoints for downtime measurements necessary.

Drop loadvm_postcopy_handle_run_bh() tracepoint alongside, because they
service the same purpose, which was only for postcopy. We then have
unified prefix for all downtime relevant tracepoints.

Co-developed-by: Joao Martins <joao.m.martins@oracle.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231030163346.765724-6-peterx@redhat.com>

show more ...

93bdf88830-Oct-2023 Peter Xu <peterx@redhat.com>

migration: migration_stop_vm() helper

Provide a helper for non-COLO use case of migration to stop a VM. This
prepares for adding some downtime relevant tracepoints to migration, where
they may or m

migration: migration_stop_vm() helper

Provide a helper for non-COLO use case of migration to stop a VM. This
prepares for adding some downtime relevant tracepoints to migration, where
they may or may not apply to COLO.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231030163346.765724-5-peterx@redhat.com>

show more ...

3c80f14230-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Add per vmstate downtime tracepoints

We have a bunch of savevm_section* tracepoints, they're good to analyze
migration stream, but not always suitable if someone would like to analyze
the

migration: Add per vmstate downtime tracepoints

We have a bunch of savevm_section* tracepoints, they're good to analyze
migration stream, but not always suitable if someone would like to analyze
the migration downtime. Two major problems:

- savevm_section* tracepoints are dumping all sections, we only care
about the sections that contribute to the downtime

- They don't have an identifier to show the type of sections, so no way
to filter downtime information either easily.

We can add type into the tracepoints, but instead of doing so, this patch
kept them untouched, instead of adding a bunch of downtime specific
tracepoints, so one can enable "vmstate_downtime*" tracepoints and get a
full picture of how the downtime is distributed across iterative and
non-iterative vmstate save/load.

Note that here both save() and load() need to be traced, because both of
them may contribute to the downtime. The contribution is not a simple "add
them together", though: consider when the src is doing a save() of device1
while the dest can be load()ing for device2, so they can happen
concurrently.

Tracking both sides make sense because device load() and save() can be
imbalanced, one device can save() super fast, but load() super slow, vice
versa. We can't figure that out without tracing both.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231030163346.765724-4-peterx@redhat.com>

show more ...

e22ffad030-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Add migration_downtime_start|end() helpers

Unify the three users on recording downtimes with the same pair of helpers.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Ro

migration: Add migration_downtime_start|end() helpers

Unify the three users on recording downtimes with the same pair of helpers.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231030163346.765724-3-peterx@redhat.com>

show more ...

62f5da7d30-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Set downtime_start even for postcopy

Postcopy calculates its downtime separately. It always sets
MigrationState.downtime properly, but not MigrationState.downtime_start.

Make postcopy d

migration: Set downtime_start even for postcopy

Postcopy calculates its downtime separately. It always sets
MigrationState.downtime properly, but not MigrationState.downtime_start.

Make postcopy do the same as other modes on properly recording the
timestamp when the VM is going to be stopped. Drop the temporary variable
in postcopy_start() along the way.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231030163346.765724-2-peterx@redhat.com>

show more ...

caa91b3c20-Oct-2023 Peter Xu <peterx@redhat.com>

migration: Check in savevm_state_handler_insert for dups

Before finally register one SaveStateEntry, we detect for duplicated
entries. This could be helpful to notify us asap instead of get
silent

migration: Check in savevm_state_handler_insert for dups

Before finally register one SaveStateEntry, we detect for duplicated
entries. This could be helpful to notify us asap instead of get
silent migration failures which could be hard to diagnose.

For example, this patch will generate a message like this (if without
previous fixes on x2apic) as long as we wants to boot a VM instance
with "-smp 200,maxcpus=288,sockets=2,cores=72,threads=2" and QEMU will
bail out even before VM starts:

savevm_state_handler_insert: Detected duplicate SaveStateEntry: id=apic, instance_id=0x0

Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-10-quintela@redhat.com>

show more ...

485fb95520-Oct-2023 Juan Quintela <quintela@redhat.com>

migration: Hack to maintain backwards compatibility for ppc

Current code does:
- register pre_2_10_vmstate_dummy_icp with "icp/server" and instance
dependinfg on cpu number
- for newer machines, i

migration: Hack to maintain backwards compatibility for ppc

Current code does:
- register pre_2_10_vmstate_dummy_icp with "icp/server" and instance
dependinfg on cpu number
- for newer machines, it register vmstate_icp with "icp/server" name
and instance 0
- now it unregisters "icp/server" for the 1st instance.

This is wrong at many levels:
- we shouldn't have two VMSTATEDescriptions with the same name
- In case this is the only solution that we can came with, it needs to
be:
* register pre_2_10_vmstate_dummy_icp
* unregister pre_2_10_vmstate_dummy_icp
* register real vmstate_icp

Created vmstate_replace_hack_for_ppc() with warnings left and right
that it is a hack.

CC: Cedric Le Goater <clg@kaod.org>
CC: Daniel Henrique Barboza <danielhb413@gmail.com>
CC: David Gibson <david@gibson.dropbear.id.au>
CC: Greg Kurz <groug@kaod.org>

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-8-quintela@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/container-cross.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/backends/dbus-vmstate.c
/openbmc/qemu/backends/tpm/tpm_emulator.c
/openbmc/qemu/block.c
/openbmc/qemu/block/blkio.c
/openbmc/qemu/block/io_uring.c
/openbmc/qemu/block/linux-aio.c
/openbmc/qemu/block/meson.build
/openbmc/qemu/block/mirror.c
/openbmc/qemu/block/monitor/block-hmp-cmds.c
/openbmc/qemu/block/nvme.c
/openbmc/qemu/block/qapi-sysemu.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/blockjob.c
/openbmc/qemu/bsd-user/arm/target_arch.h
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/lockstep.c
/openbmc/qemu/docs/system/arm/virt.rst
/openbmc/qemu/docs/tools/qemu-img.rst
/openbmc/qemu/gdbstub/gdbstub.c
/openbmc/qemu/hw/arm/armv7m.c
/openbmc/qemu/hw/arm/bananapi_m2u.c
/openbmc/qemu/hw/arm/cubieboard.c
/openbmc/qemu/hw/arm/exynos4_boards.c
/openbmc/qemu/hw/arm/imx25_pdk.c
/openbmc/qemu/hw/arm/kzm.c
/openbmc/qemu/hw/arm/mcimx6ul-evk.c
/openbmc/qemu/hw/arm/mcimx7d-sabre.c
/openbmc/qemu/hw/arm/orangepi.c
/openbmc/qemu/hw/arm/pxa2xx.c
/openbmc/qemu/hw/arm/pxa2xx_pic.c
/openbmc/qemu/hw/arm/realview.c
/openbmc/qemu/hw/arm/sabrelite.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xilinx_zynq.c
/openbmc/qemu/hw/arm/xlnx-versal-virt.c
/openbmc/qemu/hw/arm/xlnx-zcu102.c
/openbmc/qemu/hw/block/dataplane/virtio-blk.c
/openbmc/qemu/hw/block/dataplane/xen-block.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/i2c/core.c
/openbmc/qemu/hw/ide/isa.c
/openbmc/qemu/hw/input/adb.c
/openbmc/qemu/hw/input/ads7846.c
/openbmc/qemu/hw/input/stellaris_input.c
/openbmc/qemu/hw/intc/armv7m_nvic.c
/openbmc/qemu/hw/intc/xics.c
/openbmc/qemu/hw/ipmi/ipmi_bmc_extern.c
/openbmc/qemu/hw/ipmi/isa_ipmi_bt.c
/openbmc/qemu/hw/ipmi/isa_ipmi_kcs.c
/openbmc/qemu/hw/misc/led.c
/openbmc/qemu/hw/net/cadence_gem.c
/openbmc/qemu/hw/net/eepro100.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pcmcia/pxa2xx.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_nvdimm.c
/openbmc/qemu/hw/s390x/s390-skeys.c
/openbmc/qemu/hw/s390x/s390-stattrib.c
/openbmc/qemu/hw/scsi/virtio-scsi.c
/openbmc/qemu/hw/sd/pxa2xx_mmci.c
/openbmc/qemu/hw/timer/arm_timer.c
/openbmc/qemu/hw/ufs/lu.c
/openbmc/qemu/hw/ufs/trace-events
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/ufs/ufs.h
/openbmc/qemu/hw/virtio/trace-events
/openbmc/qemu/hw/virtio/virtio-mem.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/block/blockjob.h
/openbmc/qemu/include/block/blockjob_int.h
/openbmc/qemu/include/block/ufs.h
/openbmc/qemu/include/hw/arm/allwinner-a10.h
/openbmc/qemu/include/hw/arm/allwinner-h3.h
/openbmc/qemu/include/hw/arm/allwinner-r40.h
/openbmc/qemu/include/hw/arm/fsl-imx25.h
/openbmc/qemu/include/hw/arm/fsl-imx31.h
/openbmc/qemu/include/hw/arm/fsl-imx6.h
/openbmc/qemu/include/hw/arm/fsl-imx6ul.h
/openbmc/qemu/include/hw/arm/fsl-imx7.h
/openbmc/qemu/include/hw/arm/pxa.h
/openbmc/qemu/include/hw/arm/xlnx-versal.h
/openbmc/qemu/include/hw/arm/xlnx-zynqmp.h
/openbmc/qemu/include/migration/vmstate.h
/openbmc/qemu/include/qemu/defer-call.h
/openbmc/qemu/include/sysemu/block-backend-io.h
/openbmc/qemu/job.c
/openbmc/qemu/linux-user/aarch64/Makefile.vdso
/openbmc/qemu/linux-user/aarch64/cpu_loop.c
/openbmc/qemu/linux-user/aarch64/meson.build
/openbmc/qemu/linux-user/aarch64/signal.c
/openbmc/qemu/linux-user/aarch64/target_prctl.h
/openbmc/qemu/linux-user/aarch64/vdso-be.so
/openbmc/qemu/linux-user/aarch64/vdso-le.so
/openbmc/qemu/linux-user/aarch64/vdso.S
/openbmc/qemu/linux-user/aarch64/vdso.ld
/openbmc/qemu/linux-user/arm/Makefile.vdso
/openbmc/qemu/linux-user/arm/meson.build
/openbmc/qemu/linux-user/arm/signal.c
/openbmc/qemu/linux-user/arm/vdso-asmoffset.h
/openbmc/qemu/linux-user/arm/vdso-be.so
/openbmc/qemu/linux-user/arm/vdso-le.so
/openbmc/qemu/linux-user/arm/vdso.S
/openbmc/qemu/linux-user/arm/vdso.ld
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/flatload.c
/openbmc/qemu/linux-user/gen-vdso-elfn.c.inc
/openbmc/qemu/linux-user/gen-vdso.c
/openbmc/qemu/linux-user/hppa/Makefile.vdso
/openbmc/qemu/linux-user/hppa/meson.build
/openbmc/qemu/linux-user/hppa/signal.c
/openbmc/qemu/linux-user/hppa/vdso-asmoffset.h
/openbmc/qemu/linux-user/hppa/vdso.S
/openbmc/qemu/linux-user/hppa/vdso.ld
/openbmc/qemu/linux-user/hppa/vdso.so
/openbmc/qemu/linux-user/i386/Makefile.vdso
/openbmc/qemu/linux-user/i386/meson.build
/openbmc/qemu/linux-user/i386/signal.c
/openbmc/qemu/linux-user/i386/vdso-asmoffset.h
/openbmc/qemu/linux-user/i386/vdso.S
/openbmc/qemu/linux-user/i386/vdso.ld
/openbmc/qemu/linux-user/i386/vdso.so
/openbmc/qemu/linux-user/linuxload.c
/openbmc/qemu/linux-user/loader.h
/openbmc/qemu/linux-user/loongarch64/Makefile.vdso
/openbmc/qemu/linux-user/loongarch64/meson.build
/openbmc/qemu/linux-user/loongarch64/signal.c
/openbmc/qemu/linux-user/loongarch64/vdso-asmoffset.h
/openbmc/qemu/linux-user/loongarch64/vdso.S
/openbmc/qemu/linux-user/loongarch64/vdso.ld
/openbmc/qemu/linux-user/loongarch64/vdso.so
/openbmc/qemu/linux-user/meson.build
/openbmc/qemu/linux-user/mmap.c
/openbmc/qemu/linux-user/ppc/Makefile.vdso
/openbmc/qemu/linux-user/ppc/meson.build
/openbmc/qemu/linux-user/ppc/signal.c
/openbmc/qemu/linux-user/ppc/vdso-32.ld
/openbmc/qemu/linux-user/ppc/vdso-32.so
/openbmc/qemu/linux-user/ppc/vdso-64.ld
/openbmc/qemu/linux-user/ppc/vdso-64.so
/openbmc/qemu/linux-user/ppc/vdso-64le.so
/openbmc/qemu/linux-user/ppc/vdso-asmoffset.h
/openbmc/qemu/linux-user/ppc/vdso.S
/openbmc/qemu/linux-user/qemu.h
/openbmc/qemu/linux-user/riscv/Makefile.vdso
/openbmc/qemu/linux-user/riscv/meson.build
/openbmc/qemu/linux-user/riscv/signal.c
/openbmc/qemu/linux-user/riscv/vdso-32.so
/openbmc/qemu/linux-user/riscv/vdso-64.so
/openbmc/qemu/linux-user/riscv/vdso-asmoffset.h
/openbmc/qemu/linux-user/riscv/vdso.S
/openbmc/qemu/linux-user/riscv/vdso.ld
/openbmc/qemu/linux-user/s390x/Makefile.vdso
/openbmc/qemu/linux-user/s390x/meson.build
/openbmc/qemu/linux-user/s390x/signal.c
/openbmc/qemu/linux-user/s390x/vdso-asmoffset.h
/openbmc/qemu/linux-user/s390x/vdso.S
/openbmc/qemu/linux-user/s390x/vdso.ld
/openbmc/qemu/linux-user/s390x/vdso.so
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/x86_64/Makefile.vdso
/openbmc/qemu/linux-user/x86_64/meson.build
/openbmc/qemu/linux-user/x86_64/vdso.S
/openbmc/qemu/linux-user/x86_64/vdso.ld
/openbmc/qemu/linux-user/x86_64/vdso.so
savevm.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/job.json
/openbmc/qemu/qemu-img-cmds.hx
/openbmc/qemu/qemu-img.c
/openbmc/qemu/semihosting/config.c
/openbmc/qemu/target/arm/arch_dump.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/debug_helper.c
/openbmc/qemu/target/arm/gdbstub.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/kvm64.c
/openbmc/qemu/target/arm/machine.c
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/tcg/cpu64.c
/openbmc/qemu/target/arm/tcg/hflags.c
/openbmc/qemu/target/arm/tcg/m_helper.c
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/arm/tcg/pauth_helper.c
/openbmc/qemu/target/arm/tcg/tlb_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/dockerfiles/debian-all-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-legacy-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-loongarch-cross.docker
/openbmc/qemu/tests/qemu-iotests/024
/openbmc/qemu/tests/qemu-iotests/024.out
/openbmc/qemu/tests/qemu-iotests/109.out
/openbmc/qemu/tests/qemu-iotests/118
/openbmc/qemu/tests/qemu-iotests/271
/openbmc/qemu/tests/qemu-iotests/271.out
/openbmc/qemu/tests/qemu-iotests/314
/openbmc/qemu/tests/qemu-iotests/314.out
/openbmc/qemu/tests/qemu-iotests/tests/mirror-change-copy-mode
/openbmc/qemu/tests/qemu-iotests/tests/mirror-change-copy-mode.out
/openbmc/qemu/tests/qtest/ufs-test.c
/openbmc/qemu/tests/tcg/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/arm/Makefile.target
/openbmc/qemu/tests/tcg/cris/Makefile.target
/openbmc/qemu/tests/tcg/hexagon/Makefile.target
/openbmc/qemu/tests/tcg/i386/Makefile.target
/openbmc/qemu/tests/tcg/minilib/Makefile.target
/openbmc/qemu/tests/tcg/mips/Makefile.target
/openbmc/qemu/tests/tcg/mips/hello-mips.c
/openbmc/qemu/tests/vm/openbsd
/openbmc/qemu/util/defer-call.c
/openbmc/qemu/util/meson.build
/openbmc/qemu/util/thread-pool.c
be07a0ed25-Oct-2023 Juan Quintela <quintela@redhat.com>

qemu-file: Make qemu_fflush() return errors

This let us simplify code of this shape.

qemu_fflush(f);
int ret = qemu_file_get_error(f);
if (ret) {
return ret;
}

into:

int ret

qemu-file: Make qemu_fflush() return errors

This let us simplify code of this shape.

qemu_fflush(f);
int ret = qemu_file_get_error(f);
if (ret) {
return ret;
}

into:

int ret = qemu_fflush(f);
if (ret) {
return ret;
}

I updated all callers where there is any error check.
qemu_fclose() don't need to check for f->last_error because
qemu_fflush() returns it at the beggining of the function.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>

Message-ID: <20231025091117.6342-13-quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>

show more ...

0f85961825-Oct-2023 Juan Quintela <quintela@redhat.com>

migration: Remove transferred atomic counter

After last commit, it is a write only variable.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-

migration: Remove transferred atomic counter

After last commit, it is a write only variable.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-12-quintela@redhat.com>

show more ...

897fd8bd25-Oct-2023 Juan Quintela <quintela@redhat.com>

migration: Use migration_transferred_bytes()

There are only two differnces with the old value:

- the amount of QEMUFile that hasn't yet been flushed. It can be
discussed what is more exact, the

migration: Use migration_transferred_bytes()

There are only two differnces with the old value:

- the amount of QEMUFile that hasn't yet been flushed. It can be
discussed what is more exact, the new or the old one.
- the amount of transferred bytes that we forgot to account for (the
newer is better, i.e. exact).

Notice that this two values are used to:
a - present to the user
b - calculate the rate_limit

So a few KB here and there is not going to make a difference.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-11-quintela@redhat.com>

show more ...

fc55cf3125-Oct-2023 Juan Quintela <quintela@redhat.com>

qemu-file: Simplify qemu_file_get_error()

If we pass a NULL error is the same that returning directly the value.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@

qemu-file: Simplify qemu_file_get_error()

If we pass a NULL error is the same that returning directly the value.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-10-quintela@redhat.com>

show more ...

0743f41f25-Oct-2023 Juan Quintela <quintela@redhat.com>

migration: migration_rate_limit_reset() don't need the QEMUFile

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117

migration: migration_rate_limit_reset() don't need the QEMUFile

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231025091117.6342-9-quintela@redhat.com>

show more ...

1...<<11121314151617181920>>...96