History log of /openbmc/qemu/hw/core/ (Results 201 – 225 of 1520)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
1ca1958327-Jun-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

hw/sd/sdcard: Use spec v3.01 by default

Recent SDHCI expect cards to support the v3.01 spec
to negociate lower I/O voltage. Select it by default.

Versioned machine types with a version of 9.0 or
ea

hw/sd/sdcard: Use spec v3.01 by default

Recent SDHCI expect cards to support the v3.01 spec
to negociate lower I/O voltage. Select it by default.

Versioned machine types with a version of 9.0 or
earlier retain the old default (spec v2.00).

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Tested-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Tested-by: Cédric Le Goater <clg@redhat.com>
Message-Id: <20240703134356.85972-2-philmd@linaro.org>

show more ...

0f3974b605-Jul-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

accel/tcg: Move qemu_plugin_vcpu_init__async() to plugins/

Calling qemu_plugin_vcpu_init__async() on the vCPU thread
is a detail of plugins, not relevant to TCG vCPU management.

Signed-off-by: Phil

accel/tcg: Move qemu_plugin_vcpu_init__async() to plugins/

Calling qemu_plugin_vcpu_init__async() on the vCPU thread
is a detail of plugins, not relevant to TCG vCPU management.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-Id: <20240606124010.2460-4-philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240705084047.857176-30-alex.bennee@linaro.org>

show more ...

853c685e05-Jul-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

plugins: Free CPUPluginState before destroying vCPU state

cpu::plugin_state is allocated in cpu_common_initfn() when
the vCPU state is created. Release it in cpu_common_finalize()
when we are done.

plugins: Free CPUPluginState before destroying vCPU state

cpu::plugin_state is allocated in cpu_common_initfn() when
the vCPU state is created. Release it in cpu_common_finalize()
when we are done.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-Id: <20240606124010.2460-3-philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240705084047.857176-29-alex.bennee@linaro.org>

show more ...

f5fcc64805-Jul-2024 Alex Bennée <alex.bennee@linaro.org>

hw/core: ensure kernel_end never gets used undefined

Really the problem here is the return values of fit_load_[kernel|fdt]() are a
little all over the place. However we don't want to somehow get
thr

hw/core: ensure kernel_end never gets used undefined

Really the problem here is the return values of fit_load_[kernel|fdt]() are a
little all over the place. However we don't want to somehow get
through not having set kernel_end and having it just be random unused
data.

The compiler complained on an --enable-gcov build:

In file included from ../../hw/core/loader-fit.c:20:
/home/alex/lsrc/qemu.git/include/qemu/osdep.h: In function ‘load_fit’:
/home/alex/lsrc/qemu.git/include/qemu/osdep.h:486:45: error: ‘kernel_end’ may be used uninitialized [-Werror=maybe-uninitialized]
486 | #define ROUND_UP(n, d) ROUND_DOWN((n) + (d) - 1, (d))
| ^
../../hw/core/loader-fit.c:270:12: note: ‘kernel_end’ was declared here
270 | hwaddr kernel_end;
| ^~~~~~~~~~

Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Aleksandar Rikalo <arikalo@gmail.com>
Message-Id: <20240705084047.857176-5-alex.bennee@linaro.org>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest-template.yml
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/crossbuilds.yml
/openbmc/qemu/.travis.yml
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/hvf/hvf-all.c
/openbmc/qemu/audio/coreaudio.m
/openbmc/qemu/backends/hostmem-shm.c
/openbmc/qemu/backends/meson.build
/openbmc/qemu/block.c
/openbmc/qemu/block/file-posix.c
/openbmc/qemu/block/meson.build
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/chardev/char-stdio.c
/openbmc/qemu/contrib/vhost-user-blk/vhost-user-blk.c
/openbmc/qemu/contrib/vhost-user-input/main.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/devel/build-system.rst
/openbmc/qemu/docs/devel/tcg-plugins.rst
/openbmc/qemu/docs/pcie_sriov.txt
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/docs/system/arm/xlnx-zynq.rst
/openbmc/qemu/docs/system/devices/vhost-user.rst
/openbmc/qemu/docs/system/target-arm.rst
/openbmc/qemu/gdbstub/meson.build
/openbmc/qemu/host/include/riscv/host/cpuinfo.h
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast27x0.c
/openbmc/qemu/hw/arm/bcm2835_peripherals.c
/openbmc/qemu/hw/arm/smmu-common.c
/openbmc/qemu/hw/arm/smmuv3.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xilinx_zynq.c
loader-fit.c
/openbmc/qemu/hw/gpio/aspeed_gpio.c
/openbmc/qemu/hw/i386/e820_memory_layout.c
/openbmc/qemu/hw/i386/e820_memory_layout.h
/openbmc/qemu/hw/i386/fw_cfg.c
/openbmc/qemu/hw/i386/fw_cfg.h
/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/ide/macio.c
/openbmc/qemu/hw/intc/apic_common.c
/openbmc/qemu/hw/intc/s390_flic.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/mem/cxl_type3_stubs.c
/openbmc/qemu/hw/misc/aspeed_sdmc.c
/openbmc/qemu/hw/misc/bcm2835_property.c
/openbmc/qemu/hw/misc/edu.c
/openbmc/qemu/hw/misc/stm32l4x5_exti.c
/openbmc/qemu/hw/misc/zynq_slcr.c
/openbmc/qemu/hw/net/ftgmac100.c
/openbmc/qemu/hw/net/igb.c
/openbmc/qemu/hw/net/spapr_llan.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/nvme/ctrl.c
/openbmc/qemu/hw/nvram/bcm2835_otp.c
/openbmc/qemu/hw/nvram/meson.build
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/pci/pci_host.c
/openbmc/qemu/hw/pci/pcie_sriov.c
/openbmc/qemu/hw/pci/trace-events
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_pci.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/sd/meson.build
/openbmc/qemu/hw/sd/sd.c
/openbmc/qemu/hw/sd/sdmmc-internal.h
/openbmc/qemu/hw/sd/trace-events
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/virtio/vhost-user-base.c
/openbmc/qemu/hw/virtio/vhost-user.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/hw/xen/xen_pt_load_rom.c
/openbmc/qemu/include/hw/arm/bcm2835_peripherals.h
/openbmc/qemu/include/hw/arm/raspberrypi-fw-defs.h
/openbmc/qemu/include/hw/arm/smmu-common.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/gpio/aspeed_gpio.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/misc/bcm2835_property.h
/openbmc/qemu/include/hw/misc/macio/macio.h
/openbmc/qemu/include/hw/misc/stm32l4x5_exti.h
/openbmc/qemu/include/hw/misc/xlnx-cfi-if.h
/openbmc/qemu/include/hw/nvram/bcm2835_otp.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/pci/pci_device.h
/openbmc/qemu/include/hw/pci/pcie_sriov.h
/openbmc/qemu/include/hw/s390x/s390_flic.h
/openbmc/qemu/include/hw/sd/sd.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/io/meson.build
/openbmc/qemu/meson.build
/openbmc/qemu/net/vmnet-bridged.m
/openbmc/qemu/net/vmnet-common.m
/openbmc/qemu/net/vmnet-host.c
/openbmc/qemu/net/vmnet-shared.c
/openbmc/qemu/pc-bios/meson.build
/openbmc/qemu/pc-bios/s390-ccw/Makefile
/openbmc/qemu/plugins/meson.build
/openbmc/qemu/pythondeps.toml
/openbmc/qemu/qapi/cxl.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/storage-daemon/meson.build
/openbmc/qemu/stubs/blk-exp-close-all.c
/openbmc/qemu/subprojects/libvhost-user/libvhost-user.c
/openbmc/qemu/system/physmem.c
/openbmc/qemu/system/trace-events
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/helper.h
/openbmc/qemu/target/arm/tcg/a64.decode
/openbmc/qemu/target/arm/tcg/cpu32.c
/openbmc/qemu/target/arm/tcg/cpu64.c
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/vec_helper.c
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/target/i386/confidential-guest.h
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/hvf/hvf.c
/openbmc/qemu/target/i386/kvm/kvm-cpu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/kvm/xen-emu.c
/openbmc/qemu/target/i386/sev.c
/openbmc/qemu/tcg/meson.build
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tcg/riscv/tcg-target.c.inc
/openbmc/qemu/tcg/riscv/tcg-target.h
/openbmc/qemu/tests/Makefile.include
/openbmc/qemu/tests/avocado/hotplug_blk.py
/openbmc/qemu/tests/avocado/machine_aarch64_sbsaref.py
/openbmc/qemu/tests/data/acpi/aarch64/virt/APIC
/openbmc/qemu/tests/data/acpi/aarch64/virt/APIC.acpihmatvirt
/openbmc/qemu/tests/data/acpi/aarch64/virt/APIC.topology
/openbmc/qemu/tests/data/acpi/aarch64/virt/DBG2
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.acpihmatvirt
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.memhp
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.pxb
/openbmc/qemu/tests/data/acpi/aarch64/virt/DSDT.topology
/openbmc/qemu/tests/data/acpi/aarch64/virt/FACP
/openbmc/qemu/tests/data/acpi/aarch64/virt/GTDT
/openbmc/qemu/tests/data/acpi/aarch64/virt/HMAT.acpihmatvirt
/openbmc/qemu/tests/data/acpi/aarch64/virt/IORT
/openbmc/qemu/tests/data/acpi/aarch64/virt/MCFG
/openbmc/qemu/tests/data/acpi/aarch64/virt/NFIT.memhp
/openbmc/qemu/tests/data/acpi/aarch64/virt/PPTT
/openbmc/qemu/tests/data/acpi/aarch64/virt/PPTT.acpihmatvirt
/openbmc/qemu/tests/data/acpi/aarch64/virt/PPTT.topology
/openbmc/qemu/tests/data/acpi/aarch64/virt/SLIT.memhp
/openbmc/qemu/tests/data/acpi/aarch64/virt/SPCR
/openbmc/qemu/tests/data/acpi/aarch64/virt/SRAT.acpihmatvirt
/openbmc/qemu/tests/data/acpi/aarch64/virt/SRAT.memhp
/openbmc/qemu/tests/data/acpi/aarch64/virt/SRAT.numamem
/openbmc/qemu/tests/data/acpi/aarch64/virt/SSDT.memhp
/openbmc/qemu/tests/data/acpi/aarch64/virt/VIOT
/openbmc/qemu/tests/data/acpi/rebuild-expected-aml.sh
/openbmc/qemu/tests/data/acpi/x86/microvm/APIC
/openbmc/qemu/tests/data/acpi/x86/microvm/APIC.ioapic2
/openbmc/qemu/tests/data/acpi/x86/microvm/APIC.pcie
/openbmc/qemu/tests/data/acpi/x86/microvm/DSDT
/openbmc/qemu/tests/data/acpi/x86/microvm/DSDT.ioapic2
/openbmc/qemu/tests/data/acpi/x86/microvm/DSDT.pcie
/openbmc/qemu/tests/data/acpi/x86/microvm/DSDT.rtc
/openbmc/qemu/tests/data/acpi/x86/microvm/DSDT.usb
/openbmc/qemu/tests/data/acpi/x86/microvm/ERST.pcie
/openbmc/qemu/tests/data/acpi/x86/microvm/FACP
/openbmc/qemu/tests/data/acpi/x86/pc/APIC
/openbmc/qemu/tests/data/acpi/x86/pc/APIC.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/APIC.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/APIC.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbridge
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.hpbrroot
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.ipmikcs
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/pc/DSDT.roothp
/openbmc/qemu/tests/data/acpi/x86/pc/ERST.acpierst
/openbmc/qemu/tests/data/acpi/x86/pc/FACP
/openbmc/qemu/tests/data/acpi/x86/pc/FACP.nosmm
/openbmc/qemu/tests/data/acpi/x86/pc/FACS
/openbmc/qemu/tests/data/acpi/x86/pc/HMAT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/HPET
/openbmc/qemu/tests/data/acpi/x86/pc/NFIT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/SLIT.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/SLIT.memhp
/openbmc/qemu/tests/data/acpi/x86/pc/SRAT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/pc/SRAT.cphp
/openbmc/qemu/tests/data/acpi/x86/pc/SRAT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/SRAT.memhp
/openbmc/qemu/tests/data/acpi/x86/pc/SRAT.numamem
/openbmc/qemu/tests/data/acpi/x86/pc/SSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/pc/WAET
/openbmc/qemu/tests/data/acpi/x86/q35/APIC
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.core-count
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.core-count2
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.thread-count
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.thread-count2
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.type4-count
/openbmc/qemu/tests/data/acpi/x86/q35/APIC.xapic
/openbmc/qemu/tests/data/acpi/x86/q35/CEDT.cxl
/openbmc/qemu/tests/data/acpi/x86/q35/DMAR.dmar
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpierst
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.applesmc
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.core-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.cxl
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmibt
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ipmismbus
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.ivrs
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.memhp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.mmio64
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.multi-bridge
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.noacpihp
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.nohpet
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.numamem
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.pvpanic-isa
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.thread-count2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm12
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.tis.tpm2
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.type4-count
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.viot
/openbmc/qemu/tests/data/acpi/x86/q35/DSDT.xapic
/openbmc/qemu/tests/data/acpi/x86/q35/ERST.acpierst
/openbmc/qemu/tests/data/acpi/x86/q35/FACP
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.core-count
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.core-count2
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.nosmm
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.slic
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.thread-count
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.thread-count2
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.type4-count
/openbmc/qemu/tests/data/acpi/x86/q35/FACP.xapic
/openbmc/qemu/tests/data/acpi/x86/q35/FACS
/openbmc/qemu/tests/data/acpi/x86/q35/HMAT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/HMAT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/HPET
/openbmc/qemu/tests/data/acpi/x86/q35/IVRS.ivrs
/openbmc/qemu/tests/data/acpi/x86/q35/MCFG
/openbmc/qemu/tests/data/acpi/x86/q35/NFIT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/SLIC.slic
/openbmc/qemu/tests/data/acpi/x86/q35/SLIT.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/SLIT.memhp
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.acpihmat
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.acpihmat-noinitiator
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.cphp
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.memhp
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.mmio64
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.numamem
/openbmc/qemu/tests/data/acpi/x86/q35/SRAT.xapic
/openbmc/qemu/tests/data/acpi/x86/q35/SSDT.dimmpxm
/openbmc/qemu/tests/data/acpi/x86/q35/TCPA.tis.tpm12
/openbmc/qemu/tests/data/acpi/x86/q35/TPM2.tis.tpm2
/openbmc/qemu/tests/data/acpi/x86/q35/VIOT.viot
/openbmc/qemu/tests/data/acpi/x86/q35/WAET
/openbmc/qemu/tests/data/uefi-boot-images/bios-tables-test.riscv64.iso.qcow2
/openbmc/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/qemu-iotests/061
/openbmc/qemu/tests/qemu-iotests/061.out
/openbmc/qemu/tests/qemu-iotests/244
/openbmc/qemu/tests/qemu-iotests/270
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/qtest/device-introspect-test.c
/openbmc/qemu/tests/qtest/libqos/meson.build
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/qos-test.c
/openbmc/qemu/tests/qtest/stm32l4x5_exti-test.c
/openbmc/qemu/tests/qtest/stm32l4x5_syscfg-test.c
/openbmc/qemu/tests/qtest/vhost-user-blk-test.c
/openbmc/qemu/tests/qtest/vhost-user-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/test-2375.c
/openbmc/qemu/tests/tcg/x86_64/Makefile.target
/openbmc/qemu/tests/tcg/x86_64/test-2413.c
/openbmc/qemu/tests/uefi-test-tools/Makefile
/openbmc/qemu/tests/uefi-test-tools/UefiTestToolsPkg/UefiTestToolsPkg.dsc
/openbmc/qemu/tests/uefi-test-tools/uefi-test-build.config
/openbmc/qemu/trace-events
/openbmc/qemu/ui/meson.build
/openbmc/qemu/util/cpuinfo-aarch64.c
/openbmc/qemu/util/cpuinfo-ppc.c
/openbmc/qemu/util/cpuinfo-riscv.c
/openbmc/qemu/util/meson.build
/openbmc/qemu/util/vhost-user-server.c
5d98e18806-Jun-2024 Jiqian Chen <Jiqian.Chen@amd.com>

virtio-pci: implement No_Soft_Reset bit

In current code, when guest does S3, virtio-gpu are reset due to the
bit No_Soft_Reset is not set. After resetting, the display resources
of virtio-gpu are de

virtio-pci: implement No_Soft_Reset bit

In current code, when guest does S3, virtio-gpu are reset due to the
bit No_Soft_Reset is not set. After resetting, the display resources
of virtio-gpu are destroyed, then the display can't come back and only
show blank after resuming.

Implement No_Soft_Reset bit of PCI_PM_CTRL register, then guest can check
this bit, if this bit is set, the devices resetting will not be done, and
then the display can work after resuming.

No_Soft_Reset bit is implemented for all virtio devices, and was tested
only on virtio-gpu device. Set it false by default for safety.

Signed-off-by: Jiqian Chen <Jiqian.Chen@amd.com>
Message-Id: <20240606102205.114671-3-Jiqian.Chen@amd.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

show more ...


/openbmc/qemu/docs/specs/pvpanic.rst
/openbmc/qemu/hw/block/vhost-user-blk.c
machine.c
/openbmc/qemu/hw/cxl/cxl-mailbox-utils.c
/openbmc/qemu/hw/display/vhost-user-gpu.c
/openbmc/qemu/hw/i386/xen/xen-hvm.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/mem/cxl_type3_stubs.c
/openbmc/qemu/hw/misc/pvpanic-isa.c
/openbmc/qemu/hw/misc/pvpanic-pci.c
/openbmc/qemu/hw/misc/pvpanic.c
/openbmc/qemu/hw/net/vhost_net.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/scsi/vhost-scsi.c
/openbmc/qemu/hw/scsi/vhost-user-scsi.c
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/virtio/vhost-user-base.c
/openbmc/qemu/hw/virtio/vhost-user-fs.c
/openbmc/qemu/hw/virtio/vhost-user-vsock.c
/openbmc/qemu/hw/virtio/vhost-user.c
/openbmc/qemu/hw/virtio/vhost-vsock-common.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/virtio/virtio-mmio.c
/openbmc/qemu/hw/virtio/virtio-pci.c
/openbmc/qemu/hw/virtio/virtio.c
/openbmc/qemu/hw/xen/xen-host-pci-device.c
/openbmc/qemu/hw/xen/xen-host-pci-device.h
/openbmc/qemu/hw/xen/xen-hvm-common.c
/openbmc/qemu/include/hw/cxl/cxl_device.h
/openbmc/qemu/include/hw/cxl/cxl_events.h
/openbmc/qemu/include/hw/misc/pvpanic.h
/openbmc/qemu/include/hw/virtio/vhost-user.h
/openbmc/qemu/include/hw/virtio/vhost.h
/openbmc/qemu/include/hw/virtio/virtio-pci.h
/openbmc/qemu/include/hw/virtio/virtio.h
/openbmc/qemu/include/hw/xen/xen.h
/openbmc/qemu/include/standard-headers/linux/ethtool.h
/openbmc/qemu/include/standard-headers/linux/pci_regs.h
/openbmc/qemu/include/standard-headers/linux/virtio_bt.h
/openbmc/qemu/include/standard-headers/linux/virtio_mem.h
/openbmc/qemu/include/standard-headers/linux/virtio_net.h
/openbmc/qemu/include/standard-headers/misc/pvpanic.h
/openbmc/qemu/include/sysemu/runstate.h
/openbmc/qemu/linux-headers/asm-generic/unistd.h
/openbmc/qemu/linux-headers/asm-mips/unistd_n32.h
/openbmc/qemu/linux-headers/asm-mips/unistd_n64.h
/openbmc/qemu/linux-headers/asm-mips/unistd_o32.h
/openbmc/qemu/linux-headers/asm-powerpc/unistd_32.h
/openbmc/qemu/linux-headers/asm-powerpc/unistd_64.h
/openbmc/qemu/linux-headers/asm-s390/unistd_32.h
/openbmc/qemu/linux-headers/asm-s390/unistd_64.h
/openbmc/qemu/linux-headers/asm-x86/unistd_32.h
/openbmc/qemu/linux-headers/asm-x86/unistd_64.h
/openbmc/qemu/linux-headers/asm-x86/unistd_x32.h
/openbmc/qemu/linux-headers/linux/kvm.h
/openbmc/qemu/linux-headers/linux/stddef.h
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/qapi/cxl.json
/openbmc/qemu/qapi/run-state.json
/openbmc/qemu/subprojects/libvhost-user/libvhost-user.c
/openbmc/qemu/system/globals.c
/openbmc/qemu/system/runstate.c
/openbmc/qemu/tests/qtest/pvpanic-pci-test.c
/openbmc/qemu/tests/qtest/pvpanic-test.c
f22855df27-Jun-2024 Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

hw/core/loader: gunzip(): fix memory leak on error path

We should call inflateEnd() like on success path to cleanup state in s
variable.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yand

hw/core/loader: gunzip(): fix memory leak on error path

We should call inflateEnd() like on success path to cleanup state in s
variable.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...

2b5d12b612-Jun-2024 Matheus Tavares Bernardino <quic_mathbern@quicinc.com>

cpu: fix memleak of 'halt_cond' and 'thread'

Since a4c2735f35 (cpu: move Qemu[Thread|Cond] setup into common code,
2024-05-30) these fields are now allocated at cpu_common_initfn(). So
let's make su

cpu: fix memleak of 'halt_cond' and 'thread'

Since a4c2735f35 (cpu: move Qemu[Thread|Cond] setup into common code,
2024-05-30) these fields are now allocated at cpu_common_initfn(). So
let's make sure we also free them at cpu_common_finalize().

Furthermore, the code also frees these on round robin, but we missed
'halt_cond'.

Signed-off-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/hvf/hvf-accel-ops.c
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/qtest/qtest.c
/openbmc/qemu/accel/tcg/ldst_common.c.inc
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/accel/tcg/tb-maint.c
/openbmc/qemu/accel/tcg/tcg-accel-ops-rr.c
/openbmc/qemu/accel/tcg/tcg-accel-ops.c
/openbmc/qemu/backends/host_iommu_device.c
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/backends/meson.build
/openbmc/qemu/block.c
/openbmc/qemu/block/blkdebug.c
/openbmc/qemu/block/blkio.c
/openbmc/qemu/block/blkverify.c
/openbmc/qemu/block/curl.c
/openbmc/qemu/block/file-posix.c
/openbmc/qemu/block/file-win32.c
/openbmc/qemu/block/gluster.c
/openbmc/qemu/block/iscsi.c
/openbmc/qemu/block/nbd.c
/openbmc/qemu/block/nfs.c
/openbmc/qemu/block/null.c
/openbmc/qemu/block/nvme.c
/openbmc/qemu/block/rbd.c
/openbmc/qemu/block/ssh.c
/openbmc/qemu/block/vvfat.c
/openbmc/qemu/configs/targets/riscv64-softmmu.mak
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/Makefile
/openbmc/qemu/contrib/plugins/ips.c
/openbmc/qemu/docs/devel/migration/main.rst
/openbmc/qemu/docs/devel/migration/mapped-ram.rst
/openbmc/qemu/docs/devel/migration/postcopy.rst
/openbmc/qemu/docs/system/arm/sbsa.rst
/openbmc/qemu/docs/system/arm/virt.rst
/openbmc/qemu/gdbstub/user.c
/openbmc/qemu/hmp-commands-info.hx
/openbmc/qemu/host/include/aarch64/host/bufferiszero.c.inc
/openbmc/qemu/host/include/generic/host/bufferiszero.c.inc
/openbmc/qemu/host/include/i386/host/bufferiszero.c.inc
/openbmc/qemu/host/include/i386/host/cpuinfo.h
/openbmc/qemu/host/include/loongarch64/host/bufferiszero.c.inc
/openbmc/qemu/host/include/loongarch64/host/cpuinfo.h
/openbmc/qemu/host/include/x86_64/host/bufferiszero.c.inc
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xilinx_zynq.c
cpu-common.c
/openbmc/qemu/hw/display/qxl-render.c
/openbmc/qemu/hw/display/vga.c
/openbmc/qemu/hw/display/xenfb.c
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/intc/gic_internal.h
/openbmc/qemu/hw/intc/loongson_ipi.c
/openbmc/qemu/hw/mips/Kconfig
/openbmc/qemu/hw/mips/loongson3_bootp.c
/openbmc/qemu/hw/mips/loongson3_bootp.h
/openbmc/qemu/hw/mips/loongson3_virt.c
/openbmc/qemu/hw/misc/exynos4210_rng.c
/openbmc/qemu/hw/net/can/xlnx-versal-canfd.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/s390x/ccw-device.c
/openbmc/qemu/hw/s390x/ccw-device.h
/openbmc/qemu/hw/s390x/s390-ccw.c
/openbmc/qemu/hw/s390x/s390-skeys.c
/openbmc/qemu/hw/s390x/s390-virtio-ccw.c
/openbmc/qemu/hw/s390x/trace-events
/openbmc/qemu/hw/sd/sd.c
/openbmc/qemu/hw/sd/sdmmc-internal.c
/openbmc/qemu/hw/sd/trace-events
/openbmc/qemu/hw/timer/a9gtimer.c
/openbmc/qemu/hw/usb/dev-mtp.c
/openbmc/qemu/hw/usb/hcd-dwc2.c
/openbmc/qemu/hw/usb/hcd-ohci.c
/openbmc/qemu/hw/usb/trace-events
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container-base.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/spapr.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/include/block/block_int-common.h
/openbmc/qemu/include/exec/gdbstub.h
/openbmc/qemu/include/exec/memop.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/gdbstub/enums.h
/openbmc/qemu/include/hw/arm/virt.h
/openbmc/qemu/include/hw/i386/intel_iommu.h
/openbmc/qemu/include/hw/intc/loongson_ipi.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/riscv/virt.h
/openbmc/qemu/include/hw/s390x/s390-ccw.h
/openbmc/qemu/include/hw/s390x/storage-keys.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-container-base.h
/openbmc/qemu/include/hw/virtio/virtio-iommu.h
/openbmc/qemu/include/migration/vmstate.h
/openbmc/qemu/include/monitor/monitor.h
/openbmc/qemu/include/qapi/util.h
/openbmc/qemu/include/qemu/atomic.h
/openbmc/qemu/include/qemu/bswap.h
/openbmc/qemu/include/qemu/compiler.h
/openbmc/qemu/include/qemu/osdep.h
/openbmc/qemu/include/qemu/qemu-plugin.h
/openbmc/qemu/include/qemu/range.h
/openbmc/qemu/include/qemu/timer.h
/openbmc/qemu/include/sysemu/accel-ops.h
/openbmc/qemu/include/sysemu/cpu-timers.h
/openbmc/qemu/include/sysemu/host_iommu_device.h
/openbmc/qemu/include/sysemu/iommufd.h
/openbmc/qemu/include/sysemu/qtest.h
/openbmc/qemu/include/ui/surface.h
/openbmc/qemu/io/channel-file.c
/openbmc/qemu/linux-user/syscall.c
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/colo.c
/openbmc/qemu/migration/file.c
/openbmc/qemu/migration/file.h
/openbmc/qemu/migration/migration-hmp-cmds.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/migration.h
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/options.c
/openbmc/qemu/migration/options.h
/openbmc/qemu/migration/postcopy-ram.c
/openbmc/qemu/migration/postcopy-ram.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/monitor/fds.c
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/monitor/hmp.c
/openbmc/qemu/monitor/monitor-internal.h
/openbmc/qemu/monitor/monitor.c
/openbmc/qemu/monitor/qmp.c
/openbmc/qemu/plugins/api.c
/openbmc/qemu/plugins/core.c
/openbmc/qemu/plugins/qemu-plugins.symbols
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/scripts/coverity-scan/COMPONENTS.md
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/stubs/cpus-virtual-clock.c
/openbmc/qemu/stubs/fdset.c
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/system/cpus.c
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/qtest.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/hyp_gdbstub.c
/openbmc/qemu/target/arm/kvm.c
/openbmc/qemu/target/i386/cpu-dump.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/sev.c
/openbmc/qemu/target/i386/tcg/cc_helper.c
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/i386/trace-events
/openbmc/qemu/target/ppc/kvm.c
/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/csr.c
/openbmc/qemu/target/riscv/debug.c
/openbmc/qemu/target/riscv/fpu_helper.c
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/target/s390x/Kconfig
/openbmc/qemu/target/s390x/arch_dump.c
/openbmc/qemu/target/s390x/cpu_models.c
/openbmc/qemu/target/s390x/kvm/kvm.c
/openbmc/qemu/target/s390x/mmu_helper.c
/openbmc/qemu/target/s390x/tcg/mem_helper.c
/openbmc/qemu/target/s390x/trace-events
/openbmc/qemu/target/sparc/helper.c
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tcg/loongarch64/tcg-insn-defs.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tests/qtest/fuzz/qos_fuzz.c
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/libqtest.h
/openbmc/qemu/tests/qtest/migration-helpers.c
/openbmc/qemu/tests/qtest/migration-helpers.h
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/ui/cocoa.m
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/sdl2-2d.c
/openbmc/qemu/ui/sdl2-gl.c
/openbmc/qemu/util/bufferiszero.c
/openbmc/qemu/util/cpuinfo-i386.c
/openbmc/qemu/util/cpuinfo-loongarch.c
/openbmc/qemu/util/osdep.c
/openbmc/qemu/util/qemu-timer.c
/openbmc/qemu/util/readline.c
795eaa6207-Jun-2024 Philippe Mathieu-Daudé <philmd@linaro.org>

hw/intc: Introduce x-query-interrupt-controllers QMP command

This is a counterpart to the HMP "info pic" command. It is being
added with an "x-" prefix because this QMP command is intended as an
adh

hw/intc: Introduce x-query-interrupt-controllers QMP command

This is a counterpart to the HMP "info pic" command. It is being
added with an "x-" prefix because this QMP command is intended as an
adhoc debugging tool and will thus not be modelled in QAPI as fully
structured data, nor will it have long term guaranteed stability.
The existing HMP command is rewritten to call the QMP command.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20240610063518.50680-3-philmd@linaro.org>

show more ...


/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/hmp-commands-info.hx
/openbmc/qemu/hw/acpi/ich9.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/audio/virtio-snd.c
machine-qmp-cmds.c
/openbmc/qemu/hw/dma/trace-events
/openbmc/qemu/hw/dma/xilinx_axidma.c
/openbmc/qemu/hw/i386/acpi-build.c
/openbmc/qemu/hw/i386/fw_cfg.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_piix.c
/openbmc/qemu/hw/intc/goldfish_pic.c
/openbmc/qemu/hw/intc/i8259_common.c
/openbmc/qemu/hw/intc/ioapic_common.c
/openbmc/qemu/hw/intc/m68k_irqc.c
/openbmc/qemu/hw/intc/pnv_xive.c
/openbmc/qemu/hw/intc/pnv_xive2.c
/openbmc/qemu/hw/intc/slavio_intctl.c
/openbmc/qemu/hw/intc/spapr_xive.c
/openbmc/qemu/hw/intc/xics.c
/openbmc/qemu/hw/intc/xics_spapr.c
/openbmc/qemu/hw/intc/xive.c
/openbmc/qemu/hw/intc/xive2.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/mem/memory-device.c
/openbmc/qemu/hw/mem/pc-dimm.c
/openbmc/qemu/hw/net/xilinx_axienet.c
/openbmc/qemu/hw/pci-host/pnv_phb3_msi.c
/openbmc/qemu/hw/pci-host/pnv_phb4.c
/openbmc/qemu/hw/ppc/pnv.c
/openbmc/qemu/hw/ppc/pnv_psi.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_irq.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/smbios/smbios.c
/openbmc/qemu/hw/usb/hcd-xhci-nec.c
/openbmc/qemu/hw/usb/hcd-xhci-pci.c
/openbmc/qemu/hw/usb/hcd-xhci.c
/openbmc/qemu/hw/usb/hcd-xhci.h
/openbmc/qemu/hw/virtio/virtio-md-pci.c
/openbmc/qemu/include/hw/firmware/smbios.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/intc/intc.h
/openbmc/qemu/include/hw/mem/memory-device.h
/openbmc/qemu/include/hw/mem/pc-dimm.h
/openbmc/qemu/include/hw/pci-host/pnv_phb3.h
/openbmc/qemu/include/hw/pci-host/pnv_phb4.h
/openbmc/qemu/include/hw/ppc/pnv_chip.h
/openbmc/qemu/include/hw/ppc/pnv_psi.h
/openbmc/qemu/include/hw/ppc/pnv_xive.h
/openbmc/qemu/include/hw/ppc/spapr_irq.h
/openbmc/qemu/include/hw/ppc/xics.h
/openbmc/qemu/include/hw/ppc/xive.h
/openbmc/qemu/include/hw/ppc/xive2_regs.h
/openbmc/qemu/include/hw/ppc/xive_regs.h
/openbmc/qemu/monitor/hmp-cmds.c
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/kvm/kvm-cpu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/tests/avocado/mem-addr-space-check.py
85743f5417-Jun-2024 Richard Henderson <richard.henderson@linaro.org>

Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* i386: fix issue with cache topology passthrough
* scsi-disk: migrate emulated requests
* i386/sev: fix Coverity issues
* i3

Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* i386: fix issue with cache topology passthrough
* scsi-disk: migrate emulated requests
* i386/sev: fix Coverity issues
* i386/tcg: more conversions to new decoder

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmZv6kMUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroOn4Af/evnpsae1fm8may1NQmmezKiks/4X
# cR0GaQ7w75Oas05jKsG7Xnrq3Vn6p5wllf3Wf00p7F1iJX18azY9rQgIsUVUgVem
# /EIZk1eM6+mDxuIG0taPxc5Aw3cfIBWAjUmzsXrSr55e/wyiIxZCeUo2zk8Il+iL
# Z4ceNzY5PZzc2Fl10D3cGs/+ynfiDM53ucwe3ve2T6NrxEVfKQPp5jkIUkBUba6z
# zM5O4Q5KTEZYVth1gbDTB/uUJLUFjQ12kCQfRCNX+bEPDHwARr0UWr/Oxtz0jZSd
# FvXohz7tI+v+ph0xHyE4tEFqryvLCII1td2ohTAYZZXNGkjK6XZildngBw==
# =m4BE
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 17 Jun 2024 12:48:19 AM PDT
# gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg: issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full]

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (25 commits)
target/i386: SEV: do not assume machine->cgs is SEV
target/i386: convert CMPXCHG to new decoder
target/i386: convert XADD to new decoder
target/i386: convert LZCNT/TZCNT/BSF/BSR/POPCNT to new decoder
target/i386: convert SHLD/SHRD to new decoder
target/i386: adapt gen_shift_count for SHLD/SHRD
target/i386: pull load/writeback out of gen_shiftd_rm_T1
target/i386: convert non-grouped, helper-based 2-byte opcodes
target/i386: split X86_CHECK_prot into PE and VM86 checks
target/i386: finish converting 0F AE to the new decoder
target/i386: fix bad sorting of entries in the 0F table
target/i386: replace read_crN helper with read_cr8
target/i386: convert MOV from/to CR and DR to new decoder
target/i386: fix processing of intercept 0 (read CR0)
target/i386: replace NoSeg special with NoLoadEA
target/i386: change X86_ENTRYwr to use T0, use it for moves
target/i386: change X86_ENTRYr to use T0
target/i386: put BLS* input in T1, use generic flag writeback
target/i386: rewrite flags writeback for ADCX/ADOX
target/i386: remove CPUX86State argument from generator functions
...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/docs/system/arm/aspeed.rst
/openbmc/qemu/hw/arm/aspeed.c
/openbmc/qemu/hw/arm/aspeed_ast27x0.c
/openbmc/qemu/hw/arm/meson.build
/openbmc/qemu/hw/arm/xen_arm.c
machine.c
/openbmc/qemu/hw/intc/aspeed_intc.c
/openbmc/qemu/hw/intc/meson.build
/openbmc/qemu/hw/intc/trace-events
/openbmc/qemu/hw/misc/aspeed_scu.c
/openbmc/qemu/hw/misc/aspeed_sdmc.c
/openbmc/qemu/hw/misc/aspeed_sli.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/scsi/scsi-disk.c
/openbmc/qemu/hw/ssi/aspeed_smc.c
/openbmc/qemu/hw/ssi/trace-events
/openbmc/qemu/hw/watchdog/wdt_aspeed.c
/openbmc/qemu/hw/xen/xen-hvm-common.c
/openbmc/qemu/hw/xen/xen-mapcache.c
/openbmc/qemu/include/hw/arm/aspeed_soc.h
/openbmc/qemu/include/hw/intc/aspeed_intc.h
/openbmc/qemu/include/hw/misc/aspeed_scu.h
/openbmc/qemu/include/hw/misc/aspeed_sdmc.h
/openbmc/qemu/include/hw/misc/aspeed_sli.h
/openbmc/qemu/include/hw/ssi/aspeed_smc.h
/openbmc/qemu/include/hw/watchdog/wdt_aspeed.h
/openbmc/qemu/include/hw/xen/xen-hvm-common.h
/openbmc/qemu/include/sysemu/xen-mapcache.h
/openbmc/qemu/include/sysemu/xen.h
/openbmc/qemu/migration/multifd-uadk.c
/openbmc/qemu/system/physmem.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.h
/openbmc/qemu/target/i386/sev.c
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/decode-new.h
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/seg_helper.c
/openbmc/qemu/target/i386/tcg/sysemu/misc_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/tests/avocado/machine_aspeed.py
/openbmc/qemu/tests/qtest/migration-test.c
f3d8bb7507-Jun-2024 Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>

migration/multifd: add uadk compression framework

Adds the skeleton to support uadk compression method.
Complete functionality will be added in subsequent patches.

Acked-by: Markus Armbruster <armb

migration/multifd: add uadk compression framework

Adds the skeleton to support uadk compression method.
Complete functionality will be added in subsequent patches.

Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Reviewed-by: Zhangfei Gao <zhangfei.gao@linaro.org>
Signed-off-by: Fabiano Rosas <farosas@suse.de>

show more ...

354cac2810-Jun-2024 Yuan Liu <yuan1.liu@intel.com>

migration/multifd: add qpl compression method

add the Query Processing Library (QPL) compression method

Introduce the qpl as a new multifd migration compression method, it can
use In-Memory Analyti

migration/multifd: add qpl compression method

add the Query Processing Library (QPL) compression method

Introduce the qpl as a new multifd migration compression method, it can
use In-Memory Analytics Accelerator(IAA) to accelerate compression and
decompression, which can not only reduce network bandwidth requirement
but also reduce host compression and decompression CPU overhead.

How to enable qpl compression during migration:
migrate_set_parameter multifd-compression qpl

There is no qpl compression level parameter added since it only supports
level one, users do not need to specify the qpl compression level.

Signed-off-by: Yuan Liu <yuan1.liu@intel.com>
Reviewed-by: Nanhai Zou <nanhai.zou@intel.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
[fixed docs spacing in migration.json]
Signed-off-by: Fabiano Rosas <farosas@suse.de>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-s390x.yml
/openbmc/qemu/accel/hvf/hvf-accel-ops.c
/openbmc/qemu/accel/hvf/hvf-all.c
/openbmc/qemu/backends/hostmem.c
/openbmc/qemu/backends/tpm/tpm_util.c
/openbmc/qemu/backends/tpm/trace-events
/openbmc/qemu/block/copy-before-write.c
/openbmc/qemu/block/crypto.c
/openbmc/qemu/block/file-posix.c
/openbmc/qemu/block/linux-aio.c
/openbmc/qemu/block/qcow.c
/openbmc/qemu/block/qcow2.c
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/configure
/openbmc/qemu/crypto/block-luks.c
/openbmc/qemu/crypto/block-qcow.c
/openbmc/qemu/crypto/block.c
/openbmc/qemu/crypto/blockpriv.h
/openbmc/qemu/disas/microblaze.c
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/docs/devel/build-system.rst
/openbmc/qemu/docs/devel/ci-jobs.rst.inc
/openbmc/qemu/docs/devel/ci-runners.rst.inc
/openbmc/qemu/docs/devel/migration/features.rst
/openbmc/qemu/docs/devel/migration/qpl-compression.rst
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/system/target-i386-desc.rst.inc
/openbmc/qemu/fpu/softfloat-specialize.c.inc
qdev-properties-system.c
/openbmc/qemu/hw/dma/pl330.c
/openbmc/qemu/hw/ide/atapi.c
/openbmc/qemu/hw/intc/loongarch_extioi.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/mips/malta.c
/openbmc/qemu/hw/scsi/scsi-disk.c
/openbmc/qemu/hw/sh4/trace-events
/openbmc/qemu/hw/usb/trace-events
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/include/block/aio.h
/openbmc/qemu/include/block/raw-aio.h
/openbmc/qemu/include/crypto/block.h
/openbmc/qemu/include/hw/intc/loongarch_extioi.h
/openbmc/qemu/include/hw/loongarch/virt.h
/openbmc/qemu/include/qemu/cutils.h
/openbmc/qemu/include/sysemu/hvf_int.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/hexagon/cpu_loop.c
/openbmc/qemu/linux-user/ioctls.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/multifd-qpl.c
/openbmc/qemu/migration/multifd-zlib.c
/openbmc/qemu/migration/multifd-zstd.c
/openbmc/qemu/migration/multifd.c
/openbmc/qemu/migration/multifd.h
/openbmc/qemu/python/scripts/mkvenv.py
/openbmc/qemu/python/scripts/vendor.py
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qapi/qmp-dispatch.c
/openbmc/qemu/qemu-io-cmds.c
/openbmc/qemu/scripts/ci/setup/ubuntu/build-environment.yml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-armhf-cross.yml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
/openbmc/qemu/scripts/kvm/vmxcap
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/scripts/tracetool/__init__.py
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/system/qtest.c
/openbmc/qemu/target/hexagon/cpu.h
/openbmc/qemu/target/hexagon/cpu_bits.h
/openbmc/qemu/target/hexagon/gen_trans_funcs.py
/openbmc/qemu/target/hexagon/idef-parser/idef-parser.h
/openbmc/qemu/target/hexagon/idef-parser/idef-parser.y
/openbmc/qemu/target/hexagon/idef-parser/parser-helpers.c
/openbmc/qemu/target/hexagon/idef-parser/parser-helpers.h
/openbmc/qemu/target/hexagon/macros.h
/openbmc/qemu/target/hexagon/op_helper.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.c
/openbmc/qemu/target/i386/hvf/hvf.c
/openbmc/qemu/target/i386/hvf/vmx.h
/openbmc/qemu/target/i386/hvf/x86_cpuid.c
/openbmc/qemu/target/i386/hvf/x86_decode.c
/openbmc/qemu/target/i386/hvf/x86_emu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/machine.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/sparc/asi.h
/openbmc/qemu/target/sparc/cpu-feature.h.inc
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/target/sparc/fop_helper.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/insns.decode
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/sparc/vis_helper.c
/openbmc/qemu/tests/avocado/machine_loongarch.py
/openbmc/qemu/tests/docker/dockerfiles/alpine.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-amd64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armhf-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mipsel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-s390x-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu2204.docker
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/lcitool/projects/qemu-win-installer.yml
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/migration/Makefile
/openbmc/qemu/tests/migration/migration-test.h
/openbmc/qemu/tests/migration/ppc64/Makefile
/openbmc/qemu/tests/migration/ppc64/a-b-kernel.S
/openbmc/qemu/tests/migration/ppc64/a-b-kernel.h
/openbmc/qemu/tests/qtest/boot-serial-test.c
/openbmc/qemu/tests/qtest/libqos/libqos-spapr.h
/openbmc/qemu/tests/qtest/libqos/loongarch-virt-machine.c
/openbmc/qemu/tests/qtest/libqos/meson.build
/openbmc/qemu/tests/qtest/libqtest.c
/openbmc/qemu/tests/qtest/libqtest.h
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/numa-test.c
/openbmc/qemu/tests/qtest/ppc-util.h
/openbmc/qemu/tests/qtest/prom-env-test.c
/openbmc/qemu/tests/qtest/pxe-test.c
/openbmc/qemu/tests/qtest/test-x86-cpuid-compat.c
/openbmc/qemu/tests/tcg/hexagon/Makefile.target
/openbmc/qemu/tests/tcg/hexagon/hvx_misc.c
/openbmc/qemu/tests/tcg/hexagon/unaligned_pc.c
/openbmc/qemu/tests/tcg/s390x/Makefile.softmmu-target
/openbmc/qemu/tests/unit/test-crypto-block.c
/openbmc/qemu/tests/unit/test-smp-parse.c
/openbmc/qemu/tests/vm/Makefile.include
/openbmc/qemu/tests/vm/centos.aarch64
/openbmc/qemu/util/hexdump.c
b4912afa24-May-2024 Hyman Huang <yong.huang@smartx.com>

scsi-disk: Fix crash for VM configured with USB CDROM after live migration

For VMs configured with the USB CDROM device:

-drive file=/path/to/local/file,id=drive-usb-disk0,media=cdrom,readonly=on..

scsi-disk: Fix crash for VM configured with USB CDROM after live migration

For VMs configured with the USB CDROM device:

-drive file=/path/to/local/file,id=drive-usb-disk0,media=cdrom,readonly=on...
-device usb-storage,drive=drive-usb-disk0,id=usb-disk0...

QEMU process may crash after live migration, to reproduce the issue,
configure VM (Guest OS ubuntu 20.04 or 21.10) with the following XML:

<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/path/to/share_fs/cdrom.iso'/>
<target dev='sda' bus='usb'/>
<readonly/>
<address type='usb' bus='0' port='2'/>
</disk>
<controller type='usb' index='0' model='piix3-uhci'/>

Do the live migration repeatedly, crash may happen after live migratoin,
trace log at the source before live migration is as follows:

324808@1711972823.521945:usb_uhci_frame_start nr 319
324808@1711972823.521978:usb_uhci_qh_load qh 0x35cb5400
324808@1711972823.521989:usb_uhci_qh_load qh 0x35cb5480
324808@1711972823.521997:usb_uhci_td_load qh 0x35cb5480, td 0x35cbe000, ctrl 0x0, token 0xffe07f69
324808@1711972823.522010:usb_uhci_td_nextqh qh 0x35cb5480, td 0x35cbe000
324808@1711972823.522022:usb_uhci_qh_load qh 0x35cb5680
324808@1711972823.522030:usb_uhci_td_load qh 0x35cb5680, td 0x75ac5180, ctrl 0x19800000, token 0x3c903e1
324808@1711972823.522045:usb_uhci_packet_add token 0x103e1, td 0x75ac5180
324808@1711972823.522056:usb_packet_state_change bus 0, port 2, ep 2, packet 0x559f9ba14b00, state undef -> setup
324808@1711972823.522079:usb_msd_cmd_submit lun 0, tag 0x472, flags 0x00000080, len 10, data-len 8
324808@1711972823.522107:scsi_req_parsed target 0 lun 0 tag 1138 command 74 dir 1 length 8
324808@1711972823.522124:scsi_req_parsed_lba target 0 lun 0 tag 1138 command 74 lba 4096
324808@1711972823.522139:scsi_req_alloc target 0 lun 0 tag 1138
324808@1711972823.522169:scsi_req_continue target 0 lun 0 tag 1138
324808@1711972823.522181:scsi_req_data target 0 lun 0 tag 1138 len 8
324808@1711972823.522194:usb_packet_state_change bus 0, port 2, ep 2, packet 0x559f9ba14b00, state setup -> complete
324808@1711972823.522209:usb_uhci_packet_complete_success token 0x103e1, td 0x75ac5180
324808@1711972823.522219:usb_uhci_packet_del token 0x103e1, td 0x75ac5180
324808@1711972823.522232:usb_uhci_td_complete qh 0x35cb5680, td 0x75ac5180

trace log at the destination after live migration is as follows:

3286206@1711972823.951646:usb_uhci_frame_start nr 320
3286206@1711972823.951663:usb_uhci_qh_load qh 0x35cb5100
3286206@1711972823.951671:usb_uhci_qh_load qh 0x35cb5480
3286206@1711972823.951680:usb_uhci_td_load qh 0x35cb5480, td 0x35cbe000, ctrl 0x1000000, token 0xffe07f69
3286206@1711972823.951693:usb_uhci_td_nextqh qh 0x35cb5480, td 0x35cbe000
3286206@1711972823.951702:usb_uhci_qh_load qh 0x35cb5700
3286206@1711972823.951709:usb_uhci_td_load qh 0x35cb5700, td 0x75ac5240, ctrl 0x39800000, token 0xe08369
3286206@1711972823.951727:usb_uhci_queue_add token 0x8369
3286206@1711972823.951735:usb_uhci_packet_add token 0x8369, td 0x75ac5240
3286206@1711972823.951746:usb_packet_state_change bus 0, port 2, ep 1, packet 0x56066b2fb5a0, state undef -> setup
3286206@1711972823.951766:usb_msd_data_in 8/8 (scsi 8)
2024-04-01 12:00:24.665+0000: shutting down, reason=crashed

The backtrace reveals the following:

Program terminated with signal SIGSEGV, Segmentation fault.
0 __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:312
312 movq -8(%rsi,%rdx), %rcx
[Current thread is 1 (Thread 0x7f0a9025fc00 (LWP 3286206))]
(gdb) bt
0 __memmove_sse2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:312
1 memcpy (__len=8, __src=<optimized out>, __dest=<optimized out>) at /usr/include/bits/string_fortified.h:34
2 iov_from_buf_full (iov=<optimized out>, iov_cnt=<optimized out>, offset=<optimized out>, buf=0x0, bytes=bytes@entry=8) at ../util/iov.c:33
3 iov_from_buf (bytes=8, buf=<optimized out>, offset=<optimized out>, iov_cnt=<optimized out>, iov=<optimized out>)
at /usr/src/debug/qemu-6-6.2.0-75.7.oe1.smartx.git.40.x86_64/include/qemu/iov.h:49
4 usb_packet_copy (p=p@entry=0x56066b2fb5a0, ptr=<optimized out>, bytes=bytes@entry=8) at ../hw/usb/core.c:636
5 usb_msd_copy_data (s=s@entry=0x56066c62c770, p=p@entry=0x56066b2fb5a0) at ../hw/usb/dev-storage.c:186
6 usb_msd_handle_data (dev=0x56066c62c770, p=0x56066b2fb5a0) at ../hw/usb/dev-storage.c:496
7 usb_handle_packet (dev=0x56066c62c770, p=p@entry=0x56066b2fb5a0) at ../hw/usb/core.c:455
8 uhci_handle_td (s=s@entry=0x56066bd5f210, q=0x56066bb7fbd0, q@entry=0x0, qh_addr=qh_addr@entry=902518530, td=td@entry=0x7fffe6e788f0, td_addr=<optimized out>,
int_mask=int_mask@entry=0x7fffe6e788e4) at ../hw/usb/hcd-uhci.c:885
9 uhci_process_frame (s=s@entry=0x56066bd5f210) at ../hw/usb/hcd-uhci.c:1061
10 uhci_frame_timer (opaque=opaque@entry=0x56066bd5f210) at ../hw/usb/hcd-uhci.c:1159
11 timerlist_run_timers (timer_list=0x56066af26bd0) at ../util/qemu-timer.c:642
12 qemu_clock_run_timers (type=QEMU_CLOCK_VIRTUAL) at ../util/qemu-timer.c:656
13 qemu_clock_run_all_timers () at ../util/qemu-timer.c:738
14 main_loop_wait (nonblocking=nonblocking@entry=0) at ../util/main-loop.c:542
15 qemu_main_loop () at ../softmmu/runstate.c:739
16 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at ../softmmu/main.c:52
(gdb) frame 5
(gdb) p ((SCSIDiskReq *)s->req)->iov
$1 = {iov_base = 0x0, iov_len = 0}
(gdb) p/x s->req->tag
$2 = 0x472

When designing the USB mass storage device model, QEMU places SCSI disk
device as the backend of USB mass storage device. In addition, USB mass
device driver in Guest OS conforms to the "Universal Serial Bus Mass
Storage Class Bulk-Only Transport" specification in order to simulate
the transform behavior between a USB controller and a USB mass device.
The following shows the protocol hierarchy:

+----------------+
CDROM driver | scsi command | CDROM
+----------------+

+-----------------------+
USB mass | USB Mass Storage Class| USB mass
storage driver | Bulk-Only Transport | storage device
+-----------------------+

+----------------+
USB Controller | USB Protocol | USB device
+----------------+

In the USB protocol layer, between the USB controller and USB device, at
least two USB packets will be transformed when guest OS send a
read operation to USB mass storage device:

1. The CBW packet, which will be delivered to the USB device's Bulk-Out
endpoint. In order to simulate a read operation, the USB mass storage
device parses the CBW and converts it to a SCSI command, which would be
executed by CDROM(represented as SCSI disk in QEMU internally), and store
the result data of the SCSI command in a buffer.

2. The DATA-IN packet, which will be delivered from the USB device's
Bulk-In endpoint(fetched directly from the preceding buffer) to the USB
controller.

We consider UHCI to be the controller. The two packets mentioned above may
have been processed by UHCI in two separate frame entries of the Frame List
, and also described by two different TDs. Unlike the physical environment,
a virtualized environment requires the QEMU to make sure that the result
data of CBW is not lost and is delivered to the UHCI controller.

Currently, these types of SCSI requests are not migrated, so QEMU cannot
ensure the result data of the IO operation is not lost if there are
inflight emulated SCSI requests during the live migration.

Assume for the moment that the USB mass storage device is processing the
CBW and storing the result data of the read operation to a buffre, live
migration happens and moves the VM to the destination while not migrating
the result data of the read operation.

After migration, when UHCI at the destination issues a DATA-IN request to
the USB mass storage device, a crash happens because USB mass storage device
fetches the result data and get nothing.

The scenario this patch addresses is this one.

Theoretically, any device that uses the SCSI disk as a back-end would be
affected by this issue. In this case, it is the USB CDROM.

To fix it, inflight emulated SCSI request be migrated during live migration,
similar to the DMA SCSI request.

Signed-off-by: Hyman Huang <yong.huang@smartx.com>
Message-ID: <878c8f093f3fc2f584b5c31cb2490d9f6a12131a.1716531409.git.yong.huang@smartx.com>
[Do not bump migration version, introduce compat property instead. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch32.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-aarch64.yml
/openbmc/qemu/.gitlab-ci.d/custom-runners/ubuntu-22.04-s390x.yml
/openbmc/qemu/accel/hvf/hvf-accel-ops.c
/openbmc/qemu/accel/hvf/hvf-all.c
/openbmc/qemu/backends/hostmem.c
/openbmc/qemu/bsd-user/main.c
/openbmc/qemu/configure
/openbmc/qemu/disas/microblaze.c
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/docs/devel/build-system.rst
/openbmc/qemu/docs/devel/ci-jobs.rst.inc
/openbmc/qemu/docs/devel/ci-runners.rst.inc
/openbmc/qemu/docs/devel/testing.rst
/openbmc/qemu/docs/system/target-i386-desc.rst.inc
/openbmc/qemu/fpu/softfloat-specialize.c.inc
machine.c
/openbmc/qemu/hw/dma/pl330.c
/openbmc/qemu/hw/ide/atapi.c
/openbmc/qemu/hw/intc/loongarch_extioi.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/mips/malta.c
/openbmc/qemu/hw/scsi/scsi-disk.c
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/include/hw/intc/loongarch_extioi.h
/openbmc/qemu/include/hw/loongarch/virt.h
/openbmc/qemu/include/qemu/cutils.h
/openbmc/qemu/include/sysemu/hvf_int.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/hexagon/cpu_loop.c
/openbmc/qemu/linux-user/ioctls.h
/openbmc/qemu/linux-user/main.c
/openbmc/qemu/python/scripts/mkvenv.py
/openbmc/qemu/python/scripts/vendor.py
/openbmc/qemu/scripts/ci/setup/ubuntu/build-environment.yml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-armhf-cross.yml
/openbmc/qemu/scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml
/openbmc/qemu/scripts/kvm/vmxcap
/openbmc/qemu/stubs/meson.build
/openbmc/qemu/system/qtest.c
/openbmc/qemu/target/hexagon/cpu.h
/openbmc/qemu/target/hexagon/cpu_bits.h
/openbmc/qemu/target/hexagon/gen_trans_funcs.py
/openbmc/qemu/target/hexagon/idef-parser/idef-parser.h
/openbmc/qemu/target/hexagon/idef-parser/idef-parser.y
/openbmc/qemu/target/hexagon/idef-parser/parser-helpers.c
/openbmc/qemu/target/hexagon/idef-parser/parser-helpers.h
/openbmc/qemu/target/hexagon/macros.h
/openbmc/qemu/target/hexagon/op_helper.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.c
/openbmc/qemu/target/i386/hvf/hvf.c
/openbmc/qemu/target/i386/hvf/vmx.h
/openbmc/qemu/target/i386/hvf/x86_cpuid.c
/openbmc/qemu/target/i386/hvf/x86_decode.c
/openbmc/qemu/target/i386/hvf/x86_emu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/machine.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/sparc/asi.h
/openbmc/qemu/target/sparc/cpu-feature.h.inc
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/target/sparc/fop_helper.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/insns.decode
/openbmc/qemu/target/sparc/ldst_helper.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/sparc/vis_helper.c
/openbmc/qemu/tests/docker/dockerfiles/alpine.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/lcitool/libvirt-ci
/openbmc/qemu/tests/lcitool/projects/qemu-win-installer.yml
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/qtest/libqos/loongarch-virt-machine.c
/openbmc/qemu/tests/qtest/libqos/meson.build
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/numa-test.c
/openbmc/qemu/tests/tcg/hexagon/Makefile.target
/openbmc/qemu/tests/tcg/hexagon/hvx_misc.c
/openbmc/qemu/tests/tcg/hexagon/unaligned_pc.c
/openbmc/qemu/tests/vm/Makefile.include
/openbmc/qemu/tests/vm/centos.aarch64
/openbmc/qemu/util/hexdump.c
a2b6a96506-Jun-2024 Paolo Bonzini <pbonzini@redhat.com>

machine, hostmem: improve error messages for unsupported features

Detect early unsupported MADV_MERGEABLE and MADV_DONTDUMP, and print a clearer
error message that points to the deficiency of the ho

machine, hostmem: improve error messages for unsupported features

Detect early unsupported MADV_MERGEABLE and MADV_DONTDUMP, and print a clearer
error message that points to the deficiency of the host.

Cc: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

75dbebdd06-Jun-2024 Paolo Bonzini <pbonzini@redhat.com>

machine: default -M mem-merge to off is QEMU_MADV_MERGEABLE is not available

Otherwise, starting any guest on a non-Linux guests results in

qemu-system-arm: Couldn't set property 'merge' on 'memory

machine: default -M mem-merge to off is QEMU_MADV_MERGEABLE is not available

Otherwise, starting any guest on a non-Linux guests results in

qemu-system-arm: Couldn't set property 'merge' on 'memory-backend-ram': Invalid argument

Cc: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

f1572ab905-Jun-2024 Richard Henderson <richard.henderson@linaro.org>

Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* virtio-blk: remove SCSI passthrough functionality
* require x86-64-v2 baseline ISA
* SEV-SNP host support
* fix xsave.flat

Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging

* virtio-blk: remove SCSI passthrough functionality
* require x86-64-v2 baseline ISA
* SEV-SNP host support
* fix xsave.flat with TCG
* fixes for CPUID checks done by TCG

# -----BEGIN PGP SIGNATURE-----
#
# iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmZgKVYUHHBib256aW5p
# QHJlZGhhdC5jb20ACgkQv/vSX3jHroPKYgf/QkWrNXdjjD3yAsv5LbJFVTVyCYW3
# b4Iax29kEDy8k9wbzfLxOfIk9jXIjmbOMO5ZN9LFiHK6VJxbXslsMh6hm50M3xKe
# 49X1Rvf9YuVA7KZX+dWkEuqLYI6Tlgj3HaCilYWfXrjyo6hY3CxzkPV/ChmaeYlV
# Ad4Y8biifoUuuEK8OTeTlcDWLhOHlFXylG3AXqULsUsXp0XhWJ9juXQ60eATv/W4
# eCEH7CSmRhYFu2/rV+IrWFYMnskLRTk1OC1/m6yXGPKOzgnOcthuvQfiUgPkbR/d
# llY6Ni5Aaf7+XX3S7Avcyvoq8jXzaaMzOrzL98rxYGDR1sYBYO+4h4ZToA==
# =qQeP
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 05 Jun 2024 02:01:10 AM PDT
# gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg: issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full]

* tag 'for-upstream' of https://gitlab.com/bonzini/qemu: (46 commits)
hw/i386: Add support for loading BIOS using guest_memfd
hw/i386/sev: Use guest_memfd for legacy ROMs
memory: Introduce memory_region_init_ram_guest_memfd()
i386/sev: Allow measured direct kernel boot on SNP
i386/sev: Reorder struct declarations
i386/sev: Extract build_kernel_loader_hashes
i386/sev: Enable KVM_HC_MAP_GPA_RANGE hcall for SNP guests
i386/kvm: Add KVM_EXIT_HYPERCALL handling for KVM_HC_MAP_GPA_RANGE
i386/sev: Invoke launch_updata_data() for SNP class
i386/sev: Invoke launch_updata_data() for SEV class
hw/i386/sev: Add support to encrypt BIOS when SEV-SNP is enabled
i386/sev: Add support for SNP CPUID validation
i386/sev: Add support for populating OVMF metadata pages
hw/i386/sev: Add function to get SEV metadata from OVMF header
i386/sev: Set CPU state to protected once SNP guest payload is finalized
i386/sev: Add handling to encrypt/finalize guest launch data
i386/sev: Add the SNP launch start context
i386/sev: Update query-sev QAPI format to handle SEV-SNP
i386/sev: Add a class method to determine KVM VM type for SNP guests
i386/sev: Don't return launch measurements for SEV-SNP guests
...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/pci_expander_bridge.txt
/openbmc/qemu/docs/specs/tpm.rst
/openbmc/qemu/docs/system/i386/amd-memory-encryption.rst
/openbmc/qemu/ebpf/ebpf_rss.c
/openbmc/qemu/ebpf/rss.bpf.skeleton.h
/openbmc/qemu/ebpf/trace.h
/openbmc/qemu/host/include/i386/host/cpuinfo.h
/openbmc/qemu/hw/9pfs/xen-9p-backend.c
/openbmc/qemu/hw/acpi/memory_hotplug.c
/openbmc/qemu/hw/block/virtio-blk.c
machine.c
/openbmc/qemu/hw/display/xenfb.c
/openbmc/qemu/hw/dma/xlnx_dpdma.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/i386/pc_sysfw.c
/openbmc/qemu/hw/i386/x86-common.c
/openbmc/qemu/hw/intc/riscv_aplic.c
/openbmc/qemu/hw/misc/debugexit.c
/openbmc/qemu/hw/misc/pvpanic-isa.c
/openbmc/qemu/hw/misc/pvpanic-pci.c
/openbmc/qemu/hw/misc/pvpanic.c
/openbmc/qemu/hw/net/e1000e.c
/openbmc/qemu/hw/net/igb.c
/openbmc/qemu/hw/net/net_tx_pkt.c
/openbmc/qemu/hw/net/virtio-net.c
/openbmc/qemu/hw/net/vmxnet3.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/riscv/boot.c
/openbmc/qemu/hw/usb/Kconfig
/openbmc/qemu/hw/usb/meson.build
/openbmc/qemu/hw/usb/xen-usb.c
/openbmc/qemu/hw/xen/xen-hvm-common.c
/openbmc/qemu/hw/xen/xen-legacy-backend.c
/openbmc/qemu/hw/xenpv/xen_machine_pv.c
/openbmc/qemu/include/exec/confidential-guest-support.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/boards.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/i386/x86.h
/openbmc/qemu/include/hw/xen/xen-legacy-backend.h
/openbmc/qemu/include/hw/xen/xen_pvdev.h
/openbmc/qemu/include/net/net.h
/openbmc/qemu/include/standard-headers/linux/kvm_para.h
/openbmc/qemu/include/standard-headers/misc/pvpanic.h
/openbmc/qemu/include/sysemu/xen.h
/openbmc/qemu/io/channel-tls.c
/openbmc/qemu/io/channel-websock.c
/openbmc/qemu/linux-headers/asm-loongarch/kvm.h
/openbmc/qemu/linux-headers/asm-riscv/kvm.h
/openbmc/qemu/linux-headers/asm-x86/kvm.h
/openbmc/qemu/linux-headers/asm-x86/kvm_para.h
/openbmc/qemu/linux-headers/linux/kvm_para.h
/openbmc/qemu/linux-headers/linux/vhost.h
/openbmc/qemu/meson.build
/openbmc/qemu/net/dump.c
/openbmc/qemu/net/net.c
/openbmc/qemu/net/netmap.c
/openbmc/qemu/net/tap-bsd.c
/openbmc/qemu/net/tap-linux.c
/openbmc/qemu/net/tap-solaris.c
/openbmc/qemu/net/tap-stub.c
/openbmc/qemu/net/tap.c
/openbmc/qemu/net/tap_int.h
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/qapi/misc-target.json
/openbmc/qemu/qapi/qom.json
/openbmc/qemu/qapi/trace.json
/openbmc/qemu/qga/main.c
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/physmem.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/kvm/kvm_i386.h
/openbmc/qemu/target/i386/kvm/trace-events
/openbmc/qemu/target/i386/sev-sysemu-stub.c
/openbmc/qemu/target/i386/sev.c
/openbmc/qemu/target/i386/sev.h
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/decode-new.h
/openbmc/qemu/target/i386/tcg/fpu_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/i386/trace-events
/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/helper.h
/openbmc/qemu/target/riscv/insn_trans/trans_privileged.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvv.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzawrs.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzicbo.c.inc
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/riscv/meson.build
/openbmc/qemu/target/riscv/op_helper.c
/openbmc/qemu/target/riscv/sbi_ecall_interface.h
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/target/riscv/tcg/tcg-cpu.h
/openbmc/qemu/target/riscv/th_csr.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/riscv/vector_internals.c
/openbmc/qemu/tcg/i386/tcg-target.c.inc
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tests/avocado/intel_iommu.py
/openbmc/qemu/tests/avocado/smmu.py
/openbmc/qemu/tests/avocado/tuxrun_baselines.py
/openbmc/qemu/tests/qemu-iotests/tests/nbd-tls-iothread
/openbmc/qemu/tests/qemu-iotests/tests/nbd-tls-iothread.out
/openbmc/qemu/tools/ebpf/Makefile.ebpf
/openbmc/qemu/tools/ebpf/rss.bpf.c
/openbmc/qemu/trace/qmp.c
/openbmc/qemu/trace/trace-hmp-cmds.c
/openbmc/qemu/util/bufferiszero.c
/openbmc/qemu/util/cpuinfo-i386.c
dc0d28ca31-May-2024 Paolo Bonzini <pbonzini@redhat.com>

machine: allow early use of machine_require_guest_memfd

Ask the ConfidentialGuestSupport object whether to use guest_memfd
for KVM-backend private memory. This bool can be set in instance_init
(or

machine: allow early use of machine_require_guest_memfd

Ask the ConfidentialGuestSupport object whether to use guest_memfd
for KVM-backend private memory. This bool can be set in instance_init
(or user_complete) so that it is available when the machine is created.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...

a271b8d710-May-2024 Paolo Bonzini <pbonzini@redhat.com>

virtio-blk: remove SCSI passthrough functionality

The legacy SCSI passthrough functionality has never been enabled for
VIRTIO 1.0 and was deprecated more than four years ago.

Get rid of it---almost

virtio-blk: remove SCSI passthrough functionality

The legacy SCSI passthrough functionality has never been enabled for
VIRTIO 1.0 and was deprecated more than four years ago.

Get rid of it---almost, because QEMU is advertising it unconditionally
for legacy virtio-blk devices. Just parse the header and return a
nonzero status.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/audio/meson.build
/openbmc/qemu/block/backup.c
/openbmc/qemu/block/block-copy.c
/openbmc/qemu/block/copy-before-write.c
/openbmc/qemu/block/copy-before-write.h
/openbmc/qemu/block/meson.build
/openbmc/qemu/block/mirror.c
/openbmc/qemu/block/replication.c
/openbmc/qemu/block/vmdk.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/configure
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/about/removed-features.rst
/openbmc/qemu/docs/devel/multi-thread-tcg.rst
/openbmc/qemu/docs/pci_expander_bridge.txt
/openbmc/qemu/docs/specs/tpm.rst
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/docs/system/arm/raspi.rst
/openbmc/qemu/docs/system/target-arm.rst
/openbmc/qemu/dump/win_dump.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/boot.c
/openbmc/qemu/hw/arm/npcm7xx.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/xilinx_zynq.c
/openbmc/qemu/hw/block/virtio-blk.c
/openbmc/qemu/hw/char/omap_uart.c
/openbmc/qemu/hw/char/stm32l4x5_usart.c
machine.c
/openbmc/qemu/hw/dma/xlnx_dpdma.c
/openbmc/qemu/hw/gpio/zaurus.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/x86-common.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/input/tsc2005.c
/openbmc/qemu/hw/intc/arm_gic.c
/openbmc/qemu/hw/loongarch/acpi-build.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ufs/trace-events
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/ufs/ufs.h
/openbmc/qemu/hw/usb/hcd-ohci.c
/openbmc/qemu/hw/usb/trace-events
/openbmc/qemu/include/block/block-common.h
/openbmc/qemu/include/block/block-copy.h
/openbmc/qemu/include/block/block_int-global-state.h
/openbmc/qemu/include/block/ufs.h
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/hw/core/tcg-cpu-ops.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/i386/topology.h
/openbmc/qemu/include/hw/s390x/s390_flic.h
/openbmc/qemu/include/qapi/clone-visitor.h
/openbmc/qemu/include/qapi/qmp/qerror.h
/openbmc/qemu/include/qemu/lockable.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/linux-user/i386/signal.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/dirtyrate.c
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/qemu-file.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/qapi-clone-visitor.c
/openbmc/qemu/qemu-keymap.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/commands-win32.c
/openbmc/qemu/qga/commands.c
/openbmc/qemu/scripts/oss-fuzz/build.sh
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/system/cpus.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/helper.h
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/machine.c
/openbmc/qemu/target/arm/tcg/a64.decode
/openbmc/qemu/target/arm/tcg/cpu64.c
/openbmc/qemu/target/arm/tcg/gengvec.c
/openbmc/qemu/target/arm/tcg/gengvec64.c
/openbmc/qemu/target/arm/tcg/helper-a64.h
/openbmc/qemu/target/arm/tcg/meson.build
/openbmc/qemu/target/arm/tcg/neon-dp.decode
/openbmc/qemu/target/arm/tcg/neon_helper.c
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/arm/tcg/t32.decode
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate-a64.h
/openbmc/qemu/target/arm/tcg/translate-neon.c
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/target/arm/tcg/translate-vfp.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/arm/tcg/vec_helper.c
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.c
/openbmc/qemu/target/i386/helper.h
/openbmc/qemu/target/i386/kvm/hyperv.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/ops_sse.h
/openbmc/qemu/target/i386/tcg/access.c
/openbmc/qemu/target/i386/tcg/access.h
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/fpu_helper.c
/openbmc/qemu/target/i386/tcg/helper-tcg.h
/openbmc/qemu/target/i386/tcg/int_helper.c
/openbmc/qemu/target/i386/tcg/meson.build
/openbmc/qemu/target/i386/tcg/seg_helper.c
/openbmc/qemu/target/i386/tcg/sysemu/seg_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/kvm/kvm.c
/openbmc/qemu/target/loongarch/machine.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/fpu_helper.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/insn32.decode
/openbmc/qemu/target/ppc/int_helper.c
/openbmc/qemu/target/ppc/internal.h
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/machine.c
/openbmc/qemu/target/ppc/mem_helper.c
/openbmc/qemu/target/ppc/meson.build
/openbmc/qemu/target/ppc/misc_helper.c
/openbmc/qemu/target/ppc/mmu-book3s-v3.h
/openbmc/qemu/target/ppc/mmu-booke.c
/openbmc/qemu/target/ppc/mmu-booke.h
/openbmc/qemu/target/ppc/mmu-hash32.c
/openbmc/qemu/target/ppc/mmu-hash32.h
/openbmc/qemu/target/ppc/mmu-hash64.c
/openbmc/qemu/target/ppc/mmu-radix64.c
/openbmc/qemu/target/ppc/mmu_common.c
/openbmc/qemu/target/ppc/mmu_helper.c
/openbmc/qemu/target/ppc/power8-pmu-regs.c.inc
/openbmc/qemu/target/ppc/power8-pmu.c
/openbmc/qemu/target/ppc/power8-pmu.h
/openbmc/qemu/target/ppc/spr_common.h
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate/bhrb-impl.c.inc
/openbmc/qemu/target/ppc/translate/branch-impl.c.inc
/openbmc/qemu/target/ppc/translate/fixedpoint-impl.c.inc
/openbmc/qemu/target/ppc/translate/fp-impl.c.inc
/openbmc/qemu/target/ppc/translate/fp-ops.c.inc
/openbmc/qemu/target/ppc/translate/misc-impl.c.inc
/openbmc/qemu/target/ppc/translate/processor-ctrl-impl.c.inc
/openbmc/qemu/target/ppc/translate/storage-ctrl-impl.c.inc
/openbmc/qemu/target/ppc/translate/vmx-impl.c.inc
/openbmc/qemu/target/ppc/translate/vmx-ops.c.inc
/openbmc/qemu/target/s390x/cpu.c
/openbmc/qemu/target/s390x/cpu.h
/openbmc/qemu/target/s390x/helper.h
/openbmc/qemu/target/s390x/tcg/excp_helper.c
/openbmc/qemu/target/s390x/tcg/misc_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/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.h
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/meson.build
/openbmc/qemu/tcg/ppc/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/tcg-op-vec.c
/openbmc/qemu/tests/avocado/intel_iommu.py
/openbmc/qemu/tests/avocado/machine_aarch64_sbsaref.py
/openbmc/qemu/tests/avocado/smmu.py
/openbmc/qemu/tests/avocado/tuxrun_baselines.py
/openbmc/qemu/tests/qemu-iotests/257.out
/openbmc/qemu/tests/qemu-iotests/pylintrc
/openbmc/qemu/tests/qemu-iotests/tests/backup-discard-source
/openbmc/qemu/tests/qemu-iotests/tests/backup-discard-source.out
/openbmc/qemu/tests/qtest/fuzz/generic_fuzz_configs.h
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/tcg/s390x/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/s390x/per.S
/openbmc/qemu/tests/tcg/x86_64/Makefile.target
/openbmc/qemu/tests/tcg/x86_64/test-1648.c
/openbmc/qemu/tests/unit/test-x86-topo.c
/openbmc/qemu/ui/meson.build
638181a130-May-2024 Alex Bennée <alex.bennee@linaro.org>

core/cpu-common: initialise plugin state before thread creation

Originally I tried to move where vCPU thread initialisation to later
in realize. However pulling that thread (sic) got gnarly really
q

core/cpu-common: initialise plugin state before thread creation

Originally I tried to move where vCPU thread initialisation to later
in realize. However pulling that thread (sic) got gnarly really
quickly. It turns out some steps of CPU realization need values that
can only be determined from the running vCPU thread.

However having moved enough out of the thread creation we can now
queue work before the thread starts (at least for TCG guests) and
avoid the race between vcpu_init and other vcpu states a plugin might
subscribe to.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-ID: <20240530194250.1801701-6-alex.bennee@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>

show more ...

a4c2735f30-May-2024 Alex Bennée <alex.bennee@linaro.org>

cpu: move Qemu[Thread|Cond] setup into common code

Aside from the round robin threads this is all common code. By
moving the halt_cond setup we also no longer need hacks to work around
the race betw

cpu: move Qemu[Thread|Cond] setup into common code

Aside from the round robin threads this is all common code. By
moving the halt_cond setup we also no longer need hacks to work around
the race between QOM object creation and thread creation.

It is a little ugly to free stuff up for the round robin thread but
better it deal with its own specialises than making the other
accelerators jump through hoops.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-ID: <20240530194250.1801701-3-alex.bennee@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/dummy-cpus.c
/openbmc/qemu/accel/hvf/hvf-accel-ops.c
/openbmc/qemu/accel/kvm/kvm-accel-ops.c
/openbmc/qemu/accel/kvm/kvm-all.c
/openbmc/qemu/accel/tcg/cpu-exec.c
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/internal-common.h
/openbmc/qemu/accel/tcg/internal-target.h
/openbmc/qemu/accel/tcg/tcg-accel-ops-mttcg.c
/openbmc/qemu/accel/tcg/tcg-accel-ops-rr.c
/openbmc/qemu/accel/tcg/tcg-all.c
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/audio/meson.build
/openbmc/qemu/block/backup.c
/openbmc/qemu/block/block-copy.c
/openbmc/qemu/block/copy-before-write.c
/openbmc/qemu/block/copy-before-write.h
/openbmc/qemu/block/meson.build
/openbmc/qemu/block/mirror.c
/openbmc/qemu/block/replication.c
/openbmc/qemu/block/vmdk.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/configure
/openbmc/qemu/disas/m68k.c
/openbmc/qemu/disas/microblaze.c
/openbmc/qemu/docs/devel/multi-thread-tcg.rst
/openbmc/qemu/docs/system/arm/emulation.rst
/openbmc/qemu/docs/system/arm/raspi.rst
/openbmc/qemu/docs/system/target-arm.rst
/openbmc/qemu/dump/win_dump.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/boot.c
/openbmc/qemu/hw/arm/npcm7xx.c
/openbmc/qemu/hw/arm/sbsa-ref.c
/openbmc/qemu/hw/arm/xilinx_zynq.c
/openbmc/qemu/hw/char/omap_uart.c
/openbmc/qemu/hw/char/stm32l4x5_usart.c
cpu-common.c
/openbmc/qemu/hw/dma/xlnx_dpdma.c
/openbmc/qemu/hw/gpio/zaurus.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/x86-common.c
/openbmc/qemu/hw/i386/x86.c
/openbmc/qemu/hw/input/tsc2005.c
/openbmc/qemu/hw/intc/arm_gic.c
/openbmc/qemu/hw/loongarch/acpi-build.c
/openbmc/qemu/hw/loongarch/virt.c
/openbmc/qemu/hw/ppc/pegasos2.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ufs/trace-events
/openbmc/qemu/hw/ufs/ufs.c
/openbmc/qemu/hw/ufs/ufs.h
/openbmc/qemu/hw/usb/hcd-ohci.c
/openbmc/qemu/hw/usb/trace-events
/openbmc/qemu/hw/virtio/trace-events
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/include/block/block-common.h
/openbmc/qemu/include/block/block-copy.h
/openbmc/qemu/include/block/block_int-global-state.h
/openbmc/qemu/include/block/ufs.h
/openbmc/qemu/include/exec/exec-all.h
/openbmc/qemu/include/hw/core/cpu.h
/openbmc/qemu/include/hw/core/tcg-cpu-ops.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/i386/topology.h
/openbmc/qemu/include/hw/s390x/s390_flic.h
/openbmc/qemu/include/qapi/clone-visitor.h
/openbmc/qemu/include/qapi/qmp/qerror.h
/openbmc/qemu/include/qemu/cutils.h
/openbmc/qemu/include/qemu/lockable.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/linux-user/i386/signal.c
/openbmc/qemu/meson.build
/openbmc/qemu/migration/dirtyrate.c
/openbmc/qemu/migration/meson.build
/openbmc/qemu/migration/qemu-file.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/qapi-clone-visitor.c
/openbmc/qemu/qemu-keymap.c
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/commands-win32.c
/openbmc/qemu/qga/commands.c
/openbmc/qemu/scripts/oss-fuzz/build.sh
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/system/cpus.c
/openbmc/qemu/system/runstate.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/cpu.h
/openbmc/qemu/target/arm/cpu64.c
/openbmc/qemu/target/arm/helper.c
/openbmc/qemu/target/arm/helper.h
/openbmc/qemu/target/arm/hvf/hvf.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/machine.c
/openbmc/qemu/target/arm/tcg/a64.decode
/openbmc/qemu/target/arm/tcg/cpu64.c
/openbmc/qemu/target/arm/tcg/gengvec.c
/openbmc/qemu/target/arm/tcg/gengvec64.c
/openbmc/qemu/target/arm/tcg/helper-a64.h
/openbmc/qemu/target/arm/tcg/meson.build
/openbmc/qemu/target/arm/tcg/neon-dp.decode
/openbmc/qemu/target/arm/tcg/neon_helper.c
/openbmc/qemu/target/arm/tcg/op_helper.c
/openbmc/qemu/target/arm/tcg/t32.decode
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate-a64.h
/openbmc/qemu/target/arm/tcg/translate-neon.c
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/target/arm/tcg/translate-vfp.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/arm/tcg/vec_helper.c
/openbmc/qemu/target/arm/vfp_helper.c
/openbmc/qemu/target/i386/cpu.c
/openbmc/qemu/target/i386/cpu.h
/openbmc/qemu/target/i386/helper.c
/openbmc/qemu/target/i386/helper.h
/openbmc/qemu/target/i386/kvm/hyperv.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/nvmm/nvmm-accel-ops.c
/openbmc/qemu/target/i386/ops_sse.h
/openbmc/qemu/target/i386/tcg/access.c
/openbmc/qemu/target/i386/tcg/access.h
/openbmc/qemu/target/i386/tcg/decode-new.c.inc
/openbmc/qemu/target/i386/tcg/emit.c.inc
/openbmc/qemu/target/i386/tcg/fpu_helper.c
/openbmc/qemu/target/i386/tcg/helper-tcg.h
/openbmc/qemu/target/i386/tcg/int_helper.c
/openbmc/qemu/target/i386/tcg/meson.build
/openbmc/qemu/target/i386/tcg/seg_helper.c
/openbmc/qemu/target/i386/tcg/sysemu/seg_helper.c
/openbmc/qemu/target/i386/tcg/translate.c
/openbmc/qemu/target/i386/whpx/whpx-accel-ops.c
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/kvm/kvm.c
/openbmc/qemu/target/loongarch/machine.c
/openbmc/qemu/target/mips/tcg/sysemu/cp0_helper.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/fpu_helper.c
/openbmc/qemu/target/ppc/helper.h
/openbmc/qemu/target/ppc/helper_regs.c
/openbmc/qemu/target/ppc/insn32.decode
/openbmc/qemu/target/ppc/int_helper.c
/openbmc/qemu/target/ppc/internal.h
/openbmc/qemu/target/ppc/kvm.c
/openbmc/qemu/target/ppc/machine.c
/openbmc/qemu/target/ppc/mem_helper.c
/openbmc/qemu/target/ppc/meson.build
/openbmc/qemu/target/ppc/misc_helper.c
/openbmc/qemu/target/ppc/mmu-book3s-v3.h
/openbmc/qemu/target/ppc/mmu-booke.c
/openbmc/qemu/target/ppc/mmu-booke.h
/openbmc/qemu/target/ppc/mmu-hash32.c
/openbmc/qemu/target/ppc/mmu-hash32.h
/openbmc/qemu/target/ppc/mmu-hash64.c
/openbmc/qemu/target/ppc/mmu-radix64.c
/openbmc/qemu/target/ppc/mmu_common.c
/openbmc/qemu/target/ppc/mmu_helper.c
/openbmc/qemu/target/ppc/power8-pmu-regs.c.inc
/openbmc/qemu/target/ppc/power8-pmu.c
/openbmc/qemu/target/ppc/power8-pmu.h
/openbmc/qemu/target/ppc/spr_common.h
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/ppc/translate/bhrb-impl.c.inc
/openbmc/qemu/target/ppc/translate/branch-impl.c.inc
/openbmc/qemu/target/ppc/translate/fixedpoint-impl.c.inc
/openbmc/qemu/target/ppc/translate/fp-impl.c.inc
/openbmc/qemu/target/ppc/translate/fp-ops.c.inc
/openbmc/qemu/target/ppc/translate/misc-impl.c.inc
/openbmc/qemu/target/ppc/translate/processor-ctrl-impl.c.inc
/openbmc/qemu/target/ppc/translate/storage-ctrl-impl.c.inc
/openbmc/qemu/target/ppc/translate/vmx-impl.c.inc
/openbmc/qemu/target/ppc/translate/vmx-ops.c.inc
/openbmc/qemu/target/riscv/cpu.c
/openbmc/qemu/target/riscv/cpu.h
/openbmc/qemu/target/riscv/cpu_helper.c
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/s390x/cpu.c
/openbmc/qemu/target/s390x/cpu.h
/openbmc/qemu/target/s390x/helper.h
/openbmc/qemu/target/s390x/tcg/excp_helper.c
/openbmc/qemu/target/s390x/tcg/misc_helper.c
/openbmc/qemu/target/s390x/tcg/translate.c
/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.h
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/meson.build
/openbmc/qemu/tcg/ppc/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/tcg-op-vec.c
/openbmc/qemu/tests/avocado/machine_aarch64_sbsaref.py
/openbmc/qemu/tests/qemu-iotests/257.out
/openbmc/qemu/tests/qemu-iotests/pylintrc
/openbmc/qemu/tests/qemu-iotests/tests/backup-discard-source
/openbmc/qemu/tests/qemu-iotests/tests/backup-discard-source.out
/openbmc/qemu/tests/qtest/fuzz/generic_fuzz_configs.h
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/tcg/s390x/Makefile.softmmu-target
/openbmc/qemu/tests/tcg/s390x/per.S
/openbmc/qemu/tests/tcg/x86_64/Makefile.target
/openbmc/qemu/tests/tcg/x86_64/test-1648.c
/openbmc/qemu/tests/unit/test-x86-topo.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/util/hexdump.c
7e1c004722-May-2024 Richard Henderson <richard.henderson@linaro.org>

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

Migration pull request

- Li Zhijian's COLO minor fixes
- Marc-André's virtio-gpu fix
- Fiona's virtio-net

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

Migration pull request

- Li Zhijian's COLO minor fixes
- Marc-André's virtio-gpu fix
- Fiona's virtio-net USO fix
- A couple of migration-test fixes from Thomas

# -----BEGIN PGP SIGNATURE-----
#
# iQJEBAABCAAuFiEEqhtIsKIjJqWkw2TPx5jcdBvsMZ0FAmZObggQHGZhcm9zYXNA
# c3VzZS5kZQAKCRDHmNx0G+wxnWE8D/49RGE+g29qyk9aKx3lU8mSq+ZzmX5GncBt
# 5+Mx5qoHDsBCQTE+dQpEVIoeMJ2HIbgbOML4qsnp6Hw/4/TWkfwC/R6+ZmHBevRk
# fVLkVh2JMHVg8Tq+0FO1X1QnMU03uJ7EAuWdDa8HqlJ5dQY/K3gDaku8oQBXk96X
# 13pChSbMob76tdb+wiwbdEakabigH7XfrPdI6lzI8MCGTIcPKc/UKTFYuoj/OsNx
# raqy+uBtvKtfHxiaYnIgHIPNAF/1f4tP3iAOcPoZWIMXWxFkE8+ANDJAbWo6xIcL
# DGg/wEzZO/OnXLjOhjvLBUHK/fx4wQ5bsqA09BVxoRyBGblkXr+bcwBLYjgiEqzT
# aniPiAx5W/Db+T7HqZPIWesFYj3cmcwvYUTrx/RPMdC0epG+ZczDMtescHdZbxvt
# Pjs3nFeCLhyYcVhlTI72eXRCxdd/26+r6/OmrBC2+GaZrybM61TvNo+3XvO0Pfhi
# UmwF2EN27XmSMelLvH/MnflUVgBHKDs3CCQzDlxreHq2jMVR0SL7LU5wMJJ58Iok
# M3u74izQM25bwYxiASH+4iRn0puH1mOwgOx28W0uiQfZY/678/lCnwa1Tul15BRE
# fIQZJhyIGzhSpwLqEXmdXdlLQs1isqIgpd/mzKgZ285nLr7kz+4gxCUqiXgVbrl7
# P45Dym1u4g==
# =DDrh
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 22 May 2024 03:13:28 PM PDT
# gpg: using RSA key AA1B48B0A22326A5A4C364CFC798DC741BEC319D
# gpg: issuer "farosas@suse.de"
# gpg: Good signature from "Fabiano Rosas <farosas@suse.de>" [unknown]
# gpg: aka "Fabiano Almeida Rosas <fabiano.rosas@suse.com>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: AA1B 48B0 A223 26A5 A4C3 64CF C798 DC74 1BEC 319D

* tag 'migration-20240522-pull-request' of https://gitlab.com/farosas/qemu:
tests/qtest/migration-test: Fix the check for a successful run of analyze-migration.py
tests/qtest/migration-test: Run some basic tests on s390x and ppc64 with TCG, too
hw/core/machine: move compatibility flags for VirtIO-net USO to machine 8.1
virtio-gpu: fix v2 migration
migration: fix a typo
migration: add "exists" info to load-state-field trace
migration/colo: Tidy up bql_unlock() around bdrv_activate_all()
migration/colo: make colo_incoming_co() return void
migration/colo: Minor fix for colo error message

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

show more ...

9710401217-May-2024 Fiona Ebner <f.ebner@proxmox.com>

hw/core/machine: move compatibility flags for VirtIO-net USO to machine 8.1

Migration from an 8.2 or 9.0 binary to an 8.1 binary with machine
version 8.1 can fail with:

> kvm: Features 0x1c0010130a

hw/core/machine: move compatibility flags for VirtIO-net USO to machine 8.1

Migration from an 8.2 or 9.0 binary to an 8.1 binary with machine
version 8.1 can fail with:

> kvm: Features 0x1c0010130afffa7 unsupported. Allowed features: 0x10179bfffe7
> kvm: Failed to load virtio-net:virtio
> kvm: error while loading state for instance 0x0 of device '0000:00:12.0/virtio-net'
> kvm: load of migration failed: Operation not permitted

The series

53da8b5a99 virtio-net: Add support for USO features
9da1684954 virtio-net: Add USO flags to vhost support.
f03e0cf63b tap: Add check for USO features
2ab0ec3121 tap: Add USO support to tap device.

only landed in QEMU 8.2, so the compatibility flags should be part of
machine version 8.1.

Moving the flags unfortunately breaks forward migration with machine
version 8.1 from a binary without this patch to a binary with this
patch.

Fixes: 53da8b5a99 ("virtio-net: Add support for USO features")
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>

show more ...

40a23ef616-May-2024 Marc-André Lureau <marcandre.lureau@redhat.com>

virtio-gpu: fix v2 migration

Commit dfcf74fa ("virtio-gpu: fix scanout migration post-load") broke
forward/backward version migration. Versioning of nested VMSD structures
is not straightforward, as

virtio-gpu: fix v2 migration

Commit dfcf74fa ("virtio-gpu: fix scanout migration post-load") broke
forward/backward version migration. Versioning of nested VMSD structures
is not straightforward, as the wire format doesn't have nested
structures versions. Introduce x-scanout-vmstate-version and a field
test to save/load appropriately according to the machine version.

Fixes: dfcf74fa ("virtio-gpu: fix scanout migration post-load")
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
[fixed long lines]
Signed-off-by: Fabiano Rosas <farosas@suse.de>

show more ...


machine.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/intc/s390_flic.c
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/migration/colo.h
/openbmc/qemu/migration/colo-stubs.c
/openbmc/qemu/migration/colo.c
/openbmc/qemu/migration/migration.c
/openbmc/qemu/migration/trace-events
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/tests/docker/dockerfiles/alpine.docker
/openbmc/qemu/tests/docker/dockerfiles/centos9.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-amd64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armhf-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mipsel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-s390x-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/docker/dockerfiles/opensuse-leap.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu2204.docker
/openbmc/qemu/tests/guest-debug/test_gdbstub.py
/openbmc/qemu/tests/lcitool/projects/qemu-minimal.yml
/openbmc/qemu/tests/lcitool/projects/qemu-win-installer.yml
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/unit/test-smp-parse.c
6af8037c22-May-2024 Richard Henderson <richard.henderson@linaro.org>

Merge tag 'pull-vfio-20240522' of https://github.com/legoater/qemu into staging

vfio queue:

* Improvement of error reporting during migration
* Removed Vendor Specific Capability check on newer mac

Merge tag 'pull-vfio-20240522' of https://github.com/legoater/qemu into staging

vfio queue:

* Improvement of error reporting during migration
* Removed Vendor Specific Capability check on newer machine
* Addition of a VFIO migration QAPI event
* Changed prototype of routines using an error parameter to return bool
* Several cleanups regarding autofree variables

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEoPZlSPBIlev+awtgUaNDx8/77KEFAmZNwDEACgkQUaNDx8/7
# 7KHaYQ/+MUFOiWEiAwJdP8I1DkY6mJV3ZDixKMHLmr8xH6fAkR2htEw6UUcYijcn
# Z0wVvcB7A1wetgIAB2EPc2o6JtRD1uEW2pPq3SVpdWO2rWYa4QLvldOiJ8A+Kvss
# 0ZugWirgZsM7+ka9TCuysmqWdQD+P6z2RURMSwiPi6QPHwv1Tt69gLSxFeV5WWai
# +mS6wUbaU3LSt6yRhORRvFkCss4je3D3YR73ivholGHANxi/7C5T22KwOHrW6Qzf
# uk3W/zq1yL1YLXSu6WoKPw0mMCvNtGyKK2oAlhG3Ln1tPYnctNrlfXlApqxEOGl3
# adGtwd6fyg6UTRR+vOXEy1QPCGcHtKWc5SuV5E677JftARJMwzbXrJw9Y9xS2RCQ
# oRYS5814k9RdubTxu+/l8NLICMdox7dNy//QLyrIdD7nJKYhFODkV1giWh4NWkt6
# m0T3PGLlUJ/V2ngWQu9Aw150m3lCPEKt+Nv/mGOEFDRu9dv55Vb7oJwr1dBB/n+e
# 1lNNpDmV0YipoKYMzrlBwNwxhXGJOtNPwHtw/vZuiy70CXUwo0t4XLMpWbWasxZc
# 0yz4O9RLRJEhPtPqv54aLsE2kNY10I8vwHBlhyNgIEsA7eCDduA+65aPBaqIF7z6
# GjvYdixF+vAZFexn0mDi1gtM3Yh60Hiiq1j7kKyyti/q0WUQzIc=
# =awMc
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 22 May 2024 02:51:45 AM PDT
# gpg: using RSA key A0F66548F04895EBFE6B0B6051A343C7CFFBECA1
# gpg: Good signature from "Cédric Le Goater <clg@kaod.org>" [undefined]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: A0F6 6548 F048 95EB FE6B 0B60 51A3 43C7 CFFB ECA1

* tag 'pull-vfio-20240522' of https://github.com/legoater/qemu: (47 commits)
vfio/igd: Use g_autofree in vfio_probe_igd_bar4_quirk()
vfio: Use g_autofree in all call site of vfio_get_region_info()
vfio/pci-quirks: Make vfio_add_*_cap() return bool
vfio/pci-quirks: Make vfio_pci_igd_opregion_init() return bool
vfio/pci: Use g_autofree for vfio_region_info pointer
vfio/pci: Make capability related functions return bool
vfio/pci: Make vfio_populate_vga() return bool
vfio/pci: Make vfio_intx_enable() return bool
vfio/pci: Make vfio_populate_device() return a bool
vfio/pci: Make vfio_pci_relocate_msix() and vfio_msix_early_setup() return a bool
vfio/pci: Make vfio_intx_enable_kvm() return a bool
vfio/ccw: Make vfio_ccw_get_region() return a bool
vfio/platform: Make vfio_populate_device() and vfio_base_device_init() return bool
vfio/helpers: Make vfio_device_get_name() return bool
vfio/helpers: Make vfio_set_irq_signaling() return bool
vfio/helpers: Use g_autofree in vfio_set_irq_signaling()
vfio/display: Make vfio_display_*() return bool
vfio/display: Fix error path in call site of ramfb_setup()
backends/iommufd: Make iommufd_backend_*() return bool
vfio/cpr: Make vfio_cpr_register_container() return bool
...

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
/openbmc/qemu/backends/iommufd.c
/openbmc/qemu/backends/trace-events
machine.c
/openbmc/qemu/hw/intc/s390_flic.c
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container-base.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/cpr.c
/openbmc/qemu/hw/vfio/display.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/igd.c
/openbmc/qemu/hw/vfio/iommufd.c
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/vfio/pci-quirks.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/pci.h
/openbmc/qemu/hw/vfio/platform.c
/openbmc/qemu/hw/vfio/spapr.c
/openbmc/qemu/hw/vfio/trace-events
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-container-base.h
/openbmc/qemu/include/migration/misc.h
/openbmc/qemu/include/sysemu/iommufd.h
/openbmc/qemu/migration/migration.c
/openbmc/qemu/qapi/meson.build
/openbmc/qemu/qapi/qapi-schema.json
/openbmc/qemu/qapi/vfio.json
/openbmc/qemu/system/memory.c
/openbmc/qemu/tests/docker/dockerfiles/alpine.docker
/openbmc/qemu/tests/docker/dockerfiles/centos9.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-amd64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-armhf-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-i686-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mips64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-mipsel-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-ppc64el-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-riscv64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-s390x-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-win64-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora.docker
/openbmc/qemu/tests/docker/dockerfiles/opensuse-leap.docker
/openbmc/qemu/tests/docker/dockerfiles/ubuntu2204.docker
/openbmc/qemu/tests/guest-debug/test_gdbstub.py
/openbmc/qemu/tests/lcitool/projects/qemu-minimal.yml
/openbmc/qemu/tests/lcitool/projects/qemu-win-installer.yml
/openbmc/qemu/tests/lcitool/projects/qemu.yml
/openbmc/qemu/tests/lcitool/refresh
/openbmc/qemu/tests/unit/test-smp-parse.c
9d7950ed13-May-2024 Daniel P. Berrangé <berrange@redhat.com>

hw/core: allow parameter=1 for SMP topology on any machine

This effectively reverts

commit 54c4ea8f3ae614054079395842128a856a73dbf9
Author: Zhao Liu <zhao1.liu@intel.com>
Date: Sat Mar 9 00

hw/core: allow parameter=1 for SMP topology on any machine

This effectively reverts

commit 54c4ea8f3ae614054079395842128a856a73dbf9
Author: Zhao Liu <zhao1.liu@intel.com>
Date: Sat Mar 9 00:01:37 2024 +0800

hw/core/machine-smp: Deprecate unsupported "parameter=1" SMP configurations

but is not done as a 'git revert' since the part of the changes to the
file hw/core/machine-smp.c which add 'has_XXX' checks remain desirable.
Furthermore, we have to tweak the subsequently added unit test to
account for differing warning message.

The rationale for the original deprecation was:

"Currently, it was allowed for users to specify the unsupported
topology parameter as "1". For example, x86 PC machine doesn't
support drawer/book/cluster topology levels, but user could specify
"-smp drawers=1,books=1,clusters=1".

This is meaningless and confusing, so that the support for this kind
of configurations is marked deprecated since 9.0."

There are varying POVs on the topic of 'unsupported' topology levels.

It is common to say that on a system without hyperthreading, that there
is always 1 thread. Likewise when new CPUs introduced a concept of
multiple "dies', it was reasonable to say that all historical CPUs
before that implicitly had 1 'die'. Likewise for the more recently
introduced 'modules' and 'clusters' parameter'. From this POV, it is
valid to set 'parameter=1' on the -smp command line for any machine,
only a value > 1 is strictly an error condition.

It doesn't cause any functional difficulty for QEMU, because internally
the QEMU code is itself assuming that all "unsupported" parameters
implicitly have a value of '1'.

At the libvirt level, we've allowed applications to set 'parameter=1'
when configuring a guest, and pass that through to QEMU.

Deprecating this creates extra difficulty for because there's no info
exposed from QEMU about which machine types "support" which parameters.
Thus, libvirt can't know whether it is valid to pass 'parameter=1' for
a given machine type, or whether it will trigger deprecation messages.

Since there's no apparent functional benefit to deleting this deprecated
behaviour from QEMU, and it creates problems for consumers of QEMU,
remove this deprecation.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Message-ID: <20240513123358.612355-2-berrange@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest-template.yml
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/Kconfig.host
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/block/gluster.c
/openbmc/qemu/block/nbd.c
/openbmc/qemu/block/nfs.c
/openbmc/qemu/block/ssh.c
/openbmc/qemu/configs/targets/aarch64-softmmu.mak
/openbmc/qemu/configs/targets/arm-softmmu.mak
/openbmc/qemu/configs/targets/i386-softmmu.mak
/openbmc/qemu/configs/targets/loongarch64-softmmu.mak
/openbmc/qemu/configs/targets/microblaze-softmmu.mak
/openbmc/qemu/configs/targets/microblazeel-softmmu.mak
/openbmc/qemu/configs/targets/mips64el-softmmu.mak
/openbmc/qemu/configs/targets/or1k-softmmu.mak
/openbmc/qemu/configs/targets/ppc-softmmu.mak
/openbmc/qemu/configs/targets/ppc64-softmmu.mak
/openbmc/qemu/configs/targets/riscv32-softmmu.mak
/openbmc/qemu/configs/targets/riscv64-softmmu.mak
/openbmc/qemu/configs/targets/rx-softmmu.mak
/openbmc/qemu/configs/targets/x86_64-softmmu.mak
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/execlog.c
/openbmc/qemu/contrib/plugins/howvec.c
/openbmc/qemu/disas/disas-common.c
/openbmc/qemu/disas/disas-host.c
/openbmc/qemu/disas/disas-internal.h
/openbmc/qemu/disas/disas-mon.c
/openbmc/qemu/disas/disas-target.c
/openbmc/qemu/disas/meson.build
/openbmc/qemu/disas/objdump.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/block/pflash_cfi01.c
machine-smp.c
/openbmc/qemu/hw/display/vhost-user-gpu.c
/openbmc/qemu/hw/display/virtio-gpu-udmabuf.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/loongarch/Kconfig
/openbmc/qemu/hw/mips/Kconfig
/openbmc/qemu/hw/openrisc/Kconfig
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/riscv/Kconfig
/openbmc/qemu/hw/rx/Kconfig
/openbmc/qemu/hw/vfio/display.c
/openbmc/qemu/hw/xtensa/Kconfig
/openbmc/qemu/hw/xtensa/xtfpga.c
/openbmc/qemu/include/disas/disas.h
/openbmc/qemu/include/exec/cpu_ldst.h
/openbmc/qemu/include/exec/plugin-gen.h
/openbmc/qemu/include/exec/translator.h
/openbmc/qemu/include/glib-compat.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/qemu/plugin.h
/openbmc/qemu/include/qemu/qemu-plugin.h
/openbmc/qemu/include/qemu/typedefs.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/include/ui/dmabuf.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/hppa/cpu_loop.c
/openbmc/qemu/linux-user/hppa/signal.c
/openbmc/qemu/linux-user/hppa/target_cpu.h
/openbmc/qemu/meson.build
/openbmc/qemu/plugins/api.c
/openbmc/qemu/plugins/core.c
/openbmc/qemu/plugins/plugin.h
/openbmc/qemu/plugins/qemu-plugins.symbols
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/commands-posix-ssh.c
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/target/alpha/translate.c
/openbmc/qemu/target/arm/Kconfig
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/avr/translate.c
/openbmc/qemu/target/cris/translate.c
/openbmc/qemu/target/cris/translate_v10.c.inc
/openbmc/qemu/target/hexagon/translate.c
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/fpu_helper.c
/openbmc/qemu/target/hppa/gdbstub.c
/openbmc/qemu/target/hppa/helper.c
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/op_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/loongarch/tcg/translate.c
/openbmc/qemu/target/m68k/translate.c
/openbmc/qemu/target/microblaze/Kconfig
/openbmc/qemu/target/microblaze/translate.c
/openbmc/qemu/target/mips/tcg/translate.c
/openbmc/qemu/target/openrisc/Kconfig
/openbmc/qemu/target/openrisc/translate.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/riscv/Kconfig
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/rx/translate.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/tricore/translate.c
/openbmc/qemu/target/xtensa/translate.c
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tests/docker/dockerfiles/debian-all-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-hexagon-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-legacy-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-loongarch-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-tricore-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-xtensa-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-cris-cross.docker
/openbmc/qemu/tests/plugin/inline.c
/openbmc/qemu/tests/tcg/arm/Makefile.softmmu-target
/openbmc/qemu/tests/unit/test-smp-parse.c
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/dbus-console.c
/openbmc/qemu/ui/dbus-listener.c
/openbmc/qemu/ui/dmabuf.c
/openbmc/qemu/ui/egl-headless.c
/openbmc/qemu/ui/egl-helpers.c
/openbmc/qemu/ui/gtk-egl.c
/openbmc/qemu/ui/gtk-gl-area.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/sdl2.c
/openbmc/qemu/ui/spice-display.c
/openbmc/qemu/ui/trace-events
/openbmc/qemu/ui/vnc.c
/openbmc/qemu/util/error-report.c
/openbmc/qemu/util/meson.build
187716fe03-May-2024 Vinayak Kale <vkale@nvidia.com>

vfio/pci: migration: Skip config space check for Vendor Specific Information in VSC during restore/load

In case of migration, during restore operation, qemu checks config space of the
pci device wit

vfio/pci: migration: Skip config space check for Vendor Specific Information in VSC during restore/load

In case of migration, during restore operation, qemu checks config space of the
pci device with the config space in the migration stream captured during save
operation. In case of config space data mismatch, restore operation is failed.

config space check is done in function get_pci_config_device(). By default VSC
(vendor-specific-capability) in config space is checked.

Due to qemu's config space check for VSC, live migration is broken across NVIDIA
vGPU devices in situation where source and destination host driver is different.
In this situation, Vendor Specific Information in VSC varies on the destination
to ensure vGPU feature capabilities exposed to the guest driver are compatible
with destination host.

If a vfio-pci device is migration capable and vfio-pci vendor driver is OK with
volatile Vendor Specific Info in VSC then qemu should exempt config space check
for Vendor Specific Info. It is vendor driver's responsibility to ensure that
VSC is consistent across migration. Here consistency could mean that VSC format
should be same on source and destination, however actual Vendor Specific Info
may not be byte-to-byte identical.

This patch skips the check for Vendor Specific Information in VSC for VFIO-PCI
device by clearing pdev->cmask[] offsets. Config space check is still enforced
for 3 byte VSC header. If cmask[] is not set for an offset, then qemu skips
config space check for that offset.

VSC check is skipped for machine types >= 9.1. The check would be enforced on
older machine types (<= 9.0).

Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Vinayak Kale <vkale@nvidia.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Cédric Le Goater <clg@redhat.com>

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest-template.yml
/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/Kconfig.host
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/accel/tcg/translator.c
/openbmc/qemu/block/gluster.c
/openbmc/qemu/block/nbd.c
/openbmc/qemu/block/nfs.c
/openbmc/qemu/block/ssh.c
/openbmc/qemu/configs/targets/aarch64-softmmu.mak
/openbmc/qemu/configs/targets/arm-softmmu.mak
/openbmc/qemu/configs/targets/i386-softmmu.mak
/openbmc/qemu/configs/targets/loongarch64-softmmu.mak
/openbmc/qemu/configs/targets/microblaze-softmmu.mak
/openbmc/qemu/configs/targets/microblazeel-softmmu.mak
/openbmc/qemu/configs/targets/mips64el-softmmu.mak
/openbmc/qemu/configs/targets/or1k-softmmu.mak
/openbmc/qemu/configs/targets/ppc-softmmu.mak
/openbmc/qemu/configs/targets/ppc64-softmmu.mak
/openbmc/qemu/configs/targets/riscv32-softmmu.mak
/openbmc/qemu/configs/targets/riscv64-softmmu.mak
/openbmc/qemu/configs/targets/rx-softmmu.mak
/openbmc/qemu/configs/targets/x86_64-softmmu.mak
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/execlog.c
/openbmc/qemu/contrib/plugins/howvec.c
/openbmc/qemu/disas/disas-common.c
/openbmc/qemu/disas/disas-host.c
/openbmc/qemu/disas/disas-internal.h
/openbmc/qemu/disas/disas-mon.c
/openbmc/qemu/disas/disas-target.c
/openbmc/qemu/disas/meson.build
/openbmc/qemu/disas/objdump.c
/openbmc/qemu/hw/arm/Kconfig
machine.c
/openbmc/qemu/hw/display/vhost-user-gpu.c
/openbmc/qemu/hw/display/virtio-gpu-udmabuf.c
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/loongarch/Kconfig
/openbmc/qemu/hw/mips/Kconfig
/openbmc/qemu/hw/openrisc/Kconfig
/openbmc/qemu/hw/ppc/Kconfig
/openbmc/qemu/hw/riscv/Kconfig
/openbmc/qemu/hw/rx/Kconfig
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container-base.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/display.c
/openbmc/qemu/hw/vfio/migration.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/pci.h
/openbmc/qemu/hw/virtio/vhost-vdpa.c
/openbmc/qemu/hw/xtensa/Kconfig
/openbmc/qemu/hw/xtensa/xtfpga.c
/openbmc/qemu/include/disas/disas.h
/openbmc/qemu/include/exec/cpu_ldst.h
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/exec/plugin-gen.h
/openbmc/qemu/include/exec/translator.h
/openbmc/qemu/include/glib-compat.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/vfio/vfio-container-base.h
/openbmc/qemu/include/hw/virtio/virtio-gpu.h
/openbmc/qemu/include/migration/misc.h
/openbmc/qemu/include/qemu/plugin.h
/openbmc/qemu/include/qemu/qemu-plugin.h
/openbmc/qemu/include/qemu/typedefs.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/include/ui/dmabuf.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/hppa/cpu_loop.c
/openbmc/qemu/linux-user/hppa/signal.c
/openbmc/qemu/linux-user/hppa/target_cpu.h
/openbmc/qemu/meson.build
/openbmc/qemu/migration/migration.c
/openbmc/qemu/plugins/api.c
/openbmc/qemu/plugins/core.c
/openbmc/qemu/plugins/plugin.h
/openbmc/qemu/plugins/qemu-plugins.symbols
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/qga/commands-posix-ssh.c
/openbmc/qemu/scripts/update-linux-headers.sh
/openbmc/qemu/system/memory.c
/openbmc/qemu/target/alpha/translate.c
/openbmc/qemu/target/arm/Kconfig
/openbmc/qemu/target/arm/tcg/translate-a64.c
/openbmc/qemu/target/arm/tcg/translate.c
/openbmc/qemu/target/avr/translate.c
/openbmc/qemu/target/cris/translate.c
/openbmc/qemu/target/cris/translate_v10.c.inc
/openbmc/qemu/target/hexagon/translate.c
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/fpu_helper.c
/openbmc/qemu/target/hppa/gdbstub.c
/openbmc/qemu/target/hppa/helper.c
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/mem_helper.c
/openbmc/qemu/target/hppa/op_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/loongarch/tcg/translate.c
/openbmc/qemu/target/m68k/translate.c
/openbmc/qemu/target/microblaze/Kconfig
/openbmc/qemu/target/microblaze/translate.c
/openbmc/qemu/target/mips/tcg/translate.c
/openbmc/qemu/target/openrisc/Kconfig
/openbmc/qemu/target/openrisc/translate.c
/openbmc/qemu/target/ppc/translate.c
/openbmc/qemu/target/riscv/Kconfig
/openbmc/qemu/target/riscv/translate.c
/openbmc/qemu/target/rx/translate.c
/openbmc/qemu/target/s390x/tcg/translate.c
/openbmc/qemu/target/sh4/translate.c
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/tricore/translate.c
/openbmc/qemu/target/xtensa/translate.c
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tests/docker/dockerfiles/debian-all-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-hexagon-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-legacy-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-loongarch-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-tricore-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-xtensa-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/fedora-cris-cross.docker
/openbmc/qemu/tests/plugin/inline.c
/openbmc/qemu/tests/tcg/arm/Makefile.softmmu-target
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/dbus-console.c
/openbmc/qemu/ui/dbus-listener.c
/openbmc/qemu/ui/dmabuf.c
/openbmc/qemu/ui/egl-headless.c
/openbmc/qemu/ui/egl-helpers.c
/openbmc/qemu/ui/gtk-egl.c
/openbmc/qemu/ui/gtk-gl-area.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/sdl2.c
/openbmc/qemu/ui/spice-display.c
/openbmc/qemu/ui/trace-events
/openbmc/qemu/ui/vnc.c
/openbmc/qemu/util/error-report.c
/openbmc/qemu/util/meson.build

12345678910>>...61