History log of /openbmc/qemu/migration/ (Results 201 – 225 of 2385)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
63f64d7726-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration: Fix qmp_query_migrate mbps value

The QMP command query_migrate might see incorrect throughput numbers
if it runs after we've set the migration completion status but before
migration_calcu

migration: Fix qmp_query_migrate mbps value

The QMP command query_migrate might see incorrect throughput numbers
if it runs after we've set the migration completion status but before
migration_calculate_complete() has updated s->total_time and s->mbps.

The migration status would show COMPLETED, but the throughput value
would be the one from the last iteration and not the one from the
whole migration. This will usually be a larger value due to the time
period being smaller (one iteration).

Move migration_calculate_complete() earlier so that the status
MIGRATION_STATUS_COMPLETED is only emitted after the final counters
update. Keep everything under the BQL so the QMP thread sees the
updates as atomic.

Rename migration_calculate_complete to migration_completion_end to
reflect its new purpose of also updating s->state.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240226143335.14282-1-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

cbdafc1b22-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: options incompatible with cpr

Fail the migration request if options are set that are incompatible
with cpr.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu

migration: options incompatible with cpr

Fail the migration request if options are set that are incompatible
with cpr.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-15-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

9867d4dd22-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: stop vm for cpr

When migration for cpr is initiated, stop the vm and set state
RUN_STATE_FINISH_MIGRATE before ram is saved. This eliminates the
possibility of ram and device state being

migration: stop vm for cpr

When migration for cpr is initiated, stop the vm and set state
RUN_STATE_FINISH_MIGRATE before ram is saved. This eliminates the
possibility of ram and device state being out of sync, and guarantees
that a guest in the suspended state remains suspended, because qmp_cont
rejects a cont command in the RUN_STATE_FINISH_MIGRATE state.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-11-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

4af667f822-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: notifier error checking

Check the status returned by migration notifiers for event type
MIG_EVENT_PRECOPY_SETUP, and report errors. None of the notifiers
return an error status at this t

migration: notifier error checking

Check the status returned by migration notifiers for event type
MIG_EVENT_PRECOPY_SETUP, and report errors. None of the notifiers
return an error status at this time.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-10-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

bf78a04622-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: refactor migrate_fd_connect failures

Move common code for the error path in migrate_fd_connect to a shared
fail label. No functional change.

Signed-off-by: Steve Sistare <steven.sistare

migration: refactor migrate_fd_connect failures

Move common code for the error path in migrate_fd_connect to a shared
fail label. No functional change.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-9-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

6835f5a122-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: per-mode notifiers

Keep a separate list of migration notifiers for each migration mode.

Suggested-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Steve Sistare <steven.sistare@oracle.com

migration: per-mode notifiers

Keep a separate list of migration notifiers for each migration mode.

Suggested-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-8-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

5663dd3f22-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: MigrationNotifyFunc

Define MigrationNotifyFunc to improve type safety and simplify migration
notifiers.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <pe

migration: MigrationNotifyFunc

Define MigrationNotifyFunc to improve type safety and simplify migration
notifiers.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-7-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

c763a23e22-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: remove postcopy_after_devices

postcopy_after_devices and migration_in_postcopy_after_devices are no
longer used, so delete them.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>

migration: remove postcopy_after_devices

postcopy_after_devices and migration_in_postcopy_after_devices are no
longer used, so delete them.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-6-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

9d9babf722-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: MigrationEvent for notifiers

Passing MigrationState to notifiers is unsound because they could access
unstable migration state internals or even modify the state. Instead, pass
the minim

migration: MigrationEvent for notifiers

Passing MigrationState to notifiers is unsound because they could access
unstable migration state internals or even modify the state. Instead, pass
the minimal info needed in a new MigrationEvent struct, which could be
extended in the future if needed.

Suggested-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-5-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

3e77573022-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: convert to NotifierWithReturn

Change all migration notifiers to type NotifierWithReturn, so notifiers
can return an error status in a future patch. For now, pass NULL for the
notifier er

migration: convert to NotifierWithReturn

Change all migration notifiers to type NotifierWithReturn, so notifiers
can return an error status in a future patch. For now, pass NULL for the
notifier error parameter, and do not check the return value.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-4-git-send-email-steven.sistare@oracle.com
[peterx: dropped unexpected update to roms/seabios-hppa]
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

d91f33c722-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

migration: remove error from notifier data

Remove the error object from opaque data passed to notifiers.
Use the new error parameter passed to the notifier instead.

Signed-off-by: Steve Sistare <st

migration: remove error from notifier data

Remove the error object from opaque data passed to notifiers.
Use the new error parameter passed to the notifier instead.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-3-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

be19d83622-Feb-2024 Steve Sistare <steven.sistare@oracle.com>

notify: pass error to notifier with return

Pass an error object as the third parameter to "notifier with return"
notifiers, so clients no longer need to bundle an error object in the
opaque data. T

notify: pass error to notifier with return

Pass an error object as the third parameter to "notifier with return"
notifiers, so clients no longer need to bundle an error object in the
opaque data. The new parameter is used in a later patch.

Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/r/1708622920-68779-2-git-send-email-steven.sistare@oracle.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

c9a7e83c22-Feb-2024 Peter Xu <peterx@redhat.com>

migration/multifd: Drop unnecessary helper to destroy IOC

Both socket_send_channel_destroy() and multifd_send_channel_destroy() are
unnecessary wrappers to destroy an IOC, as the only thing to do is

migration/multifd: Drop unnecessary helper to destroy IOC

Both socket_send_channel_destroy() and multifd_send_channel_destroy() are
unnecessary wrappers to destroy an IOC, as the only thing to do is to
release the final IOC reference. We have plenty of code that destroys an
IOC using direct unref() already; keep that style.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240222095301.171137-6-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

72b90b9622-Feb-2024 Peter Xu <peterx@redhat.com>

migration/multifd: Cleanup outgoing_args in state destroy

outgoing_args is a global cache of socket address to be reused in multifd.
Freeing the cache in per-channel destructor is more or less a hac

migration/multifd: Cleanup outgoing_args in state destroy

outgoing_args is a global cache of socket address to be reused in multifd.
Freeing the cache in per-channel destructor is more or less a hack. Move
it to multifd_send_cleanup_state() so it only get checked once. Use a
small helper to do so because it's internal of socket.c.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240222095301.171137-5-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

770de49c22-Feb-2024 Peter Xu <peterx@redhat.com>

migration/multifd: Make multifd_channel_connect() return void

It never fails, drop the retval and also the Error**.

Suggested-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Fabiano Rosas <faros

migration/multifd: Make multifd_channel_connect() return void

It never fails, drop the retval and also the Error**.

Suggested-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240222095301.171137-4-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

0518b5d822-Feb-2024 Peter Xu <peterx@redhat.com>

migration/multifd: Drop registered_yank

With a clear definition of p->c protocol, where we only set it up if the
channel is fully established (TLS or non-TLS), registered_yank boolean will
have equa

migration/multifd: Drop registered_yank

With a clear definition of p->c protocol, where we only set it up if the
channel is fully established (TLS or non-TLS), registered_yank boolean will
have equal meaning of "p->c != NULL".

Drop registered_yank by checking p->c instead.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240222095301.171137-3-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

9221e3c622-Feb-2024 Peter Xu <peterx@redhat.com>

migration/multifd: Cleanup TLS iochannel referencing

Commit a1af605bd5 ("migration/multifd: fix hangup with TLS-Multifd due to
blocking handshake") introduced a thread for TLS channels, which will
r

migration/multifd: Cleanup TLS iochannel referencing

Commit a1af605bd5 ("migration/multifd: fix hangup with TLS-Multifd due to
blocking handshake") introduced a thread for TLS channels, which will
resolve the issue on blocking the main thread. However in the same commit
p->c is slightly abused just to be able to pass over the pointer "p" into
the thread.

That's the major reason we'll need to conditionally free the io channel in
the fault paths.

To clean it up, using a separate structure to pass over both "p" and "tioc"
in the tls handshake thread. Then we can make it a rule that p->c will
never be set until the channel is completely setup. With that, we can drop
the tricky conditional unref of the io channel in the error path.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240222095301.171137-2-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

d13f002620-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Release recv sem_sync earlier

Now that multifd_recv_terminate_threads() is called only once, release
the recv side sem_sync earlier like we do for the send side.

Signed-off-by: F

migration/multifd: Release recv sem_sync earlier

Now that multifd_recv_terminate_threads() is called only once, release
the recv side sem_sync earlier like we do for the send side.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240220224138.24759-6-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

11dd7be520-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Remove p->quit from recv side

Like we did on the sending side, replace the p->quit per-channel flag
with a global atomic 'exiting' flag.

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

migration/multifd: Remove p->quit from recv side

Like we did on the sending side, replace the p->quit per-channel flag
with a global atomic 'exiting' flag.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240220224138.24759-5-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/cirrus/build.yml
/openbmc/qemu/.gitlab-ci.d/container-cross.yml
/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/.gitlab-ci.d/windows.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/Kconfig
/openbmc/qemu/accel/tcg/ldst_atomicity.c.inc
/openbmc/qemu/audio/meson.build
/openbmc/qemu/backends/hostmem.c
/openbmc/qemu/block.c
/openbmc/qemu/block/blkio.c
/openbmc/qemu/block/block-backend.c
/openbmc/qemu/block/crypto.c
/openbmc/qemu/block/crypto.h
/openbmc/qemu/block/qcow.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/chardev/char-parallel.c
/openbmc/qemu/chardev/char-socket.c
/openbmc/qemu/chardev/meson.build
/openbmc/qemu/configs/devices/arm-softmmu/default.mak
/openbmc/qemu/configs/devices/m68k-softmmu/default.mak
/openbmc/qemu/configs/devices/mips-softmmu/common.mak
/openbmc/qemu/configs/devices/nios2-softmmu/default.mak
/openbmc/qemu/configs/devices/riscv32-softmmu/default.mak
/openbmc/qemu/configs/devices/riscv64-softmmu/default.mak
/openbmc/qemu/configs/devices/xtensa-softmmu/default.mak
/openbmc/qemu/configure
/openbmc/qemu/contrib/vhost-user-gpu/virgl.c
/openbmc/qemu/cpu-target.c
/openbmc/qemu/crypto/block-luks.c
/openbmc/qemu/crypto/block.c
/openbmc/qemu/crypto/blockpriv.h
/openbmc/qemu/crypto/cipher-gcrypt.c.inc
/openbmc/qemu/crypto/cipher-nettle.c.inc
/openbmc/qemu/crypto/cipher.c
/openbmc/qemu/disas/hppa.c
/openbmc/qemu/docs/about/build-platforms.rst
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/devel/ci-jobs.rst.inc
/openbmc/qemu/docs/devel/docs.rst
/openbmc/qemu/docs/devel/migration/main.rst
/openbmc/qemu/docs/devel/qapi-code-gen.rst
/openbmc/qemu/docs/devel/qom.rst
/openbmc/qemu/docs/devel/reset.rst
/openbmc/qemu/docs/devel/tcg-ops.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/interop/prl-xml.txt
/openbmc/qemu/docs/interop/vhost-user.rst
/openbmc/qemu/docs/sphinx/qapidoc.py
/openbmc/qemu/docs/system/arm/mps2.rst
/openbmc/qemu/docs/system/arm/raspi.rst
/openbmc/qemu/docs/system/cpu-models-x86-abi.csv
/openbmc/qemu/docs/system/cpu-models-x86.rst.inc
/openbmc/qemu/docs/system/device-emulation.rst
/openbmc/qemu/docs/system/devices/canokey.rst
/openbmc/qemu/docs/system/devices/cxl.rst
/openbmc/qemu/docs/system/devices/vhost-user-input.rst
/openbmc/qemu/docs/system/devices/vhost-user-rng.rst
/openbmc/qemu/docs/system/devices/vhost-user.rst
/openbmc/qemu/docs/system/keys.rst.inc
/openbmc/qemu/gdbstub/gdbstub.c
/openbmc/qemu/gdbstub/internals.h
/openbmc/qemu/gdbstub/user-target.c
/openbmc/qemu/gdbstub/user.c
/openbmc/qemu/hw/acpi/cpu_hotplug.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast10x0.c
/openbmc/qemu/hw/arm/aspeed_ast2400.c
/openbmc/qemu/hw/arm/aspeed_ast2600.c
/openbmc/qemu/hw/arm/aspeed_soc_common.c
/openbmc/qemu/hw/arm/bcm2835_peripherals.c
/openbmc/qemu/hw/arm/bcm2836.c
/openbmc/qemu/hw/arm/bcm2838.c
/openbmc/qemu/hw/arm/bcm2838_peripherals.c
/openbmc/qemu/hw/arm/exynos4210.c
/openbmc/qemu/hw/arm/highbank.c
/openbmc/qemu/hw/arm/integratorcp.c
/openbmc/qemu/hw/arm/meson.build
/openbmc/qemu/hw/arm/mps3r.c
/openbmc/qemu/hw/arm/npcm7xx.c
/openbmc/qemu/hw/arm/raspi.c
/openbmc/qemu/hw/arm/raspi4b.c
/openbmc/qemu/hw/arm/realview.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/smmu-common.c
/openbmc/qemu/hw/arm/smmuv3-internal.h
/openbmc/qemu/hw/arm/smmuv3.c
/openbmc/qemu/hw/arm/stellaris.c
/openbmc/qemu/hw/arm/stm32l4x5_soc.c
/openbmc/qemu/hw/arm/trace-events
/openbmc/qemu/hw/arm/versatilepb.c
/openbmc/qemu/hw/arm/vexpress.c
/openbmc/qemu/hw/arm/virt-acpi-build.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/block/fdc-internal.h
/openbmc/qemu/hw/block/fdc-isa.c
/openbmc/qemu/hw/block/fdc-sysbus.c
/openbmc/qemu/hw/block/m25p80.c
/openbmc/qemu/hw/block/m25p80_sfdp.c
/openbmc/qemu/hw/block/m25p80_sfdp.h
/openbmc/qemu/hw/block/tc58128.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/char/grlib_apbuart.c
/openbmc/qemu/hw/char/parallel-isa.c
/openbmc/qemu/hw/char/parallel.c
/openbmc/qemu/hw/char/serial-isa.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/meson.build
/openbmc/qemu/hw/core/reset.c
/openbmc/qemu/hw/core/resetcontainer.c
/openbmc/qemu/hw/core/sysbus.c
/openbmc/qemu/hw/cxl/cxl-cdat.c
/openbmc/qemu/hw/cxl/cxl-component-utils.c
/openbmc/qemu/hw/cxl/cxl-device-utils.c
/openbmc/qemu/hw/cxl/cxl-events.c
/openbmc/qemu/hw/cxl/cxl-mailbox-utils.c
/openbmc/qemu/hw/display/Kconfig
/openbmc/qemu/hw/display/exynos4210_fimd.c
/openbmc/qemu/hw/display/pl110.c
/openbmc/qemu/hw/display/virtio-gpu-rutabaga.c
/openbmc/qemu/hw/display/virtio-gpu-virgl.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/dma/i82374.c
/openbmc/qemu/hw/dma/i8257.c
/openbmc/qemu/hw/gpio/bcm2838_gpio.c
/openbmc/qemu/hw/gpio/meson.build
/openbmc/qemu/hw/hppa/Kconfig
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/hyperv/hv-balloon.c
/openbmc/qemu/hw/i2c/smbus_slave.c
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/acpi-common.c
/openbmc/qemu/hw/i386/acpi-common.h
/openbmc/qemu/hw/i386/amd_iommu-stub.c
/openbmc/qemu/hw/i386/amd_iommu.c
/openbmc/qemu/hw/i386/amd_iommu.h
/openbmc/qemu/hw/i386/fw_cfg.c
/openbmc/qemu/hw/i386/fw_cfg.h
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/i386/kvm/apic.c
/openbmc/qemu/hw/i386/kvm/ioapic.c
/openbmc/qemu/hw/i386/kvm/xen_evtchn.c
/openbmc/qemu/hw/i386/kvmvapic.c
/openbmc/qemu/hw/i386/meson.build
/openbmc/qemu/hw/i386/microvm.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/i386/pc_sysfw.c
/openbmc/qemu/hw/i386/port92.c
/openbmc/qemu/hw/i386/sgx.c
/openbmc/qemu/hw/i386/x86-iommu.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/i386/xen/xen_apic.c
/openbmc/qemu/hw/ide/Kconfig
/openbmc/qemu/hw/ide/ahci-allwinner.c
/openbmc/qemu/hw/ide/ahci.c
/openbmc/qemu/hw/ide/ahci_internal.h
/openbmc/qemu/hw/ide/atapi.c
/openbmc/qemu/hw/ide/cf.c
/openbmc/qemu/hw/ide/cmd646.c
/openbmc/qemu/hw/ide/core.c
/openbmc/qemu/hw/ide/ich.c
/openbmc/qemu/hw/ide/ide-bus.c
/openbmc/qemu/hw/ide/ide-dev.c
/openbmc/qemu/hw/ide/ide-internal.h
/openbmc/qemu/hw/ide/ioport.c
/openbmc/qemu/hw/ide/isa.c
/openbmc/qemu/hw/ide/macio.c
/openbmc/qemu/hw/ide/meson.build
/openbmc/qemu/hw/ide/microdrive.c
/openbmc/qemu/hw/ide/mmio.c
/openbmc/qemu/hw/ide/pci.c
/openbmc/qemu/hw/ide/piix.c
/openbmc/qemu/hw/ide/sii3112.c
/openbmc/qemu/hw/ide/via.c
/openbmc/qemu/hw/input/meson.build
/openbmc/qemu/hw/input/pckbd.c
/openbmc/qemu/hw/intc/apic.c
/openbmc/qemu/hw/intc/apic_common.c
/openbmc/qemu/hw/intc/grlib_irqmp.c
/openbmc/qemu/hw/intc/s390_flic_kvm.c
/openbmc/qemu/hw/intc/trace-events
/openbmc/qemu/hw/isa/Kconfig
/openbmc/qemu/hw/isa/fdc37m81x-superio.c
/openbmc/qemu/hw/isa/isa-superio.c
/openbmc/qemu/hw/isa/lpc_ich9.c
/openbmc/qemu/hw/isa/meson.build
/openbmc/qemu/hw/isa/pc87312.c
/openbmc/qemu/hw/isa/piix.c
/openbmc/qemu/hw/isa/smc37c669-superio.c
/openbmc/qemu/hw/isa/vt82c686.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/mem/memory-device.c
/openbmc/qemu/hw/mips/Kconfig
/openbmc/qemu/hw/mips/boston.c
/openbmc/qemu/hw/mips/cps.c
/openbmc/qemu/hw/mips/jazz.c
/openbmc/qemu/hw/mips/loongson3_bootp.h
/openbmc/qemu/hw/mips/loongson3_virt.c
/openbmc/qemu/hw/mips/mipssim.c
/openbmc/qemu/hw/misc/Kconfig
/openbmc/qemu/hw/misc/bcm2835_property.c
/openbmc/qemu/hw/misc/lasi.c
/openbmc/qemu/hw/misc/macio/macio.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/mips_itu.c
/openbmc/qemu/hw/misc/mps2-scc.c
/openbmc/qemu/hw/misc/pca9552.c
/openbmc/qemu/hw/misc/pca9554.c
/openbmc/qemu/hw/net/tulip.c
/openbmc/qemu/hw/nubus/meson.build
/openbmc/qemu/hw/nubus/nubus-device.c
/openbmc/qemu/hw/nubus/nubus-virtio-mmio.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/nvram/fw_cfg.c
/openbmc/qemu/hw/pci-bridge/cxl_downstream.c
/openbmc/qemu/hw/pci-bridge/cxl_root_port.c
/openbmc/qemu/hw/pci-bridge/cxl_upstream.c
/openbmc/qemu/hw/pci-host/Kconfig
/openbmc/qemu/hw/pci-host/astro.c
/openbmc/qemu/hw/pci-host/meson.build
/openbmc/qemu/hw/pci-host/ppc440_pcix.c
/openbmc/qemu/hw/pci-host/ppc4xx_pci.c
/openbmc/qemu/hw/pci-host/ppce500.c
/openbmc/qemu/hw/pci-host/raven.c
/openbmc/qemu/hw/pci-host/trace-events
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/ppc/mac_newworld.c
/openbmc/qemu/hw/ppc/meson.build
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_bmc.c
/openbmc/qemu/hw/ppc/pnv_chiptod.c
/openbmc/qemu/hw/ppc/pnv_i2c.c
/openbmc/qemu/hw/ppc/pnv_n1_chiplet.c
/openbmc/qemu/hw/ppc/pnv_nest_pervasive.c
/openbmc/qemu/hw/ppc/ppc440_bamboo.c
/openbmc/qemu/hw/ppc/ppc440_uc.c
/openbmc/qemu/hw/ppc/prep.c
/openbmc/qemu/hw/ppc/sam460ex.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_hcall.c
/openbmc/qemu/hw/ppc/spapr_irq.c
/openbmc/qemu/hw/ppc/spapr_vhyp_mmu.c
/openbmc/qemu/hw/ppc/trace-events
/openbmc/qemu/hw/riscv/Kconfig
/openbmc/qemu/hw/riscv/boot.c
/openbmc/qemu/hw/riscv/numa.c
/openbmc/qemu/hw/riscv/sifive_u.c
/openbmc/qemu/hw/riscv/spike.c
/openbmc/qemu/hw/riscv/virt-acpi-build.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/rtc/m48t59.c
/openbmc/qemu/hw/rtc/pl031.c
/openbmc/qemu/hw/rx/rx-gdbsim.c
/openbmc/qemu/hw/rx/rx62n.c
/openbmc/qemu/hw/scsi/esp.c
/openbmc/qemu/hw/scsi/lsi53c895a.c
/openbmc/qemu/hw/scsi/scsi-bus.c
/openbmc/qemu/hw/scsi/trace-events
/openbmc/qemu/hw/scsi/virtio-scsi.c
/openbmc/qemu/hw/sh4/Kconfig
/openbmc/qemu/hw/sh4/r2d.c
/openbmc/qemu/hw/sh4/sh7750_regs.h
/openbmc/qemu/hw/smbios/smbios.c
/openbmc/qemu/hw/sparc/leon3.c
/openbmc/qemu/hw/sparc/sun4m.c
/openbmc/qemu/hw/sparc64/sparc64.c
/openbmc/qemu/hw/ssi/xlnx-versal-ospi.c
/openbmc/qemu/hw/timer/grlib_gptimer.c
/openbmc/qemu/hw/timer/hpet.c
/openbmc/qemu/hw/timer/pxa2xx_timer.c
/openbmc/qemu/hw/tricore/tricore_testboard.c
/openbmc/qemu/hw/usb/Kconfig
/openbmc/qemu/hw/usb/bus.c
/openbmc/qemu/hw/usb/dev-storage-classic.c
/openbmc/qemu/hw/usb/hcd-ehci-pci.c
/openbmc/qemu/hw/usb/hcd-ehci-sysbus.c
/openbmc/qemu/hw/usb/hcd-ehci.c
/openbmc/qemu/hw/usb/hcd-ehci.h
/openbmc/qemu/hw/usb/hcd-ohci-sysbus.c
/openbmc/qemu/hw/usb/hcd-ohci.c
/openbmc/qemu/hw/usb/hcd-uhci.c
/openbmc/qemu/hw/usb/hcd-uhci.h
/openbmc/qemu/hw/usb/meson.build
/openbmc/qemu/hw/virtio/Kconfig
/openbmc/qemu/hw/virtio/meson.build
/openbmc/qemu/hw/virtio/vhost-user-base.c
/openbmc/qemu/hw/virtio/vhost-user-device-pci.c
/openbmc/qemu/hw/virtio/vhost-user-device.c
/openbmc/qemu/hw/virtio/vhost-user-gpio.c
/openbmc/qemu/hw/virtio/vhost-user-i2c.c
/openbmc/qemu/hw/virtio/vhost-user-input-pci.c
/openbmc/qemu/hw/virtio/vhost-user-input.c
/openbmc/qemu/hw/virtio/vhost-user-rng.c
/openbmc/qemu/hw/virtio/vhost-user-snd-pci.c
/openbmc/qemu/hw/virtio/vhost-user-snd.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/virtio/virtio-mem.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/block/aio.h
/openbmc/qemu/include/crypto/block.h
/openbmc/qemu/include/exec/ioport.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/gdbstub/user.h
/openbmc/qemu/include/hw/acpi/cpu.h
/openbmc/qemu/include/hw/acpi/ich9_tco.h
/openbmc/qemu/include/hw/acpi/memory_hotplug.h
/openbmc/qemu/include/hw/arm/allwinner-a10.h
/openbmc/qemu/include/hw/arm/allwinner-r40.h
/openbmc/qemu/include/hw/arm/aspeed_soc.h
/openbmc/qemu/include/hw/arm/bcm2835_peripherals.h
/openbmc/qemu/include/hw/arm/bcm2836.h
/openbmc/qemu/include/hw/arm/bcm2838.h
/openbmc/qemu/include/hw/arm/bcm2838_peripherals.h
/openbmc/qemu/include/hw/arm/omap.h
/openbmc/qemu/include/hw/arm/raspberrypi-fw-defs.h
/openbmc/qemu/include/hw/arm/raspi_platform.h
/openbmc/qemu/include/hw/arm/smmu-common.h
/openbmc/qemu/include/hw/arm/stm32l4x5_soc.h
/openbmc/qemu/include/hw/arm/virt.h
/openbmc/qemu/include/hw/arm/xlnx-zynqmp.h
/openbmc/qemu/include/hw/block/fdc.h
/openbmc/qemu/include/hw/char/grlib_uart.h
/openbmc/qemu/include/hw/char/parallel-isa.h
/openbmc/qemu/include/hw/char/parallel.h
/openbmc/qemu/include/hw/char/serial.h
/openbmc/qemu/include/hw/core/resetcontainer.h
/openbmc/qemu/include/hw/cxl/cxl_cdat.h
/openbmc/qemu/include/hw/cxl/cxl_component.h
/openbmc/qemu/include/hw/cxl/cxl_device.h
/openbmc/qemu/include/hw/cxl/cxl_events.h
/openbmc/qemu/include/hw/cxl/cxl_pci.h
/openbmc/qemu/include/hw/display/bcm2835_fb.h
/openbmc/qemu/include/hw/dma/i8257.h
/openbmc/qemu/include/hw/elf_ops.h
/openbmc/qemu/include/hw/firmware/smbios.h
/openbmc/qemu/include/hw/gpio/bcm2838_gpio.h
/openbmc/qemu/include/hw/i2c/pnv_i2c_regs.h
/openbmc/qemu/include/hw/i386/apic.h
/openbmc/qemu/include/hw/i386/apic_internal.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/i386/x86.h
/openbmc/qemu/include/hw/ide/ahci-pci.h
/openbmc/qemu/include/hw/ide/ahci-sysbus.h
/openbmc/qemu/include/hw/ide/ahci.h
/openbmc/qemu/include/hw/ide/ide-bus.h
/openbmc/qemu/include/hw/ide/ide-dev.h
/openbmc/qemu/include/hw/ide/ide-dma.h
/openbmc/qemu/include/hw/ide/pci.h
/openbmc/qemu/include/hw/input/i8042.h
/openbmc/qemu/include/hw/intc/grlib_irqmp.h
/openbmc/qemu/include/hw/misc/lasi.h
/openbmc/qemu/include/hw/misc/macio/macio.h
/openbmc/qemu/include/hw/misc/mips_itu.h
/openbmc/qemu/include/hw/misc/mps2-scc.h
/openbmc/qemu/include/hw/misc/pca9552.h
/openbmc/qemu/include/hw/misc/pca9554.h
/openbmc/qemu/include/hw/misc/pca9554_regs.h
/openbmc/qemu/include/hw/net/npcm_gmac.h
/openbmc/qemu/include/hw/nubus/nubus-virtio-mmio.h
/openbmc/qemu/include/hw/nubus/nubus.h
/openbmc/qemu/include/hw/pci-host/astro.h
/openbmc/qemu/include/hw/pci-host/ppc4xx.h
/openbmc/qemu/include/hw/ppc/pnv.h
/openbmc/qemu/include/hw/ppc/pnv_chip.h
/openbmc/qemu/include/hw/ppc/pnv_chiptod.h
/openbmc/qemu/include/hw/ppc/pnv_n1_chiplet.h
/openbmc/qemu/include/hw/ppc/pnv_nest_pervasive.h
/openbmc/qemu/include/hw/ppc/pnv_xscom.h
/openbmc/qemu/include/hw/ppc/ppc4xx.h
/openbmc/qemu/include/hw/ppc/spapr.h
/openbmc/qemu/include/hw/ppc/spapr_irq.h
/openbmc/qemu/include/hw/qdev-core.h
/openbmc/qemu/include/hw/riscv/virt.h
/openbmc/qemu/include/hw/rx/rx62n.h
/openbmc/qemu/include/hw/scsi/esp.h
/openbmc/qemu/include/hw/scsi/scsi.h
/openbmc/qemu/include/hw/sysbus.h
/openbmc/qemu/include/hw/timer/grlib_gptimer.h
/openbmc/qemu/include/hw/timer/hpet.h
/openbmc/qemu/include/hw/tricore/tricore_testdevice.h
/openbmc/qemu/include/hw/usb.h
/openbmc/qemu/include/hw/virtio/vhost-user-base.h
/openbmc/qemu/include/hw/virtio/vhost-user-gpio.h
/openbmc/qemu/include/hw/virtio/vhost-user-i2c.h
/openbmc/qemu/include/hw/virtio/vhost-user-rng.h
/openbmc/qemu/include/hw/virtio/vhost-user-snd.h
/openbmc/qemu/include/hw/virtio/vhost-vsock-common.h
/openbmc/qemu/include/hw/virtio/virtio-blk.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/hw/virtio/virtio-input.h
/openbmc/qemu/include/net/filter.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/qom/object.h
/openbmc/qemu/include/sysemu/os-posix.h
/openbmc/qemu/include/sysemu/os-win32.h
/openbmc/qemu/include/sysemu/reset.h
/openbmc/qemu/include/tcg/tcg-cond.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/include/user/syscall-trace.h
/openbmc/qemu/io/channel-tls.c
/openbmc/qemu/io/trace-events
/openbmc/qemu/iothread.c
/openbmc/qemu/linux-user/aarch64/target_prctl.h
/openbmc/qemu/meson.build
multifd.c
/openbmc/qemu/monitor/hmp-cmds-target.c
/openbmc/qemu/os-posix.c
/openbmc/qemu/pc-bios/README
/openbmc/qemu/pc-bios/edk2-aarch64-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-arm-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-i386-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-i386-secure-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-riscv-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-riscv-vars.fd.bz2
/openbmc/qemu/pc-bios/edk2-x86_64-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-x86_64-microvm.fd.bz2
/openbmc/qemu/pc-bios/edk2-x86_64-secure-code.fd.bz2
/openbmc/qemu/pc-bios/hppa-firmware.img
/openbmc/qemu/pc-bios/hppa-firmware64.img
/openbmc/qemu/pc-bios/skiboot.lid
/openbmc/qemu/qapi/acpi.json
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/block-export.json
/openbmc/qemu/qapi/block.json
/openbmc/qemu/qapi/char.json
/openbmc/qemu/qapi/common.json
/openbmc/qemu/qapi/control.json
/openbmc/qemu/qapi/crypto.json
/openbmc/qemu/qapi/dump.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/misc-target.json
/openbmc/qemu/qapi/misc.json
/openbmc/qemu/qapi/net.json
/openbmc/qemu/qapi/pci.json
/openbmc/qemu/qapi/pragma.json
/openbmc/qemu/qapi/qdev.json
/openbmc/qemu/qapi/qmp-dispatch.c
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/rdma.json
/openbmc/qemu/qapi/replay.json
/openbmc/qemu/qapi/rocker.json
/openbmc/qemu/qapi/run-state.json
/openbmc/qemu/qapi/sockets.json
/openbmc/qemu/qapi/stats.json
/openbmc/qemu/qapi/tpm.json
/openbmc/qemu/qapi/trace.json
/openbmc/qemu/qapi/transaction.json
/openbmc/qemu/qapi/ui.json
/openbmc/qemu/qapi/virtio.json
/openbmc/qemu/qapi/yank.json
/openbmc/qemu/qemu-nbd.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/qapi-schema.json
/openbmc/qemu/qom/object.c
/openbmc/qemu/roms/edk2
/openbmc/qemu/roms/seabios-hppa
/openbmc/qemu/scripts/ci/gitlab-pipeline-status
/openbmc/qemu/scripts/cpu-x86-uarch-abi.py
/openbmc/qemu/scripts/qapi/parser.py
/openbmc/qemu/scripts/qapi/schema.py
/openbmc/qemu/scripts/qapi/source.py
/openbmc/qemu/system/bootdevice.c
/openbmc/qemu/system/ioport.c
/openbmc/qemu/system/memory_ldst.c.inc
/openbmc/qemu/system/physmem.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/alpha/translate.c
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/tcg/cpu32.c
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/arm/tcg/sme_helper.c
/openbmc/qemu/target/arm/tcg/sve_helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.h
/openbmc/qemu/target/arm/tcg/translate-sme.c
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/hexagon/idef-parser/macros.inc
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/sys_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/cpu-sysemu.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/monitor.c
/openbmc/qemu/target/i386/tcg/sysemu/misc_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/i386/whpx/whpx-apic.c
/openbmc/qemu/target/m68k/Kconfig
/openbmc/qemu/target/m68k/cpu.c
/openbmc/qemu/target/m68k/cpu.h
/openbmc/qemu/target/m68k/op_helper.c
/openbmc/qemu/target/m68k/translate.c
/openbmc/qemu/target/mips/Kconfig
/openbmc/qemu/target/mips/cpu.h
/openbmc/qemu/target/mips/internal.h
/openbmc/qemu/target/mips/sysemu/machine.c
/openbmc/qemu/target/mips/tcg/sysemu/cp0_helper.c
/openbmc/qemu/target/mips/tcg/sysemu_helper.h.inc
/openbmc/qemu/target/mips/tcg/translate.c
/openbmc/qemu/target/mips/tcg/translate.h
/openbmc/qemu/target/nios2/Kconfig
/openbmc/qemu/target/ppc/cpu-models.c
/openbmc/qemu/target/ppc/cpu.h
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/gdbstub.c
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/mmu_helper.c
/openbmc/qemu/target/ppc/ppc-qmp-cmds.c
/openbmc/qemu/target/ppc/tcg-stub.c
/openbmc/qemu/target/ppc/timebase_helper.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate/vmx-impl.c.inc
/openbmc/qemu/target/ppc/translate/vsx-impl.c.inc
/openbmc/qemu/target/riscv/Kconfig
/openbmc/qemu/target/riscv/cpu-qom.h
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_bits.h
/openbmc/qemu/target/riscv/cpu_cfg.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/riscv/debug.c
/openbmc/qemu/target/riscv/gdbstub.c
/openbmc/qemu/target/riscv/insn_trans/trans_rva.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvbf16.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvv.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvvk.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_xthead.c.inc
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/riscv/kvm/kvm_riscv.h
/openbmc/qemu/target/riscv/machine.c
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/riscv/vector_helper.c
/openbmc/qemu/target/s390x/cpu-dump.c
/openbmc/qemu/target/s390x/cpu_features_def.h.inc
/openbmc/qemu/target/s390x/gdbstub.c
/openbmc/qemu/target/s390x/helper.c
/openbmc/qemu/target/s390x/helper.h
/openbmc/qemu/target/s390x/kvm/kvm.c
/openbmc/qemu/target/s390x/tcg/excp_helper.c
/openbmc/qemu/target/s390x/tcg/insn-data.h.inc
/openbmc/qemu/target/s390x/tcg/int_helper.c
/openbmc/qemu/target/s390x/tcg/misc_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sparc/asi.h
/openbmc/qemu/target/sparc/cpu.h
/openbmc/qemu/target/sparc/helper.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/xtensa/Kconfig
/openbmc/qemu/tcg/aarch64/tcg-target-con-set.h
/openbmc/qemu/tcg/aarch64/tcg-target-con-str.h
/openbmc/qemu/tcg/aarch64/tcg-target.c.inc
/openbmc/qemu/tcg/aarch64/tcg-target.h
/openbmc/qemu/tcg/arm/tcg-target.c.inc
/openbmc/qemu/tcg/arm/tcg-target.h
/openbmc/qemu/tcg/i386/tcg-target-con-set.h
/openbmc/qemu/tcg/i386/tcg-target-con-str.h
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/mips/tcg-target.c.inc
/openbmc/qemu/tcg/mips/tcg-target.h
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tcg/ppc/tcg-target-con-set.h
/openbmc/qemu/tcg/ppc/tcg-target-con-str.h
/openbmc/qemu/tcg/ppc/tcg-target.c.inc
/openbmc/qemu/tcg/ppc/tcg-target.h
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target-con-set.h
/openbmc/qemu/tcg/s390x/tcg-target-con-str.h
/openbmc/qemu/tcg/s390x/tcg-target.c.inc
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/sparc64/tcg-target.c.inc
/openbmc/qemu/tcg/sparc64/tcg-target.h
/openbmc/qemu/tcg/tcg-internal.h
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tci.c
/openbmc/qemu/tcg/tci/tcg-target.c.inc
/openbmc/qemu/tcg/tci/tcg-target.h
/openbmc/qemu/tests/avocado/acpi-bits/bits-tests/smbios.py2
/openbmc/qemu/tests/avocado/boot_linux.py
/openbmc/qemu/tests/avocado/boot_linux_console.py
/openbmc/qemu/tests/avocado/mem-addr-space-check.py
/openbmc/qemu/tests/avocado/migration.py
/openbmc/qemu/tests/avocado/ppc_hv_tests.py
/openbmc/qemu/tests/avocado/ppc_powernv.py
/openbmc/qemu/tests/avocado/ppc_pseries.py
/openbmc/qemu/tests/avocado/reverse_debugging.py
/openbmc/qemu/tests/data/acpi/q35/DSDT.cxl
/openbmc/qemu/tests/data/acpi/q35/IVRS.ivrs
/openbmc/qemu/tests/data/acpi/virt/FACP
/openbmc/qemu/tests/data/acpi/virt/GTDT
/openbmc/qemu/tests/docker/dockerfiles/opensuse-leap.docker
/openbmc/qemu/tests/lcitool/mappings.yml
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/qapi-schema/doc-bad-alternate-member.err
/openbmc/qemu/tests/qapi-schema/doc-bad-alternate-member.json
/openbmc/qemu/tests/qapi-schema/doc-bad-boxed-command-arg.err
/openbmc/qemu/tests/qapi-schema/doc-bad-command-arg.err
/openbmc/qemu/tests/qapi-schema/doc-bad-enum-member.err
/openbmc/qemu/tests/qapi-schema/doc-bad-event-arg.err
/openbmc/qemu/tests/qapi-schema/doc-bad-feature.err
/openbmc/qemu/tests/qapi-schema/doc-bad-union-member.err
/openbmc/qemu/tests/qapi-schema/doc-duplicate-features.err
/openbmc/qemu/tests/qapi-schema/doc-duplicate-features.json
/openbmc/qemu/tests/qapi-schema/doc-duplicate-features.out
/openbmc/qemu/tests/qapi-schema/doc-duplicated-arg.err
/openbmc/qemu/tests/qapi-schema/doc-duplicated-return.err
/openbmc/qemu/tests/qapi-schema/doc-duplicated-return.json
/openbmc/qemu/tests/qapi-schema/doc-duplicated-since.err
/openbmc/qemu/tests/qapi-schema/doc-duplicated-since.json
/openbmc/qemu/tests/qapi-schema/doc-empty-arg.err
/openbmc/qemu/tests/qapi-schema/doc-empty-features.err
/openbmc/qemu/tests/qapi-schema/doc-empty-features.json
/openbmc/qemu/tests/qapi-schema/doc-empty-features.out
/openbmc/qemu/tests/qapi-schema/doc-empty-section.err
/openbmc/qemu/tests/qapi-schema/doc-good.json
/openbmc/qemu/tests/qapi-schema/doc-good.out
/openbmc/qemu/tests/qapi-schema/doc-good.txt
/openbmc/qemu/tests/qapi-schema/doc-invalid-return.err
/openbmc/qemu/tests/qapi-schema/doc-invalid-return.json
/openbmc/qemu/tests/qapi-schema/doc-non-first-section.err
/openbmc/qemu/tests/qapi-schema/doc-non-first-section.json
/openbmc/qemu/tests/qapi-schema/doc-non-first-section.out
/openbmc/qemu/tests/qapi-schema/meson.build
/openbmc/qemu/tests/qapi-schema/test-qapi.py
/openbmc/qemu/tests/qemu-iotests/144
/openbmc/qemu/tests/qemu-iotests/144.out
/openbmc/qemu/tests/qemu-iotests/210.out
/openbmc/qemu/tests/qemu-iotests/check
/openbmc/qemu/tests/qemu-iotests/testenv.py
/openbmc/qemu/tests/qemu-iotests/tests/luks-detached-header
/openbmc/qemu/tests/qemu-iotests/tests/luks-detached-header.out
/openbmc/qemu/tests/qtest/boot-serial-test.c
/openbmc/qemu/tests/qtest/cdrom-test.c
/openbmc/qemu/tests/qtest/dbus-display-test.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/npcm7xx_emc-test.c
/openbmc/qemu/tests/qtest/npcm_gmac-test.c
/openbmc/qemu/tests/qtest/pca9552-test.c
/openbmc/qemu/tests/qtest/pnv-host-i2c-test.c
/openbmc/qemu/tests/qtest/pnv-xscom-test.c
/openbmc/qemu/tests/qtest/pnv-xscom.h
/openbmc/qemu/tests/qtest/stm32l4x5_exti-test.c
/openbmc/qemu/tests/tcg/multiarch/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/catch-syscalls.c
/openbmc/qemu/tests/tcg/multiarch/gdbstub/catch-syscalls.py
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/tests/tcg/s390x/cvb.c
/openbmc/qemu/tests/tcg/s390x/cvd.c
/openbmc/qemu/tests/unit/test-char.c
/openbmc/qemu/tests/unit/test-crypto-block.c
/openbmc/qemu/tests/unit/test-crypto-cipher.c
/openbmc/qemu/tests/unit/test-util-filemonitor.c
/openbmc/qemu/tests/vm/basevm.py
/openbmc/qemu/tests/vm/freebsd
/openbmc/qemu/ui/clipboard.c
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/vnc.c
/openbmc/qemu/ui/vnc.h
/openbmc/qemu/util/meson.build
/openbmc/qemu/util/oslib-posix.c
/openbmc/qemu/util/oslib-win32.c
/openbmc/qemu/util/qemu-sockets.c
93fa9dc206-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Add a synchronization point for channel creation

It is possible that one of the multifd channels fails to be created at
multifd_new_send_channel_async() while the rest of the chan

migration/multifd: Add a synchronization point for channel creation

It is possible that one of the multifd channels fails to be created at
multifd_new_send_channel_async() while the rest of the channel
creation tasks are still in flight.

This could lead to multifd_save_cleanup() executing the
qemu_thread_join() loop too early and not waiting for the threads
which haven't been created yet, leading to the freeing of resources
that the newly created threads will try to access and crash.

Add a synchronization point after which there will be no attempts at
thread creation and therefore calling multifd_save_cleanup() past that
point will ensure it properly waits for the threads.

A note about performance: Prior to this patch, if a channel took too
long to be established, other channels could finish connecting first
and already start taking load. Now we're bounded by the
slowest-connecting channel.

Reported-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240206215118.6171-7-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

2576ae4806-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Unify multifd and TLS connection paths

During multifd channel creation (multifd_send_new_channel_async) when
TLS is enabled, the multifd_channel_connect function is called twice,

migration/multifd: Unify multifd and TLS connection paths

During multifd channel creation (multifd_send_new_channel_async) when
TLS is enabled, the multifd_channel_connect function is called twice,
once to create the TLS handshake thread and another time after the
asynchrounous TLS handshake has finished.

This creates a slightly confusing call stack where
multifd_channel_connect() is called more times than the number of
channels. It also splits error handling between the two callers of
multifd_channel_connect() causing some code duplication. Lastly, it
gets in the way of having a single point to determine whether all
channel creation tasks have been initiated.

Refactor the code to move the reentrancy one level up at the
multifd_new_send_channel_async() level, de-duplicating the error
handling and allowing for the next patch to introduce a
synchronization point common to all the multifd channel creation,
regardless of TLS.

Note that the previous code would never fail once p->c had been set.
This patch changes this assumption, which affects refcounting, so add
comments around object_unref to explain the situation.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240206215118.6171-6-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

dd904bc106-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Move multifd_send_setup into migration thread

We currently have an unfavorable situation around multifd channels
creation and the migration thread execution.

We create the multif

migration/multifd: Move multifd_send_setup into migration thread

We currently have an unfavorable situation around multifd channels
creation and the migration thread execution.

We create the multifd channels with qio_channel_socket_connect_async
-> qio_task_run_in_thread, but only connect them at the
multifd_new_send_channel_async callback, called from
qio_task_complete, which is registered as a glib event.

So at multifd_send_setup() we create the channels, but they will only
be actually usable after the whole multifd_send_setup() calling stack
returns back to the main loop. Which means that the migration thread
is already up and running without any possibility for the multifd
channels to be ready on time.

We currently rely on the channels-ready semaphore blocking
multifd_send_sync_main() until channels start to come up and release
it. However there have been bugs recently found when a channel's
creation fails and multifd_send_cleanup() is allowed to run while
other channels are still being created.

Let's start to organize this situation by moving the
multifd_send_setup() call into the migration thread. That way we
unblock the main-loop to dispatch the completion callbacks and
actually have a chance of getting the multifd channels ready for when
the migration thread needs them.

The next patches will deal with the synchronization aspects.

Note that this takes multifd_send_setup() out of the BQL.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240206215118.6171-5-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

bd8b0a8f06-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Move multifd_send_setup error handling in to the function

Hide the error handling inside multifd_send_setup to make it cleaner
for the next patch to move the function around.

Rev

migration/multifd: Move multifd_send_setup error handling in to the function

Hide the error handling inside multifd_send_setup to make it cleaner
for the next patch to move the function around.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240206215118.6171-4-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

a2a63c4a06-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Remove p->running

We currently only need p->running to avoid calling qemu_thread_join()
on a non existent thread if the thread has never been created.

However, there are at least

migration/multifd: Remove p->running

We currently only need p->running to avoid calling qemu_thread_join()
on a non existent thread if the thread has never been created.

However, there are at least two bugs in this logic:

1) On the sending side, p->running is set too early and
qemu_thread_create() can be skipped due to an error during TLS
handshake, leaving the flag set and leading to a crash when
multifd_send_cleanup() calls qemu_thread_join().

2) During exit, the multifd thread clears the flag while holding the
channel lock. The counterpart at multifd_send_cleanup() reads the flag
outside of the lock and might free the mutex while the multifd thread
still has it locked.

Fix the first issue by setting the flag right before creating the
thread. Rename it from p->running to p->thread_created to clarify its
usage.

Fix the second issue by not clearing the flag at the multifd thread
exit. We don't have any use for that.

Note that these bugs are straight-forward logic issues and not race
conditions. There is still a gap for races to affect this code due to
multifd_send_cleanup() being allowed to run concurrently with the
thread creation loop. This issue is solved in the next patches.

Cc: qemu-stable <qemu-stable@nongnu.org>
Fixes: 29647140157a ("migration/tls: add support for multifd tls-handshake")
Reported-by: Avihai Horon <avihaih@nvidia.com>
Reported-by: chenyuhui5@huawei.com
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240206215118.6171-3-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

e1921f1006-Feb-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Join the TLS thread

We're currently leaking the resources of the TLS thread by not joining
it and also overwriting the p->thread pointer altogether.

Fixes: a1af605bd5 ("migration

migration/multifd: Join the TLS thread

We're currently leaking the resources of the TLS thread by not joining
it and also overwriting the p->thread pointer altogether.

Fixes: a1af605bd5 ("migration/multifd: fix hangup with TLS-Multifd due to blocking handshake")
Cc: qemu-stable <qemu-stable@nongnu.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240206215118.6171-2-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

12345678910>>...96