History log of /openbmc/qemu/migration/ (Results 126 – 150 of 2385)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
16ecd25a20-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Add Error** argument to ram_state_init()

Since the return value not exploited, follow the recommendations of
qapi/error.h and change it to a bool

Signed-off-by: Cédric Le Goater <clg@red

migration: Add Error** argument to ram_state_init()

Since the return value not exploited, follow the recommendations of
qapi/error.h and change it to a bool

Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240320064911.545001-13-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

639ec3fb20-Mar-2024 Cédric Le Goater <clg@redhat.com>

memory: Add Error** argument to the global_dirty_log routines

Now that the log_global*() handlers take an Error** parameter and
return a bool, do the same for memory_global_dirty_log_start() and
mem

memory: Add Error** argument to the global_dirty_log routines

Now that the log_global*() handlers take an Error** parameter and
return a bool, do the same for memory_global_dirty_log_start() and
memory_global_dirty_log_stop(). The error is reported in the callers
for now and it will be propagated in the call stack in the next
changes.

To be noted a functional change in ram_init_bitmaps(), if the dirty
pages logger fails to start, there is no need to synchronize the dirty
pages bitmaps. colo_incoming_start_dirty_log() could be modified in a
similar way.

Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Paul Durrant <paul@xen.org>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Hyman Huang <yong.huang@smartx.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Acked-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-12-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

92c20b2f20-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Introduce ram_bitmaps_destroy()

We will use it in ram_init_bitmaps() to clear the allocated bitmaps when
support for error reporting is added to memory_global_dirty_log_start().

Signed-o

migration: Introduce ram_bitmaps_destroy()

We will use it in ram_init_bitmaps() to clear the allocated bitmaps when
support for error reporting is added to memory_global_dirty_log_start().

Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240320064911.545001-11-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

e4fa064d20-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Add Error** argument to .load_setup() handler

This will be useful to report errors at a higher level, mostly in VFIO
today.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Review

migration: Add Error** argument to .load_setup() handler

This will be useful to report errors at a higher level, mostly in VFIO
today.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-9-clg@redhat.com
[peterx: drop comment for ERRP_GUARD, per Markus]
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

01c3ac6820-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Add Error** argument to .save_setup() handler

The purpose is to record a potential error in the migration stream if
qemu_savevm_state_setup() fails. Most of the current .save_setup()
hand

migration: Add Error** argument to .save_setup() handler

The purpose is to record a potential error in the migration stream if
qemu_savevm_state_setup() fails. Most of the current .save_setup()
handlers can be modified to use the Error argument instead of managing
their own and calling locally error_report().

Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Harsh Prateek Bora <harshpb@linux.ibm.com>
Cc: Halil Pasic <pasic@linux.ibm.com>
Cc: Thomas Huth <thuth@redhat.com>
Cc: Eric Blake <eblake@redhat.com>
Cc: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Cc: John Snow <jsnow@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-8-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

057a200920-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Add Error** argument to qemu_savevm_state_setup()

This prepares ground for the changes coming next which add an Error**
argument to the .save_setup() handler. Callers of qemu_savevm_state

migration: Add Error** argument to qemu_savevm_state_setup()

This prepares ground for the changes coming next which add an Error**
argument to the .save_setup() handler. Callers of qemu_savevm_state_setup()
now handle the error and fail earlier setting the migration state from
MIGRATION_STATUS_SETUP to MIGRATION_STATUS_FAILED.

In qemu_savevm_state(), move the cleanup to preserve the error
reported by .save_setup() handlers.

Since the previous behavior was to ignore errors at this step of
migration, this change should be examined closely to check that
cleanups are still correctly done.

Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-7-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

6138d43a20-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Add Error** argument to vmstate_save()

This will prepare ground for future changes adding an Error** argument
to qemu_savevm_state_setup().

Reviewed-by: Prasad Pandit <pjp@fedoraproject.

migration: Add Error** argument to vmstate_save()

This will prepare ground for future changes adding an Error** argument
to qemu_savevm_state_setup().

Reviewed-by: Prasad Pandit <pjp@fedoraproject.org>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-6-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

76936bbc20-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Always report an error in ram_save_setup()

This will prepare ground for future changes adding an Error** argument
to the save_setup() handler. We need to make sure that on failure,
ram_sa

migration: Always report an error in ram_save_setup()

This will prepare ground for future changes adding an Error** argument
to the save_setup() handler. We need to make sure that on failure,
ram_save_setup() sets a new error.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-5-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

150da48c20-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Always report an error in block_save_setup()

This will prepare ground for future changes adding an Error** argument
to the save_setup() handler. We need to make sure that on failure,
bloc

migration: Always report an error in block_save_setup()

This will prepare ground for future changes adding an Error** argument
to the save_setup() handler. We need to make sure that on failure,
block_save_setup() always sets a new error.

Cc: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20240320064911.545001-4-clg@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/VERSION
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/backends/cryptodev-builtin.c
/openbmc/qemu/disas/nanomips.c
/openbmc/qemu/docs/system/device-emulation.rst
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/block/nand.c
/openbmc/qemu/hw/block/vhost-user-blk.c
/openbmc/qemu/hw/char/virtio-serial-bus.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/isa/vt82c686.c
/openbmc/qemu/hw/misc/applesmc.c
/openbmc/qemu/hw/net/lan9118.c
/openbmc/qemu/hw/net/net_tx_pkt.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/pci-host/ppc440_pcix.c
/openbmc/qemu/hw/s390x/s390-stattrib-kvm.c
/openbmc/qemu/hw/s390x/s390-stattrib.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/usb/dev-storage-classic.c
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/virtio/vdpa-dev.c
/openbmc/qemu/hw/virtio/virtio-crypto.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/exec/translator.h
/openbmc/qemu/include/hw/audio/virtio-snd.h
/openbmc/qemu/include/hw/s390x/storage-attributes.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/include/standard-headers/linux/virtio_pci.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/meson.build
block.c
/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-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/qemu-options.hx
/openbmc/qemu/roms/Makefile
/openbmc/qemu/roms/edk2-version
/openbmc/qemu/system/qdev-monitor.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/sys_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/m68k/cpu.c
/openbmc/qemu/target/m68k/cpu.h
/openbmc/qemu/target/m68k/fpu_helper.c
/openbmc/qemu/target/m68k/helper.c
/openbmc/qemu/target/m68k/helper.h
/openbmc/qemu/target/m68k/translate.c
/openbmc/qemu/target/microblaze/translate.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sh4/cpu.h
/openbmc/qemu/target/sh4/helper.h
/openbmc/qemu/target/sh4/op_helper.c
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tests/qtest/migration-helpers.c
/openbmc/qemu/tests/qtest/migration-helpers.h
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/test-2150.c
/openbmc/qemu/tests/tcg/sh4/Makefile.target
/openbmc/qemu/tests/tcg/sh4/test-macl.c
/openbmc/qemu/tests/tcg/sh4/test-macw.c
857f504c08-Apr-2024 Paolo Bonzini <pbonzini@redhat.com>

colo: move stubs out of stubs/

Since the colo stubs are needed exactly when the build options are not
enabled, move them together with the code they stub.

Signed-off-by: Paolo Bonzini <pbonzini@red

colo: move stubs out of stubs/

Since the colo stubs are needed exactly when the build options are not
enabled, move them together with the code they stub.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-16-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/Makefile
/openbmc/qemu/VERSION
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/backends/cryptodev-builtin.c
/openbmc/qemu/disas/nanomips.c
/openbmc/qemu/docs/system/device-emulation.rst
/openbmc/qemu/ebpf/meson.build
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/block/nand.c
/openbmc/qemu/hw/block/vhost-user-blk.c
/openbmc/qemu/hw/char/virtio-serial-bus.c
/openbmc/qemu/hw/core/meson.build
/openbmc/qemu/hw/display/meson.build
/openbmc/qemu/hw/display/ramfb-stubs.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/isa/vt82c686.c
/openbmc/qemu/hw/mem/memory-device-stubs.c
/openbmc/qemu/hw/mem/meson.build
/openbmc/qemu/hw/misc/applesmc.c
/openbmc/qemu/hw/net/lan9118.c
/openbmc/qemu/hw/net/net_tx_pkt.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/pci-host/ppc440_pcix.c
/openbmc/qemu/hw/sd/sdhci.c
/openbmc/qemu/hw/usb/bus-stub.c
/openbmc/qemu/hw/usb/dev-storage-classic.c
/openbmc/qemu/hw/usb/meson.build
/openbmc/qemu/hw/virtio/meson.build
/openbmc/qemu/hw/virtio/vdpa-dev.c
/openbmc/qemu/hw/virtio/virtio-crypto.c
/openbmc/qemu/hw/virtio/virtio-md-stubs.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/include/exec/translator.h
/openbmc/qemu/include/hw/audio/virtio-snd.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/include/qemu/config-file.h
/openbmc/qemu/include/standard-headers/linux/virtio_pci.h
/openbmc/qemu/include/sysemu/sysemu.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/meson.build
colo-stubs.c
meson.build
/openbmc/qemu/monitor/meson.build
/openbmc/qemu/monitor/qemu-config-qmp.c
/openbmc/qemu/net/colo-stubs.c
/openbmc/qemu/net/meson.build
/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-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/qemu-options.hx
/openbmc/qemu/roms/Makefile
/openbmc/qemu/roms/edk2-version
/openbmc/qemu/semihosting/meson.build
/openbmc/qemu/semihosting/stubs-all.c
/openbmc/qemu/semihosting/stubs-system.c
/openbmc/qemu/stubs/hotplug-stubs.c
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/stubs/monitor-core.c
/openbmc/qemu/stubs/qdev.c
/openbmc/qemu/stubs/qtest.c
/openbmc/qemu/system/qdev-monitor.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/sys_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/m68k/cpu.c
/openbmc/qemu/target/m68k/cpu.h
/openbmc/qemu/target/m68k/fpu_helper.c
/openbmc/qemu/target/m68k/helper.c
/openbmc/qemu/target/m68k/helper.h
/openbmc/qemu/target/m68k/translate.c
/openbmc/qemu/target/microblaze/translate.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sh4/cpu.h
/openbmc/qemu/target/sh4/helper.h
/openbmc/qemu/target/sh4/op_helper.c
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tests/meson.build
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/test-2150.c
/openbmc/qemu/tests/tcg/sh4/Makefile.target
/openbmc/qemu/tests/tcg/sh4/test-macl.c
/openbmc/qemu/tests/tcg/sh4/test-macw.c
/openbmc/qemu/tests/unit/meson.build
/openbmc/qemu/util/meson.build
/openbmc/qemu/util/qemu-config.c
7afbdada04-Apr-2024 Wei Wang <wei.w.wang@intel.com>

migration/postcopy: ensure preempt channel is ready before loading states

Before loading the guest states, ensure that the preempt channel has been
ready to use, as some of the states (e.g. via virt

migration/postcopy: ensure preempt channel is ready before loading states

Before loading the guest states, ensure that the preempt channel has been
ready to use, as some of the states (e.g. via virtio_load) might trigger
page faults that will be handled through the preempt channel. So yield to
the main thread in the case that the channel create event hasn't been
dispatched.

Cc: qemu-stable <qemu-stable@nongnu.org>
Fixes: 9358982744 ("migration: Send requested page directly in rp-return thread")
Originally-by: Lei Wang <lei4.wang@intel.com>
Link: https://lore.kernel.org/all/9aa5d1be-7801-40dd-83fd-f7e041ced249@intel.com/T/
Signed-off-by: Lei Wang <lei4.wang@intel.com>
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
Link: https://lore.kernel.org/r/20240405034056.23933-1-wei.w.wang@intel.com
[peterx: add a todo section, add Fixes and copy stable for 8.0+]
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/cirrus.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/block/io.c
/openbmc/qemu/docs/devel/atomics.rst
/openbmc/qemu/docs/devel/ci-jobs.rst.inc
/openbmc/qemu/docs/devel/clocks.rst
/openbmc/qemu/docs/system/arm/sbsa.rst
/openbmc/qemu/docs/system/i386/sgx.rst
/openbmc/qemu/fpu/softfloat-specialize.c.inc
/openbmc/qemu/gdbstub/internals.h
/openbmc/qemu/gdbstub/system.c
/openbmc/qemu/hmp-commands.hx
/openbmc/qemu/hw/arm/raspi4b.c
/openbmc/qemu/hw/arm/smmu-common.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/display/vga.c
/openbmc/qemu/hw/i386/kvm/xen_evtchn.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/intc/arm_gicv3_cpuif.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_nested.c
/openbmc/qemu/hw/scsi/esp.c
/openbmc/qemu/hw/scsi/lsi53c895a.c
/openbmc/qemu/hw/usb/dev-audio.c
savevm.c
/openbmc/qemu/plugins/loader.c
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/insns.decode
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/sys_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/hvf/hvf.c
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/gdbstub.c
/openbmc/qemu/target/ppc/mmu-radix64.c
/openbmc/qemu/tests/avocado/ppc_hv_tests.py
/openbmc/qemu/tests/qtest/libqos/ahci.c
/openbmc/qemu/tests/qtest/libqos/ahci.h
/openbmc/qemu/tests/qtest/stm32l4x5_gpio-test.c
/openbmc/qemu/tests/qtest/virtio-9p-test.c
d0ad271a28-Mar-2024 Avihai Horon <avihaih@nvidia.com>

migration/postcopy: Ensure postcopy_start() sets errp if it fails

There are several places where postcopy_start() fails without setting
errp. This can cause a null pointer de-reference, as in case o

migration/postcopy: Ensure postcopy_start() sets errp if it fails

There are several places where postcopy_start() fails without setting
errp. This can cause a null pointer de-reference, as in case of error,
the caller of postcopy_start() copies/prints the error set in errp.

Fix it by setting errp in all of postcopy_start() error paths.

Cc: qemu-stable <qemu-stable@nongnu.org>
Fixes: 908927db28ea ("migration: Update error description whenever migration fails")
Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240328140252.16756-3-avihaih@nvidia.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

30158d8828-Mar-2024 Avihai Horon <avihaih@nvidia.com>

migration: Set migration error in migration_completion()

After commit 9425ef3f990a ("migration: Use migrate_has_error() in
close_return_path_on_source()"), close_return_path_on_source() assumes
that

migration: Set migration error in migration_completion()

After commit 9425ef3f990a ("migration: Use migrate_has_error() in
close_return_path_on_source()"), close_return_path_on_source() assumes
that migration error is set if an error occurs during migration.

This may not be true if migration errors in migration_completion(). For
example, if qemu_savevm_state_complete_precopy() errors, migration error
will not be set.

This in turn, will cause a migration hang bug, similar to the bug that
was fixed by commit 22b04245f0d5 ("migration: Join the return path
thread before releasing to_dst_file"), as shutdown() will not be issued
for the return-path channel.

Fix it by ensuring migration error is set in case of error in
migration_completion().

Signed-off-by: Avihai Horon <avihaih@nvidia.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Fixes: 9425ef3f990a ("migration: Use migrate_has_error() in close_return_path_on_source()")
Acked-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/r/20240328140252.16756-2-avihaih@nvidia.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...


/openbmc/qemu/.travis.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/VERSION
/openbmc/qemu/accel/tcg/translate-all.c
/openbmc/qemu/block/block-backend.c
/openbmc/qemu/block/io.c
/openbmc/qemu/contrib/plugins/execlog.c
/openbmc/qemu/disas/disas-mon.c
/openbmc/qemu/disas/disas.c
/openbmc/qemu/docs/devel/clocks.rst
/openbmc/qemu/docs/system/ppc/amigang.rst
/openbmc/qemu/ebpf/ebpf_rss.c
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast10x0.c
/openbmc/qemu/hw/arm/aspeed_ast2600.c
/openbmc/qemu/hw/core/clock.c
/openbmc/qemu/hw/gpio/meson.build
/openbmc/qemu/hw/gpio/pca9552.c
/openbmc/qemu/hw/gpio/pca9554.c
/openbmc/qemu/hw/gpio/trace-events
/openbmc/qemu/hw/microblaze/xlnx-zynqmp-pmu.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/stm32l4x5_rcc.c
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/net/net_tx_pkt.c
/openbmc/qemu/hw/net/vhost_net.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvram/mac_nvram.c
/openbmc/qemu/hw/scsi/scsi-generic.c
/openbmc/qemu/hw/smbios/smbios_legacy_stub.c
/openbmc/qemu/hw/virtio/trace-events
/openbmc/qemu/hw/virtio/vdpa-dev.c
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/include/hw/clock.h
/openbmc/qemu/include/hw/gpio/pca9552.h
/openbmc/qemu/include/hw/gpio/pca9552_regs.h
/openbmc/qemu/include/hw/gpio/pca9554.h
/openbmc/qemu/include/hw/gpio/pca9554_regs.h
/openbmc/qemu/include/net/vhost_net.h
/openbmc/qemu/linux-user/mmap.c
/openbmc/qemu/linux-user/strace.c
migration.c
/openbmc/qemu/monitor/hmp-cmds-target.c
/openbmc/qemu/net/af-xdp.c
/openbmc/qemu/net/tap-win32.c
/openbmc/qemu/net/tap.c
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/block.json
/openbmc/qemu/qapi/control.json
/openbmc/qemu/qapi/crypto.json
/openbmc/qemu/qapi/cxl.json
/openbmc/qemu/qapi/dump.json
/openbmc/qemu/qapi/ebpf.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/misc.json
/openbmc/qemu/qapi/net.json
/openbmc/qemu/qapi/pragma.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/replay.json
/openbmc/qemu/qapi/run-state.json
/openbmc/qemu/qapi/sockets.json
/openbmc/qemu/qapi/stats.json
/openbmc/qemu/qapi/ui.json
/openbmc/qemu/qapi/virtio.json
/openbmc/qemu/qga/qapi-schema.json
/openbmc/qemu/target/i386/tcg/sysemu/excp_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/tricore/helper.c
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tests/qemu-iotests/157
/openbmc/qemu/tests/qemu-iotests/227
/openbmc/qemu/tests/qemu-iotests/tests/stream-unaligned-prefetch
/openbmc/qemu/tests/qemu-iotests/tests/stream-unaligned-prefetch.out
/openbmc/qemu/tests/qtest/libqos/virtio.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/npcm7xx_emc-test.c
/openbmc/qemu/tests/qtest/pca9552-test.c
/openbmc/qemu/tests/qtest/pnv-host-i2c-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/test-2248.c
/openbmc/qemu/tests/tcg/multiarch/linux/linux-shmat-null.c
/openbmc/qemu/tests/tcg/s390x/Makefile.target
/openbmc/qemu/tests/tcg/s390x/ts.c
/openbmc/qemu/tests/unit/socket-helpers.c
/openbmc/qemu/tests/unit/test-throttle.c
/openbmc/qemu/ui/cocoa.m
8fa1a21c21-Mar-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Fix clearing of mapped-ram zero pages

When the zero page detection is done in the multifd threads, we need
to iterate the second part of the pages->offset array and clear the
file

migration/multifd: Fix clearing of mapped-ram zero pages

When the zero page detection is done in the multifd threads, we need
to iterate the second part of the pages->offset array and clear the
file bitmap for each zero page. The piece of code we merged to do that
is wrong.

The reason this has passed all the tests is because the bitmap is
initialized with zeroes already, so clearing the bits only really has
an effect during live migration and when a data page goes from having
data to no data.

Fixes: 303e6f54f9 ("migration/multifd: Implement zero page transmission on the multifd thread.")
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240321201242.6009-1-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

910c164720-Mar-2024 Peter Xu <peterx@redhat.com>

migration/postcopy: Fix high frequency sync

With current code base I can observe extremely high sync count during
precopy, as long as one enables postcopy-ram=on before switchover to
postcopy.

To p

migration/postcopy: Fix high frequency sync

With current code base I can observe extremely high sync count during
precopy, as long as one enables postcopy-ram=on before switchover to
postcopy.

To provide some context of when QEMU decides to do a full sync: it checks
must_precopy (which implies "data must be sent during precopy phase"), and
as long as it is lower than the threshold size we calculated (out of
bandwidth and expected downtime) QEMU will kick off the slow/exact sync.

However, when postcopy is enabled (even if still during precopy phase), RAM
only reports all pages as can_postcopy, and report must_precopy==0. Then
"must_precopy <= threshold_size" mostly always triggers and enforces a slow
sync for every call to migration_iteration_run() when postcopy is enabled
even if not used. That is insane.

It turns out it was a regress bug introduced in the previous refactoring in
8.0 as reported by Nina [1]:

(a) c8df4a7aef ("migration: Split save_live_pending() into state_pending_*")

Then a workaround patch is applied at the end of release (8.0-rc4) to fix it:

(b) 28ef5339c3 ("migration: fix ram_state_pending_exact()")

However that "workaround" was overlooked when during the cleanup in this
9.0 release in this commit..

(c) b0504edd40 ("migration: Drop unnecessary check in ram's pending_exact()")

Then the issue was re-exposed as reported by Nina [1].

The problem with (b) is that it only fixed the case for RAM, rather than
all the rest of iterators. Here a slow sync should only be required if all
dirty data (precopy+postcopy) is less than the threshold_size that QEMU
calculated. It is even debatable whether a sync is needed when switched to
postcopy. Currently ram_state_pending_exact() will be mostly noop if
switched to postcopy, and that logic seems to apply too for all the rest of
iterators, as sync dirty bitmap during a postcopy doesn't make much sense.
However let's leave such change for later, as we're in rc phase.

So rather than reusing commit (b), this patch provides the complete fix for
all iterators. When at it, cleanup a little bit on the lines around.

[1] https://gitlab.com/qemu-project/qemu/-/issues/1565

Reported-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
Fixes: b0504edd40 ("migration: Drop unnecessary check in ram's pending_exact()")
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240320214453.584374-1-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

bd4480b019-Mar-2024 Fabiano Rosas <farosas@suse.de>

migration: Revert mapped-ram multifd support to fd: URI

This reverts commit decdc76772c453ff1444612e910caa0d45cd8eac in full
and also the relevant migration-tests from
7a09f092834641b7a793d50a3a2610

migration: Revert mapped-ram multifd support to fd: URI

This reverts commit decdc76772c453ff1444612e910caa0d45cd8eac in full
and also the relevant migration-tests from
7a09f092834641b7a793d50a3a261073bbb404a6.

After the addition of the new QAPI-based migration address API in 8.2
we've been converting an "fd:" URI into a SocketAddress, missing the
fact that the "fd:" syntax could also be used for a plain file instead
of a socket. This is a problem because the SocketAddress is part of
the API, so we're effectively asking users to create a "socket"
channel to pass in a plain file.

The easiest way to fix this situation is to deprecate the usage of
both SocketAddress and "fd:" when used with a plain file for
migration. Since this has been possible since 8.2, we can wait until
9.1 to deprecate it.

For 9.0, however, we should avoid adding further support to migration
to a plain file using the old "fd:" syntax or the new SocketAddress
API, and instead require the usage of either the old-style "file:" URI
or the FileMigrationArgs::filename field of the new API with the
"/dev/fdset/NN" syntax, both of which are already supported.

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

show more ...


/openbmc/qemu/.gitlab-ci.d/base.yml
/openbmc/qemu/.gitlab-ci.d/buildtest-template.yml
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners.yml
/openbmc/qemu/.gitlab-ci.d/windows.yml
/openbmc/qemu/.travis.yml
/openbmc/qemu/VERSION
/openbmc/qemu/block/mirror.c
/openbmc/qemu/block/qapi.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/chardev/char-io.c
/openbmc/qemu/chardev/char-socket.c
/openbmc/qemu/contrib/plugins/howvec.c
/openbmc/qemu/crypto/cipher-gcrypt.c.inc
/openbmc/qemu/docs/specs/pvpanic.rst
/openbmc/qemu/docs/system/introduction.rst
/openbmc/qemu/docs/system/s390x/cpu-topology.rst
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xlnx-versal-virt.c
/openbmc/qemu/hw/block/m25p80.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/fw_cfg.c
/openbmc/qemu/hw/i386/fw_cfg.h
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/i386/pc_q35.c
/openbmc/qemu/hw/intc/loongarch_extioi.c
/openbmc/qemu/hw/intc/riscv_aplic.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/ppc/pnv_i2c.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/smbios/Kconfig
/openbmc/qemu/hw/smbios/meson.build
/openbmc/qemu/hw/smbios/smbios.c
/openbmc/qemu/hw/smbios/smbios_legacy.c
/openbmc/qemu/hw/smbios/smbios_legacy_stub.c
/openbmc/qemu/hw/ssi/aspeed_smc.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/include/hw/block/flash.h
/openbmc/qemu/include/hw/firmware/smbios.h
/openbmc/qemu/include/qemu/job.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/include/ui/kbd-state.h
/openbmc/qemu/meson.build
fd.c
fd.h
file.c
migration.c
multifd.c
/openbmc/qemu/nbd/server.c
/openbmc/qemu/pc-bios/edk2-aarch64-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-arm-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-i386-secure-code.fd.bz2
/openbmc/qemu/pc-bios/edk2-riscv-code.fd.bz2
/openbmc/qemu/qapi/common.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/roms/Makefile
/openbmc/qemu/roms/edk2-build.config
/openbmc/qemu/system/qemu-seccomp.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/hppa/insns.decode
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/op_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.c
/openbmc/qemu/target/loongarch/cpu-csr.h
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/internals.h
/openbmc/qemu/target/loongarch/tcg/insn_trans/trans_atomic.c.inc
/openbmc/qemu/target/loongarch/tcg/tlb_helper.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu_cfg.h
/openbmc/qemu/target/riscv/cpu_helper.c
/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/kvm/kvm-cpu.c
/openbmc/qemu/target/riscv/kvm/kvm_riscv.h
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/riscv/vcrypto_helper.c
/openbmc/qemu/target/riscv/vector_helper.c
/openbmc/qemu/target/riscv/vector_internals.c
/openbmc/qemu/target/riscv/vector_internals.h
/openbmc/qemu/target/s390x/cpu_models.c
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/tests/avocado/machine_aarch64_sbsaref.py
/openbmc/qemu/tests/data/acpi/q35/SSDT.dimmpxm
/openbmc/qemu/tests/data/smbios/type11_blob
/openbmc/qemu/tests/data/smbios/type11_blob.legacy
/openbmc/qemu/tests/qemu-iotests/033
/openbmc/qemu/tests/qemu-iotests/066
/openbmc/qemu/tests/qemu-iotests/114
/openbmc/qemu/tests/qemu-iotests/130
/openbmc/qemu/tests/qemu-iotests/134
/openbmc/qemu/tests/qemu-iotests/156
/openbmc/qemu/tests/qemu-iotests/158
/openbmc/qemu/tests/qemu-iotests/176.out
/openbmc/qemu/tests/qemu-iotests/188
/openbmc/qemu/tests/qemu-iotests/189
/openbmc/qemu/tests/qemu-iotests/198
/openbmc/qemu/tests/qemu-iotests/198.out
/openbmc/qemu/tests/qemu-iotests/206.out
/openbmc/qemu/tests/qemu-iotests/261
/openbmc/qemu/tests/qemu-iotests/263
/openbmc/qemu/tests/qemu-iotests/267.out
/openbmc/qemu/tests/qemu-iotests/284
/openbmc/qemu/tests/qemu-iotests/286
/openbmc/qemu/tests/qemu-iotests/286.out
/openbmc/qemu/tests/qemu-iotests/tests/detect-zeroes-registered-buf
/openbmc/qemu/tests/qemu-iotests/tests/iothreads-nbd-export
/openbmc/qemu/tests/qemu-iotests/tests/iothreads-nbd-export.out
/openbmc/qemu/tests/qemu-iotests/tests/qcow2-internal-snapshots
/openbmc/qemu/tests/qemu-iotests/tests/qcow2-internal-snapshots.out
/openbmc/qemu/tests/qemu-iotests/tests/qsd-jobs
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/unit/meson.build
/openbmc/qemu/tests/unit/test-crypto-cipher.c
/openbmc/qemu/ui/cocoa.m
/openbmc/qemu/ui/console-priv.h
/openbmc/qemu/ui/console-vc-stubs.c
/openbmc/qemu/ui/console-vc.c
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/curses.c
/openbmc/qemu/ui/kbd-state.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/vnc.c
/openbmc/qemu/util/qemu-coroutine.c
c6ea92aa18-Mar-2024 Peter Maydell <peter.maydell@linaro.org>

Merge tag 'migration-20240317-pull-request' of https://gitlab.com/peterx/qemu into staging

Migration pull for 9.0-rc0

- Nicholas/Phil's fix on migration corruption / inconsistent for tcg
- Cedric's

Merge tag 'migration-20240317-pull-request' of https://gitlab.com/peterx/qemu into staging

Migration pull for 9.0-rc0

- Nicholas/Phil's fix on migration corruption / inconsistent for tcg
- Cedric's fix on block migration over n_sectors==0
- Steve's CPR reboot documentation page
- Fabiano's misc fixes on mapped-ram (IOC leak, dup() errors, fd checks, fd
use race, etc.)

# -----BEGIN PGP SIGNATURE-----
#
# iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCZfdZEhIccGV0ZXJ4QHJl
# ZGhhdC5jb20ACgkQO1/MzfOr1wa+1AEA0+f7nCssvsILvCY9KifYO+OUJsLodUuQ
# JW0JBz+1iPMA+wSiyIVl2Xg78Q97nJxv71UJf+1cDJENA5EMmXMnxmYK
# =SLnA
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 17 Mar 2024 20:56:50 GMT
# gpg: using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706
# gpg: issuer "peterx@redhat.com"
# gpg: Good signature from "Peter Xu <xzpeter@gmail.com>" [marginal]
# gpg: aka "Peter Xu <peterx@redhat.com>" [marginal]
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg: It is not certain that the signature belongs to the owner.
# Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D D1A9 3B5F CCCD F3AB D706

* tag 'migration-20240317-pull-request' of https://gitlab.com/peterx/qemu:
migration/multifd: Duplicate the fd for the outgoing_args
migration/multifd: Ensure we're not given a socket for file migration
migration: Fix iocs leaks during file and fd migration
migration: cpr-reboot documentation
migration: Skip only empty block devices
physmem: Fix migration dirty bitmap coherency with TCG memory access
physmem: Factor cpu_physical_memory_dirty_bits_cleared() out
physmem: Expose tlb_reset_dirty_range_all()
migration: Fix error handling after dup in file migration
io: Introduce qio_channel_file_new_dupfd

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/bsd-user/signal.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/devel/migration/CPR.rst
/openbmc/qemu/docs/devel/migration/features.rst
/openbmc/qemu/docs/devel/nested-papr.txt
/openbmc/qemu/docs/devel/tracing.rst
/openbmc/qemu/docs/interop/vhost-user.rst
/openbmc/qemu/docs/specs/pvpanic.rst
/openbmc/qemu/docs/system/device-emulation.rst
/openbmc/qemu/docs/system/devices/nvme.rst
/openbmc/qemu/docs/system/devices/vdpa-net.rst
/openbmc/qemu/docs/system/ppc/amigang.rst
/openbmc/qemu/docs/system/target-ppc.rst
/openbmc/qemu/gdbstub/gdbstub.c
/openbmc/qemu/gdbstub/internals.h
/openbmc/qemu/gdbstub/user.c
/openbmc/qemu/hw/acpi/acpi_generic_initiator.c
/openbmc/qemu/hw/acpi/hmat.c
/openbmc/qemu/hw/acpi/meson.build
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/numa.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/cxl/cxl-component-utils.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/i386/acpi-build.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/net/igb.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/nvme/meson.build
/openbmc/qemu/hw/nvme/nguid.c
/openbmc/qemu/hw/nvme/ns.c
/openbmc/qemu/hw/nvme/nvme.h
/openbmc/qemu/hw/pci-bridge/pci_expander_bridge.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pcie.c
/openbmc/qemu/hw/pci/pcie_sriov.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_core.c
/openbmc/qemu/hw/ppc/ppc.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_caps.c
/openbmc/qemu/hw/ppc/spapr_cpu_core.c
/openbmc/qemu/hw/ppc/spapr_hcall.c
/openbmc/qemu/hw/ppc/spapr_nested.c
/openbmc/qemu/hw/smbios/smbios.c
/openbmc/qemu/hw/virtio/trace-events
/openbmc/qemu/hw/virtio/vhost-user.c
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/hw/xen/xen-mapcache.c
/openbmc/qemu/hw/xen/xen_pt_config_init.c
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/exec/ram_addr.h
/openbmc/qemu/include/gdbstub/user.h
/openbmc/qemu/include/hw/acpi/acpi_generic_initiator.h
/openbmc/qemu/include/hw/audio/virtio-snd.h
/openbmc/qemu/include/hw/cxl/cxl_component.h
/openbmc/qemu/include/hw/cxl/cxl_pci.h
/openbmc/qemu/include/hw/firmware/smbios.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/pci/pcie_regs.h
/openbmc/qemu/include/hw/pci/pcie_sriov.h
/openbmc/qemu/include/hw/ppc/pnv_chip.h
/openbmc/qemu/include/hw/ppc/pnv_core.h
/openbmc/qemu/include/hw/ppc/spapr.h
/openbmc/qemu/include/hw/ppc/spapr_nested.h
/openbmc/qemu/include/hw/virtio/vhost-vdpa.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/hw/virtio/virtio-iommu.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/include/io/channel-file.h
/openbmc/qemu/include/standard-headers/linux/virtio_pci.h
/openbmc/qemu/include/sysemu/numa.h
/openbmc/qemu/io/channel-file.c
/openbmc/qemu/linux-user/aarch64/signal.c
/openbmc/qemu/linux-user/alpha/signal.c
/openbmc/qemu/linux-user/arm/signal.c
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/hexagon/signal.c
/openbmc/qemu/linux-user/hppa/signal.c
/openbmc/qemu/linux-user/i386/signal.c
/openbmc/qemu/linux-user/ioctls.h
/openbmc/qemu/linux-user/loongarch64/signal.c
/openbmc/qemu/linux-user/m68k/signal.c
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/linux-user/microblaze/signal.c
/openbmc/qemu/linux-user/mips/signal.c
/openbmc/qemu/linux-user/nios2/signal.c
/openbmc/qemu/linux-user/openrisc/signal.c
/openbmc/qemu/linux-user/ppc/signal.c
/openbmc/qemu/linux-user/riscv/signal.c
/openbmc/qemu/linux-user/s390x/signal.c
/openbmc/qemu/linux-user/sh4/signal.c
/openbmc/qemu/linux-user/signal-common.h
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/linux-user/sparc/signal.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/linux-user/syscall_defs.h
/openbmc/qemu/linux-user/xtensa/signal.c
/openbmc/qemu/meson.build
block.c
fd.c
file.c
file.h
migration.c
/openbmc/qemu/net/trace-events
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/qapi/common.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/scripts/tracetool.py
/openbmc/qemu/subprojects/libvhost-user/libvhost-user.c
/openbmc/qemu/subprojects/libvhost-user/libvhost-user.h
/openbmc/qemu/system/physmem.c
/openbmc/qemu/target/arm/arm-qmp-cmds.c
/openbmc/qemu/target/i386/cpu-sysemu.c
/openbmc/qemu/target/loongarch/loongarch-qmp-cmds.c
/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/insn32.decode
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/misc_helper.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate/fixedpoint-impl.c.inc
/openbmc/qemu/target/riscv/riscv-qmp-cmds.c
/openbmc/qemu/target/s390x/cpu_models_sysemu.c
/openbmc/qemu/tcg/aarch64/tcg-target.c.inc
/openbmc/qemu/tests/qtest/arm-cpu-features.c
/openbmc/qemu/tests/qtest/virtio-iommu-test.c
/openbmc/qemu/tests/tcg/multiarch/Makefile.target
/openbmc/qemu/tests/tcg/multiarch/gdbstub/test-qxfer-siginfo-read.py
/openbmc/qemu/tests/tcg/multiarch/segfault.c
/openbmc/qemu/tests/vm/basevm.py
/openbmc/qemu/ui/dbus-listener.c
/openbmc/qemu/ui/trace-events
/openbmc/qemu/ui/vnc.c
9adfb30814-Mar-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Duplicate the fd for the outgoing_args

We currently store the file descriptor used during the main outgoing
channel creation to use it again when creating the multifd
channels.

S

migration/multifd: Duplicate the fd for the outgoing_args

We currently store the file descriptor used during the main outgoing
channel creation to use it again when creating the multifd
channels.

Since this fd is used for the first iochannel, there's risk that the
QIOChannel gets freed and the fd closed while outgoing_args.fd still
has it available. This could lead to an fd-reuse bug.

Duplicate the outgoing_args fd to avoid this issue.

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

show more ...

73f6f9a114-Mar-2024 Fabiano Rosas <farosas@suse.de>

migration/multifd: Ensure we're not given a socket for file migration

When doing migration using the fd: URI, QEMU will fetch the file
descriptor passed in via the monitor at
fd_start_outgoing|incom

migration/multifd: Ensure we're not given a socket for file migration

When doing migration using the fd: URI, QEMU will fetch the file
descriptor passed in via the monitor at
fd_start_outgoing|incoming_migration(), which means the checks at
migration_channels_and_transport_compatible() happen too soon and we
don't know at that point whether the FD refers to a plain file or a
socket.

For this reason, we've been allowing a migration channel of type
SOCKET_ADDRESS_TYPE_FD to pass the initial verifications in scenarios
where the socket migration is not supported, such as with fd + multifd.

The commit decdc76772 ("migration/multifd: Add mapped-ram support to
fd: URI") was supposed to add a second check prior to starting
migration to make sure a socket fd is not passed instead of a file fd,
but failed to do so.

Add the missing verification and update the comment explaining this
situation which is currently incorrect.

Fixes: decdc76772 ("migration/multifd: Add mapped-ram support to fd: URI")
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/20240315032040.7974-2-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

74228c5913-Mar-2024 Fabiano Rosas <farosas@suse.de>

migration: Fix iocs leaks during file and fd migration

The memory for the io channels is being leaked in three different ways
during file migration:

1) if the offset check fails we never drop the i

migration: Fix iocs leaks during file and fd migration

The memory for the io channels is being leaked in three different ways
during file migration:

1) if the offset check fails we never drop the ioc reference;

2) we allocate an extra channel for no reason;

3) if multifd is enabled but channel creation fails when calling
dup(), we leave the previous channels around along with the glib
polling;

Fix all issues by restructuring the code to first allocate the
channels and only register the watches when all channels have been
created.

For multifd, the file and fd migrations can share code because both
are backed by a QIOChannelFile. For the non-multifd case, the fd needs
to be separate because it is backed by a QIOChannelSocket.

Fixes: 2dd7ee7a51 ("migration/multifd: Add incoming QIOChannelFile support")
Fixes: decdc76772 ("migration/multifd: Add mapped-ram support to fd: URI")
Reported-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240313212824.16974-2-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

2e12877612-Mar-2024 Cédric Le Goater <clg@redhat.com>

migration: Skip only empty block devices

The block .save_setup() handler calls a helper routine
init_blk_migration() which builds a list of block devices to take into
account for migration. When one

migration: Skip only empty block devices

The block .save_setup() handler calls a helper routine
init_blk_migration() which builds a list of block devices to take into
account for migration. When one device is found to be empty (sectors
== 0), the loop exits and all the remaining devices are ignored. This
is a regression introduced when bdrv_iterate() was removed.

Change that by skipping only empty devices.

Cc: Markus Armbruster <armbru@redhat.com>
Cc: qemu-stable <qemu-stable@nongnu.org>
Suggested-by: Kevin Wolf <kwolf@redhat.com>
Fixes: fea68bb6e9fa ("block: Eliminate bdrv_iterate(), use bdrv_next()")
Signed-off-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Link: https://lore.kernel.org/r/20240312120431.550054-1-clg@redhat.com
[peterx: fix "Suggested-by:"]
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...

c827fafc11-Mar-2024 Fabiano Rosas <farosas@suse.de>

migration: Fix error handling after dup in file migration

The file migration code was allowing a possible -1 from a failed call
to dup() to propagate into the new QIOFileChannel::fd before checking

migration: Fix error handling after dup in file migration

The file migration code was allowing a possible -1 from a failed call
to dup() to propagate into the new QIOFileChannel::fd before checking
for validity. Coverity doesn't like that, possibly due to the the
lseek(-1, ...) call that would ensue before returning from the channel
creation routine.

Use the newly introduced qio_channel_file_dupfd() to properly check
the return of dup() before proceeding.

Fixes: CID 1539961
Fixes: CID 1539965
Fixes: CID 1539960
Fixes: 2dd7ee7a51 ("migration/multifd: Add incoming QIOChannelFile support")
Fixes: decdc76772 ("migration/multifd: Add mapped-ram support to fd: URI")
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Link: https://lore.kernel.org/r/20240311233335.17299-3-farosas@suse.de
Signed-off-by: Peter Xu <peterx@redhat.com>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/contrib/elf2dmp/addrspace.c
/openbmc/qemu/contrib/elf2dmp/addrspace.h
/openbmc/qemu/contrib/elf2dmp/download.c
/openbmc/qemu/contrib/elf2dmp/download.h
/openbmc/qemu/contrib/elf2dmp/main.c
/openbmc/qemu/contrib/elf2dmp/pdb.c
/openbmc/qemu/contrib/elf2dmp/pdb.h
/openbmc/qemu/contrib/elf2dmp/qemu_elf.c
/openbmc/qemu/contrib/elf2dmp/qemu_elf.h
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/conf.py
/openbmc/qemu/ebpf/ebpf.c
/openbmc/qemu/ebpf/ebpf.h
/openbmc/qemu/ebpf/ebpf_rss-stub.c
/openbmc/qemu/ebpf/ebpf_rss.c
/openbmc/qemu/ebpf/ebpf_rss.h
/openbmc/qemu/ebpf/meson.build
/openbmc/qemu/ebpf/rss.bpf.skeleton.h
/openbmc/qemu/hw/arm/gumstix.c
/openbmc/qemu/hw/arm/mainstone.c
/openbmc/qemu/hw/arm/nseries.c
/openbmc/qemu/hw/arm/palm.c
/openbmc/qemu/hw/arm/spitz.c
/openbmc/qemu/hw/arm/tosa.c
/openbmc/qemu/hw/arm/z2.c
/openbmc/qemu/hw/core/cpu-common.c
/openbmc/qemu/hw/core/loader-fit.c
/openbmc/qemu/hw/core/machine-qmp-cmds.c
/openbmc/qemu/hw/core/numa.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/gpio/Kconfig
/openbmc/qemu/hw/gpio/meson.build
/openbmc/qemu/hw/gpio/pcf8574.c
/openbmc/qemu/hw/ide/ahci-internal.h
/openbmc/qemu/hw/ide/ahci.c
/openbmc/qemu/hw/ide/ich.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/misc/ivshmem.c
/openbmc/qemu/hw/net/e1000e_core.c
/openbmc/qemu/hw/net/e1000e_core.h
/openbmc/qemu/hw/net/igb_core.c
/openbmc/qemu/hw/net/igb_core.h
/openbmc/qemu/hw/net/pcnet.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/pci/pcie.c
/openbmc/qemu/hw/pci/shpc.c
/openbmc/qemu/hw/pci/trace-events
/openbmc/qemu/hw/ppc/sam460ex.c
/openbmc/qemu/hw/sparc64/sun4u.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/cpr.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/meson.build
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/include/hw/gpio/pcf8574.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-container-base.h
/openbmc/qemu/include/hw/virtio/virtio-net.h
/openbmc/qemu/include/io/channel-file.h
/openbmc/qemu/include/qemu/help-texts.h
/openbmc/qemu/io/channel-file.c
/openbmc/qemu/meson.build
fd.c
file.c
/openbmc/qemu/qapi/ebpf.json
/openbmc/qemu/qapi/meson.build
/openbmc/qemu/qapi/qapi-schema.json
/openbmc/qemu/qga/commands-win32.c
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tools/ebpf/rss.bpf.c
e692f9c612-Mar-2024 Peter Maydell <peter.maydell@linaro.org>

Merge tag 'pull-request-2024-03-12' of https://gitlab.com/thuth/qemu into staging

* Add missing ERRP_GUARD() statements in functions that need it
* Prefer fast cpu_env() over slower CPU QOM cast mac

Merge tag 'pull-request-2024-03-12' of https://gitlab.com/thuth/qemu into staging

* Add missing ERRP_GUARD() statements in functions that need it
* Prefer fast cpu_env() over slower CPU QOM cast macro

# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmXwPhYRHHRodXRoQHJl
# ZGhhdC5jb20ACgkQLtnXdP5wLbWHvBAAgKx5LHFjz3xREVA+LkDTQ49mz0lK3s32
# SGvNlIHjiaDGVttVYhVC4sinBWUruG4Lyv/2QN72OJBzn6WUsEUQE3KPH1d7Y3/s
# wS9X7mj70n4kugWJqeIJP5AXSRasHmWoQ4QJLVQRJd6+Eb9jqwep0x7bYkI1de6D
# bL1Q7bIfkFeNQBXaiPWAm2i+hqmT4C1r8HEAGZIjAsMFrjy/hzBEjNV+pnh6ZSq9
# Vp8BsPWRfLU2XHm4WX0o8d89WUMAfUGbVkddEl/XjIHDrUD+Zbd1HAhLyfhsmrnE
# jXIwSzm+ML1KX4MoF5ilGtg8Oo0gQDEBy9/xck6G0HCm9lIoLKlgTxK9glr2vdT8
# yxZmrM9Hder7F9hKKxmb127xgU6AmL7rYmVqsoQMNAq22D6Xr4UDpgFRXNk2/wO6
# zZZBkfZ4H4MpZXbd/KJpXvYH5mQA4IpkOy8LJdE+dbcHX7Szy9ksZdPA+Z10hqqf
# zqS13qTs3abxymy2Q/tO3hPKSJCk1+vCGUkN60Wm+9VoLWGoU43qMc7gnY/pCS7m
# 0rFKtvfwFHhokX1orK0lP/ppVzPv/5oFIeK8YDY9if+N+dU2LCwVZHIuf2/VJPRq
# wmgH2vAn3JDoRKPxTGX9ly6AMxuZaeP92qBTOPap0gDhihYzIpaCq9ecEBoTakI7
# tdFhV0iRr08=
# =NiP4
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 12 Mar 2024 11:35:50 GMT
# gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
# gpg: issuer "thuth@redhat.com"
# gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
# gpg: aka "Thomas Huth <thuth@redhat.com>" [full]
# gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full]
# gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown]
# Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5

* tag 'pull-request-2024-03-12' of https://gitlab.com/thuth/qemu: (55 commits)
user: Prefer fast cpu_env() over slower CPU QOM cast macro
target/xtensa: Prefer fast cpu_env() over slower CPU QOM cast macro
target/tricore: Prefer fast cpu_env() over slower CPU QOM cast macro
target/sparc: Prefer fast cpu_env() over slower CPU QOM cast macro
target/sh4: Prefer fast cpu_env() over slower CPU QOM cast macro
target/rx: Prefer fast cpu_env() over slower CPU QOM cast macro
target/ppc: Prefer fast cpu_env() over slower CPU QOM cast macro
target/openrisc: Prefer fast cpu_env() over slower CPU QOM cast macro
target/nios2: Prefer fast cpu_env() over slower CPU QOM cast macro
target/mips: Prefer fast cpu_env() over slower CPU QOM cast macro
target/microblaze: Prefer fast cpu_env() over slower CPU QOM cast macro
target/m68k: Prefer fast cpu_env() over slower CPU QOM cast macro
target/loongarch: Prefer fast cpu_env() over slower CPU QOM cast macro
target/i386/hvf: Use CPUState typedef
target/hexagon: Prefer fast cpu_env() over slower CPU QOM cast macro
target/cris: Prefer fast cpu_env() over slower CPU QOM cast macro
target/avr: Prefer fast cpu_env() over slower CPU QOM cast macro
target/alpha: Prefer fast cpu_env() over slower CPU QOM cast macro
target: Replace CPU_GET_CLASS(cpu -> obj) in cpu_reset_hold() handler
bulk: Call in place single use cpu_env()
...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/block.c
/openbmc/qemu/block/copy-before-write.c
/openbmc/qemu/block/nbd.c
/openbmc/qemu/block/nvme.c
/openbmc/qemu/block/qapi.c
/openbmc/qemu/block/qcow2-bitmap.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/block/qed.c
/openbmc/qemu/block/snapshot.c
/openbmc/qemu/block/vdi.c
/openbmc/qemu/block/vmdk.c
/openbmc/qemu/bsd-user/signal.c
/openbmc/qemu/contrib/elf2dmp/addrspace.c
/openbmc/qemu/contrib/elf2dmp/addrspace.h
/openbmc/qemu/contrib/elf2dmp/download.c
/openbmc/qemu/contrib/elf2dmp/download.h
/openbmc/qemu/contrib/elf2dmp/main.c
/openbmc/qemu/contrib/elf2dmp/pdb.c
/openbmc/qemu/contrib/elf2dmp/pdb.h
/openbmc/qemu/contrib/elf2dmp/qemu_elf.c
/openbmc/qemu/contrib/elf2dmp/qemu_elf.h
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/conf.py
/openbmc/qemu/ebpf/ebpf.c
/openbmc/qemu/ebpf/ebpf.h
/openbmc/qemu/ebpf/ebpf_rss-stub.c
/openbmc/qemu/ebpf/ebpf_rss.c
/openbmc/qemu/ebpf/ebpf_rss.h
/openbmc/qemu/ebpf/meson.build
/openbmc/qemu/ebpf/rss.bpf.skeleton.h
/openbmc/qemu/hw/arm/gumstix.c
/openbmc/qemu/hw/arm/mainstone.c
/openbmc/qemu/hw/arm/nseries.c
/openbmc/qemu/hw/arm/palm.c
/openbmc/qemu/hw/arm/spitz.c
/openbmc/qemu/hw/arm/tosa.c
/openbmc/qemu/hw/arm/z2.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/core/cpu-common.c
/openbmc/qemu/hw/core/loader-fit.c
/openbmc/qemu/hw/core/machine-qmp-cmds.c
/openbmc/qemu/hw/core/machine.c
/openbmc/qemu/hw/core/numa.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/cxl/cxl-host.c
/openbmc/qemu/hw/display/ati.c
/openbmc/qemu/hw/display/macfb.c
/openbmc/qemu/hw/gpio/Kconfig
/openbmc/qemu/hw/gpio/meson.build
/openbmc/qemu/hw/gpio/pcf8574.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/ide/ahci-internal.h
/openbmc/qemu/hw/ide/ahci.c
/openbmc/qemu/hw/ide/ich.c
/openbmc/qemu/hw/intc/ioapic_common.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/misc/ivshmem.c
/openbmc/qemu/hw/misc/macio/pmu.c
/openbmc/qemu/hw/misc/pvpanic-pci.c
/openbmc/qemu/hw/misc/xlnx-versal-trng.c
/openbmc/qemu/hw/net/e1000e_core.c
/openbmc/qemu/hw/net/e1000e_core.h
/openbmc/qemu/hw/net/igb_core.c
/openbmc/qemu/hw/net/igb_core.h
/openbmc/qemu/hw/net/pcnet.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/pci-bridge/cxl_root_port.c
/openbmc/qemu/hw/pci-bridge/cxl_upstream.c
/openbmc/qemu/hw/pci/pcie.c
/openbmc/qemu/hw/pci/shpc.c
/openbmc/qemu/hw/pci/trace-events
/openbmc/qemu/hw/ppc/mpc8544_guts.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_xscom.c
/openbmc/qemu/hw/ppc/ppce500_spin.c
/openbmc/qemu/hw/ppc/sam460ex.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_caps.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/scsi/vhost-scsi.c
/openbmc/qemu/hw/sparc64/sun4u.c
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/cpr.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/meson.build
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/vfio/pci-quirks.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/platform.c
/openbmc/qemu/hw/virtio/vhost-user-scmi.c
/openbmc/qemu/hw/virtio/vhost-vsock.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/xen/xen_pt.c
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/gpio/pcf8574.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-container-base.h
/openbmc/qemu/include/hw/virtio/virtio-net.h
/openbmc/qemu/include/qapi/error.h
/openbmc/qemu/include/qemu/help-texts.h
/openbmc/qemu/linux-user/i386/cpu_loop.c
/openbmc/qemu/linux-user/signal.c
/openbmc/qemu/meson.build
multifd-zlib.c
options.c
postcopy-ram.c
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/qapi/ebpf.json
/openbmc/qemu/qapi/meson.build
/openbmc/qemu/qapi/qapi-schema.json
/openbmc/qemu/qga/commands-win32.c
/openbmc/qemu/target/alpha/cpu.c
/openbmc/qemu/target/alpha/gdbstub.c
/openbmc/qemu/target/alpha/helper.c
/openbmc/qemu/target/alpha/mem_helper.c
/openbmc/qemu/target/alpha/translate.c
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/arm/machine.c
/openbmc/qemu/target/avr/cpu.c
/openbmc/qemu/target/avr/gdbstub.c
/openbmc/qemu/target/avr/helper.c
/openbmc/qemu/target/avr/translate.c
/openbmc/qemu/target/cris/cpu.c
/openbmc/qemu/target/cris/gdbstub.c
/openbmc/qemu/target/cris/helper.c
/openbmc/qemu/target/cris/translate.c
/openbmc/qemu/target/hexagon/cpu.c
/openbmc/qemu/target/hexagon/gdbstub.c
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/hvf/x86.c
/openbmc/qemu/target/i386/hvf/x86.h
/openbmc/qemu/target/i386/hvf/x86_descr.c
/openbmc/qemu/target/i386/hvf/x86_descr.h
/openbmc/qemu/target/i386/hvf/x86_emu.h
/openbmc/qemu/target/i386/hvf/x86_mmu.c
/openbmc/qemu/target/i386/hvf/x86_mmu.h
/openbmc/qemu/target/i386/hvf/x86hvf.c
/openbmc/qemu/target/i386/nvmm/nvmm-all.c
/openbmc/qemu/target/i386/whpx/whpx-all.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu_helper.c
/openbmc/qemu/target/loongarch/gdbstub.c
/openbmc/qemu/target/loongarch/kvm/kvm.c
/openbmc/qemu/target/loongarch/tcg/tlb_helper.c
/openbmc/qemu/target/loongarch/tcg/translate.c
/openbmc/qemu/target/m68k/cpu.c
/openbmc/qemu/target/m68k/gdbstub.c
/openbmc/qemu/target/m68k/helper.c
/openbmc/qemu/target/m68k/m68k-semi.c
/openbmc/qemu/target/m68k/op_helper.c
/openbmc/qemu/target/m68k/translate.c
/openbmc/qemu/target/microblaze/cpu.c
/openbmc/qemu/target/microblaze/gdbstub.c
/openbmc/qemu/target/microblaze/helper.c
/openbmc/qemu/target/microblaze/translate.c
/openbmc/qemu/target/mips/cpu.c
/openbmc/qemu/target/mips/gdbstub.c
/openbmc/qemu/target/mips/kvm.c
/openbmc/qemu/target/mips/sysemu/physaddr.c
/openbmc/qemu/target/mips/tcg/exception.c
/openbmc/qemu/target/mips/tcg/op_helper.c
/openbmc/qemu/target/mips/tcg/sysemu/special_helper.c
/openbmc/qemu/target/mips/tcg/sysemu/tlb_helper.c
/openbmc/qemu/target/mips/tcg/translate.c
/openbmc/qemu/target/nios2/cpu.c
/openbmc/qemu/target/nios2/helper.c
/openbmc/qemu/target/nios2/nios2-semi.c
/openbmc/qemu/target/nios2/translate.c
/openbmc/qemu/target/openrisc/cpu.c
/openbmc/qemu/target/openrisc/gdbstub.c
/openbmc/qemu/target/openrisc/interrupt.c
/openbmc/qemu/target/openrisc/translate.c
/openbmc/qemu/target/ppc/cpu_init.c
/openbmc/qemu/target/ppc/excp_helper.c
/openbmc/qemu/target/ppc/gdbstub.c
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/ppc-qmp-cmds.c
/openbmc/qemu/target/ppc/user_only_helper.c
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/rx/cpu.c
/openbmc/qemu/target/rx/gdbstub.c
/openbmc/qemu/target/rx/helper.c
/openbmc/qemu/target/rx/translate.c
/openbmc/qemu/target/s390x/cpu_models.c
/openbmc/qemu/target/sh4/cpu.c
/openbmc/qemu/target/sh4/gdbstub.c
/openbmc/qemu/target/sh4/helper.c
/openbmc/qemu/target/sh4/op_helper.c
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/target/sparc/gdbstub.c
/openbmc/qemu/target/sparc/int32_helper.c
/openbmc/qemu/target/sparc/int64_helper.c
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/sparc/mmu_helper.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/tricore/cpu.c
/openbmc/qemu/target/tricore/gdbstub.c
/openbmc/qemu/target/tricore/helper.c
/openbmc/qemu/target/tricore/translate.c
/openbmc/qemu/target/xtensa/cpu.c
/openbmc/qemu/target/xtensa/dbg_helper.c
/openbmc/qemu/target/xtensa/exc_helper.c
/openbmc/qemu/target/xtensa/gdbstub.c
/openbmc/qemu/target/xtensa/helper.c
/openbmc/qemu/target/xtensa/translate.c
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tools/ebpf/rss.bpf.c
ee1004bb29-Jan-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

bulk: Access existing variables initialized to &S->F when available

When a variable is initialized to &struct->field, use it
in place. Rationale: while this makes the code more concise,
this also he

bulk: Access existing variables initialized to &S->F when available

When a variable is initialized to &struct->field, use it
in place. Rationale: while this makes the code more concise,
this also helps static analyzers.

Mechanical change using the following Coccinelle spatch script:

@@
type S, F;
identifier s, m, v;
@@
S *s;
...
F *v = &s->m;
<+...
- &s->m
+ v
...+>

Inspired-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20240129164514.73104-2-philmd@linaro.org>
Acked-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
[thuth: Dropped hunks that need a rebase, and fixed sizeof() in pmu_realize()]
Signed-off-by: Thomas Huth <thuth@redhat.com>

show more ...

46ff64a812-Mar-2024 Zhao Liu <zhao1.liu@intel.com>

error: Move ERRP_GUARD() to the beginning of the function

Since the commit 05e385d2a9 ("error: Move ERRP_GUARD() to the beginning
of the function"), there are new codes that don't put ERRP_GUARD() a

error: Move ERRP_GUARD() to the beginning of the function

Since the commit 05e385d2a9 ("error: Move ERRP_GUARD() to the beginning
of the function"), there are new codes that don't put ERRP_GUARD() at
the beginning of the functions.

As stated in the commit 05e385d2a9: "include/qapi/error.h advises to put
ERRP_GUARD() right at the beginning of the function, because only then
can it guard the whole function.", so clean up the few spots
disregarding the advice.

Inspired-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20240312060337.3240965-1-zhao1.liu@linux.intel.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>

show more ...

12345678910>>...96