History log of /openbmc/qemu/block/ (Results 126 – 150 of 6196)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
ad74751f27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_skip_filters() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_skip_filters() need to hold a reader lock for the graph because it
calls b

block: Mark bdrv_skip_filters() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_skip_filters() need to hold a reader lock for the graph because it
calls bdrv_filter_child(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-9-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

430da83227-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_skip_implicit_filters() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_skip_implicit_filters() need to hold a reader lock for the graph

block: Mark bdrv_skip_implicit_filters() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_skip_implicit_filters() need to hold a reader lock for the graph
because it calls bdrv_filter_child(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-8-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

372b69f527-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_filter_or_cow_bs() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_filter_or_cow_bs() need to hold a reader lock for the graph because
it

block: Mark bdrv_filter_or_cow_bs() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_filter_or_cow_bs() need to hold a reader lock for the graph because
it calls bdrv_filter_or_cow_child(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-7-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

f3bbc53d27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark block_job_add_bdrv() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling block_job_add_bdrv(). These callers will typically
already

block: Mark block_job_add_bdrv() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling block_job_add_bdrv(). These callers will typically
already hold the graph lock once the locking work is completed, which
means that they can't call functions that take it internally.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-6-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

03b9eaca27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_root_attach_child() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling bdrv_root_attach_child(). These callers will
typically

block: Mark bdrv_root_attach_child() GRAPH_WRLOCK

Instead of taking the writer lock internally, require callers to already
hold it when calling bdrv_root_attach_child(). These callers will
typically already hold the graph lock once the locking work is
completed, which means that they can't call functions that take it
internally.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-5-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

f5a3a27027-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_filter_bs() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_filter_bs() need to hold a reader lock for the graph because
it calls bdrv_fi

block: Mark bdrv_filter_bs() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_filter_bs() need to hold a reader lock for the graph because
it calls bdrv_filter_child(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-4-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

0671798627-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_has_zero_init() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_has_zero_init() need to hold a reader lock for the graph because
it calls

block: Mark bdrv_has_zero_init() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_has_zero_init() need to hold a reader lock for the graph because
it calls bdrv_filter_bs(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-3-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

221caadc27-Oct-2023 Kevin Wolf <kwolf@redhat.com>

block: Mark bdrv_probe_blocksizes() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_probe_blocksizes() need to hold a reader lock for the graph because
it

block: Mark bdrv_probe_blocksizes() and callers GRAPH_RDLOCK

This adds GRAPH_RDLOCK annotations to declare that callers of
bdrv_probe_blocksizes() need to hold a reader lock for the graph because
it calls bdrv_filter_bs(), which accesses bs->file/backing.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20231027155333.420094-2-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...


/openbmc/qemu/Kconfig.host
/openbmc/qemu/MAINTAINERS
/openbmc/qemu/accel/tcg/cputlb.c
/openbmc/qemu/accel/tcg/internal-common.h
/openbmc/qemu/accel/tcg/ldst_atomicity.c.inc
/openbmc/qemu/accel/tcg/monitor.c
/openbmc/qemu/accel/tcg/translate-all.c
block-backend.c
raw-format.c
/openbmc/qemu/blockdev.c
/openbmc/qemu/configs/targets/hppa-linux-user.mak
/openbmc/qemu/disas/riscv.c
/openbmc/qemu/disas/riscv.h
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/interop/vhost-user.rst
/openbmc/qemu/docs/system/device-emulation.rst
/openbmc/qemu/docs/system/devices/virtio-snd.rst
/openbmc/qemu/docs/system/i386/xen.rst
/openbmc/qemu/docs/system/riscv/virt.rst
/openbmc/qemu/hmp-commands.hx
/openbmc/qemu/host/include/loongarch64/host/atomic128-ldst.h
/openbmc/qemu/host/include/loongarch64/host/cpuinfo.h
/openbmc/qemu/host/include/loongarch64/host/load-extract-al16-al8.h
/openbmc/qemu/host/include/loongarch64/host/store-insert-al16.h
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/audio/Kconfig
/openbmc/qemu/hw/audio/meson.build
/openbmc/qemu/hw/audio/trace-events
/openbmc/qemu/hw/audio/virtio-snd-pci.c
/openbmc/qemu/hw/audio/virtio-snd.c
/openbmc/qemu/hw/block/xen-block.c
/openbmc/qemu/hw/char/trace-events
/openbmc/qemu/hw/char/xen_console.c
/openbmc/qemu/hw/cxl/cxl-cdat.c
/openbmc/qemu/hw/cxl/cxl-component-utils.c
/openbmc/qemu/hw/cxl/cxl-device-utils.c
/openbmc/qemu/hw/cxl/cxl-events.c
/openbmc/qemu/hw/cxl/cxl-mailbox-utils.c
/openbmc/qemu/hw/cxl/meson.build
/openbmc/qemu/hw/cxl/switch-mailbox-cci.c
/openbmc/qemu/hw/display/Kconfig
/openbmc/qemu/hw/display/ati.c
/openbmc/qemu/hw/display/ati_2d.c
/openbmc/qemu/hw/display/meson.build
/openbmc/qemu/hw/display/sm501.c
/openbmc/qemu/hw/display/vhost-user-gpu.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/hppa/machine.c
/openbmc/qemu/hw/i386/kvm/meson.build
/openbmc/qemu/hw/i386/kvm/trace-events
/openbmc/qemu/hw/i386/kvm/xen-stubs.c
/openbmc/qemu/hw/i386/kvm/xen_evtchn.c
/openbmc/qemu/hw/i386/kvm/xen_gnttab.c
/openbmc/qemu/hw/i386/kvm/xen_primary_console.c
/openbmc/qemu/hw/i386/kvm/xen_primary_console.h
/openbmc/qemu/hw/i386/kvm/xen_xenstore.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/xen/xen_platform.c
/openbmc/qemu/hw/mem/cxl_type3.c
/openbmc/qemu/hw/mem/cxl_type3_stubs.c
/openbmc/qemu/hw/mips/Kconfig
/openbmc/qemu/hw/net/meson.build
/openbmc/qemu/hw/net/trace-events
/openbmc/qemu/hw/net/xen_nic.c
/openbmc/qemu/hw/pci-bridge/cxl_downstream.c
/openbmc/qemu/hw/pci-bridge/cxl_root_port.c
/openbmc/qemu/hw/pci-bridge/cxl_upstream.c
/openbmc/qemu/hw/pci-host/astro.c
/openbmc/qemu/hw/riscv/boot.c
/openbmc/qemu/hw/riscv/virt.c
/openbmc/qemu/hw/ssi/ibex_spi_host.c
/openbmc/qemu/hw/virtio/vhost-user-fs.c
/openbmc/qemu/hw/virtio/vhost-user.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/xen/xen-backend.c
/openbmc/qemu/hw/xen/xen-bus.c
/openbmc/qemu/hw/xen/xen-legacy-backend.c
/openbmc/qemu/hw/xen/xen_devconfig.c
/openbmc/qemu/hw/xenpv/xen_machine_pv.c
/openbmc/qemu/include/block/block-global-state.h
/openbmc/qemu/include/block/block_int-common.h
/openbmc/qemu/include/exec/cputlb.h
/openbmc/qemu/include/hw/audio/virtio-snd.h
/openbmc/qemu/include/hw/cxl/cxl.h
/openbmc/qemu/include/hw/cxl/cxl_component.h
/openbmc/qemu/include/hw/cxl/cxl_device.h
/openbmc/qemu/include/hw/cxl/cxl_events.h
/openbmc/qemu/include/hw/cxl/cxl_pci.h
/openbmc/qemu/include/hw/elf_ops.h
/openbmc/qemu/include/hw/i386/pc.h
/openbmc/qemu/include/hw/pci-bridge/cxl_upstream_port.h
/openbmc/qemu/include/hw/virtio/vhost-backend.h
/openbmc/qemu/include/hw/virtio/vhost-user.h
/openbmc/qemu/include/hw/virtio/vhost.h
/openbmc/qemu/include/hw/xen/interface/arch-arm.h
/openbmc/qemu/include/hw/xen/interface/arch-x86/cpuid.h
/openbmc/qemu/include/hw/xen/interface/arch-x86/xen-x86_32.h
/openbmc/qemu/include/hw/xen/interface/arch-x86/xen-x86_64.h
/openbmc/qemu/include/hw/xen/interface/arch-x86/xen.h
/openbmc/qemu/include/hw/xen/interface/event_channel.h
/openbmc/qemu/include/hw/xen/interface/features.h
/openbmc/qemu/include/hw/xen/interface/grant_table.h
/openbmc/qemu/include/hw/xen/interface/hvm/hvm_op.h
/openbmc/qemu/include/hw/xen/interface/hvm/params.h
/openbmc/qemu/include/hw/xen/interface/io/blkif.h
/openbmc/qemu/include/hw/xen/interface/io/console.h
/openbmc/qemu/include/hw/xen/interface/io/fbif.h
/openbmc/qemu/include/hw/xen/interface/io/kbdif.h
/openbmc/qemu/include/hw/xen/interface/io/netif.h
/openbmc/qemu/include/hw/xen/interface/io/protocols.h
/openbmc/qemu/include/hw/xen/interface/io/ring.h
/openbmc/qemu/include/hw/xen/interface/io/usbif.h
/openbmc/qemu/include/hw/xen/interface/io/xenbus.h
/openbmc/qemu/include/hw/xen/interface/io/xs_wire.h
/openbmc/qemu/include/hw/xen/interface/memory.h
/openbmc/qemu/include/hw/xen/interface/physdev.h
/openbmc/qemu/include/hw/xen/interface/sched.h
/openbmc/qemu/include/hw/xen/interface/trace.h
/openbmc/qemu/include/hw/xen/interface/vcpu.h
/openbmc/qemu/include/hw/xen/interface/version.h
/openbmc/qemu/include/hw/xen/interface/xen-compat.h
/openbmc/qemu/include/hw/xen/interface/xen.h
/openbmc/qemu/include/hw/xen/xen-backend.h
/openbmc/qemu/include/hw/xen/xen-bus.h
/openbmc/qemu/include/hw/xen/xen-legacy-backend.h
/openbmc/qemu/include/tcg/tcg-op-common.h
/openbmc/qemu/include/tcg/tcg-opc.h
/openbmc/qemu/include/tcg/tcg-temp-internal.h
/openbmc/qemu/include/tcg/tcg.h
/openbmc/qemu/include/ui/console.h
/openbmc/qemu/include/ui/pixman-minimal.h
/openbmc/qemu/include/ui/qemu-pixman.h
/openbmc/qemu/include/ui/rect.h
/openbmc/qemu/linux-user/hppa/cpu_loop.c
/openbmc/qemu/linux-user/hppa/signal.c
/openbmc/qemu/linux-user/hppa/target_elf.h
/openbmc/qemu/linux-user/riscv/target_elf.h
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/net/vhost-vdpa.c
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/ui.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/system/qdev-monitor.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/hppa/cpu-param.h
/openbmc/qemu/target/hppa/cpu-qom.h
/openbmc/qemu/target/hppa/cpu.c
/openbmc/qemu/target/hppa/cpu.h
/openbmc/qemu/target/hppa/gdbstub.c
/openbmc/qemu/target/hppa/helper.c
/openbmc/qemu/target/hppa/helper.h
/openbmc/qemu/target/hppa/insns.decode
/openbmc/qemu/target/hppa/int_helper.c
/openbmc/qemu/target/hppa/machine.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/trace-events
/openbmc/qemu/target/hppa/translate.c
/openbmc/qemu/target/i386/kvm/kvm.c
/openbmc/qemu/target/i386/kvm/xen-emu.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/cpu_helper.c
/openbmc/qemu/target/riscv/csr.c
/openbmc/qemu/target/riscv/gdbstub.c
/openbmc/qemu/target/riscv/insn_trans/trans_rvi.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvvk.c.inc
/openbmc/qemu/target/riscv/insn_trans/trans_rvzicbo.c.inc
/openbmc/qemu/target/riscv/kvm/kvm-cpu.c
/openbmc/qemu/target/riscv/machine.c
/openbmc/qemu/target/riscv/pmp.c
/openbmc/qemu/target/riscv/pmp.h
/openbmc/qemu/target/riscv/pmu.c
/openbmc/qemu/target/riscv/pmu.h
/openbmc/qemu/target/riscv/riscv-qmp-cmds.c
/openbmc/qemu/target/riscv/tcg/tcg-cpu.c
/openbmc/qemu/target/riscv/tcg/tcg-cpu.h
/openbmc/qemu/tcg/aarch64/tcg-target.h
/openbmc/qemu/tcg/arm/tcg-target.h
/openbmc/qemu/tcg/i386/tcg-target.h
/openbmc/qemu/tcg/loongarch64/tcg-target-con-set.h
/openbmc/qemu/tcg/loongarch64/tcg-target.c.inc
/openbmc/qemu/tcg/loongarch64/tcg-target.h
/openbmc/qemu/tcg/mips/tcg-target.c.inc
/openbmc/qemu/tcg/mips/tcg-target.h
/openbmc/qemu/tcg/optimize.c
/openbmc/qemu/tcg/ppc/tcg-target.h
/openbmc/qemu/tcg/riscv/tcg-target.h
/openbmc/qemu/tcg/s390x/tcg-target.h
/openbmc/qemu/tcg/sparc64/tcg-target.c.inc
/openbmc/qemu/tcg/sparc64/tcg-target.h
/openbmc/qemu/tcg/tcg-internal.h
/openbmc/qemu/tcg/tcg-op-gvec.c
/openbmc/qemu/tcg/tcg-op.c
/openbmc/qemu/tcg/tcg.c
/openbmc/qemu/tcg/tci.c
/openbmc/qemu/tcg/tci/tcg-target.h
/openbmc/qemu/tests/avocado/acpi-bits.py
/openbmc/qemu/tests/data/acpi/q35/APIC.core-count
/openbmc/qemu/tests/data/acpi/q35/APIC.core-count2
/openbmc/qemu/tests/data/acpi/q35/APIC.thread-count
/openbmc/qemu/tests/data/acpi/q35/APIC.thread-count2
/openbmc/qemu/tests/data/acpi/q35/APIC.type4-count
/openbmc/qemu/tests/data/acpi/q35/DSDT.core-count
/openbmc/qemu/tests/data/acpi/q35/DSDT.core-count2
/openbmc/qemu/tests/data/acpi/q35/DSDT.thread-count
/openbmc/qemu/tests/data/acpi/q35/DSDT.thread-count2
/openbmc/qemu/tests/data/acpi/q35/DSDT.type4-count
/openbmc/qemu/tests/data/acpi/q35/FACP.core-count
/openbmc/qemu/tests/data/acpi/q35/FACP.thread-count
/openbmc/qemu/tests/data/acpi/q35/FACP.thread-count2
/openbmc/qemu/tests/data/acpi/q35/FACP.type4-count
/openbmc/qemu/tests/qtest/bios-tables-test.c
/openbmc/qemu/tests/unit/test-smp-parse.c
/openbmc/qemu/ui/cocoa.m
/openbmc/qemu/ui/console-vc-stubs.c
/openbmc/qemu/ui/console.c
/openbmc/qemu/ui/dbus-listener.c
/openbmc/qemu/ui/gtk-egl.c
/openbmc/qemu/ui/gtk.c
/openbmc/qemu/ui/meson.build
/openbmc/qemu/ui/qemu-pixman.c
/openbmc/qemu/ui/ui-hmp-cmds.c
/openbmc/qemu/ui/ui-qmp-cmds.c
/openbmc/qemu/ui/vnc-stubs.c
/openbmc/qemu/util/cpuinfo-loongarch.c
/openbmc/qemu/util/meson.build
80aaef9606-Nov-2023 Stefan Hajnoczi <stefanha@redhat.com>

Merge tag 'pull-block-2023-11-06' of https://gitlab.com/hreitz/qemu into staging

Block patches:
- One patch to make qcow2's discard-no-unref option do better what it is
supposed to do (i.e. preven

Merge tag 'pull-block-2023-11-06' of https://gitlab.com/hreitz/qemu into staging

Block patches:
- One patch to make qcow2's discard-no-unref option do better what it is
supposed to do (i.e. prevent fragmentation)
- Two fixes for zoned requests

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEEy2LXoO44KeRfAE00ofpA0JgBnN8FAmVJHbgSHGhyZWl0ekBy
# ZWRoYXQuY29tAAoJEKH6QNCYAZzfLn4QAKxuUYZaXirv6K4U2tW4aAJtc5uESdwv
# WYhG7YU7MleBGCY0fRoih5thrPrzRLC8o1QhbRcA36+/PAZf4BYrJEfqLUdzuN5x
# 6Vb1n3NRUzPD1+VfL/B9hVZhFbtTOUZuxPGEqCoHAmqBaeKuYRT1bLZbtRtPVLSk
# 5eTMiyrpRMlBWc7O71eGKLqU4k0vAznwHBGf2Z93qWAsKcRZCwbAWYa7Q6rJ9jJ8
# 1jNsQuAk0p74/uGEpFhoEVrFEcV6pMbI4+jB9i0t9YYxT0tLIdIX1VUx+AHJfItk
# IF2stB6SFOaAy2W3Fn+0oJvz40aMLzg9VjEeTpGmdlKC67ZTYa6Obwzy5WNLPIap
# k7VUheUEe8qoKUtxQNxGLR/HKEJSFXyhU0lgAGxE1gl2xc1QFFFsrimpwFd3d37j
# 3PwfhjARHonf4ZXgsvtIjb7nG9seMZYO7Vht0OztJyW8c2XN5OFVPir9xLbd9VUg
# wZNGB8jAsHgj77+S/mRIwpP+laKL8wB7zYZ1mgFI98QJIYqL8tGdV/IiUhLljHzc
# XAmwekOhBMMbgHhliBy9zDuTy59+zZ0FoxZPn/JvBjqBAkEnz9EbhHxi2imQg+1d
# XSoLbx1X1yEbepWz8mCGiveLIPkt+3qMJuuQF76nURaA+nm3tCl/nKca6QLnVKzU
# 2QtPWS0qRmwd
# =5w7S
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 07 Nov 2023 01:09:12 HKT
# gpg: using RSA key CB62D7A0EE3829E45F004D34A1FA40D098019CDF
# gpg: issuer "hreitz@redhat.com"
# gpg: Good signature from "Hanna Reitz <hreitz@redhat.com>" [unknown]
# gpg: WARNING: The key's User ID is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: CB62 D7A0 EE38 29E4 5F00 4D34 A1FA 40D0 9801 9CDF

* tag 'pull-block-2023-11-06' of https://gitlab.com/hreitz/qemu:
file-posix: fix over-writing of returning zone_append offset
block/file-posix: fix update_zones_wp() caller
qcow2: keep reference on zeroize with discard-no-unref enabled

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

show more ...

f6b174ff06-Nov-2023 Stefan Hajnoczi <stefanha@redhat.com>

Merge tag 'pull-target-arm-20231106' of https://git.linaro.org/people/pmaydell/qemu-arm into staging

target-arm queue:
* hw/arm/virt: fix PMU IRQ registration
* hw/arm/virt: Report correct registe

Merge tag 'pull-target-arm-20231106' of https://git.linaro.org/people/pmaydell/qemu-arm into staging

target-arm queue:
* hw/arm/virt: fix PMU IRQ registration
* hw/arm/virt: Report correct register sizes in ACPI DBG2/SPCR tables
* hw/i386/intel_iommu: vtd_slpte_nonzero_rsvd(): assert no overflow
* util/filemonitor-inotify: qemu_file_monitor_watch(): assert no overflow
* mc146818rtc: rtc_set_time(): initialize tm to zeroes
* block/nvme: nvme_process_completion() fix bound for cid
* hw/core/loader: gunzip(): initialize z_stream
* io/channel-socket: qio_channel_socket_flush(): improve msg validation
* hw/arm/vexpress-a9: Remove useless mapping of RAM at address 0
* target/arm: Fix A64 LDRA immediate decode

# -----BEGIN PGP SIGNATURE-----
#
# iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmVJBtUZHHBldGVyLm1h
# eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3qYTEACYqLV57JezgRFXzMEwKX3l
# 9IYbFje+lGemobdJOEHhRvXjCNb+5TwhEfQasri0FBzokw16S3WOOF7roGb6YOU1
# od1SGiS2AbrmiazlBpamVO8z0WAEgbnXIoQa/3xKAGPJXszD2zK+06KnXS5xuCuD
# nHojzIx7Gv4HEIs4huY39/YL2HMaxrqvXC8IAu51eqY+TPnETT+WI3HxlZ2OMIsn
# 1Jnn+FeZfA1bhKx4JsD9MyHM1ovbjOwYkHOlzjU6fmTFFPGKRy0nxnjMNCBcXHQ+
# unemc/9BhEFup76tkX+JIlSBrPre5Mnh93DsGKSapwKPKq+fQhUDmzXY2r3OvQZX
# ryxO4PJkCNTM1wZU6GeEDPWVfhgBKHUMv+tr9Mf9iBlyXRsmXLSEl7AFUUaFlgAL
# dSMyiAaUlfvGa7Gtta9eFAJ/GeaiuJu2CYq6lvtRrNIHflLm3gVCef8gmwM5Eqxm
# 3PNzEoabKyQQfz69j9RCLpoutMBq1sg2IzxW8UjAFupugcIABjLf0Sl11qA0/B89
# YX67B0ynQD9ajI2GS8ULid/tvEiJVgdZ2Ua3U3xpG54vKG1/54EUiCP8TtoIuoMy
# bKg8AU9EIPN962PxoAwS+bSSdCu7/zBjVpg4T/zIzWRdgSjRsE21Swu5Ca934ng5
# VpVUuiwtI/zvHgqaiORu+w==
# =UbqJ
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 06 Nov 2023 23:31:33 HKT
# gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE
# gpg: issuer "peter.maydell@linaro.org"
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [full]
# gpg: aka "Peter Maydell <pmaydell@gmail.com>" [full]
# gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [full]
# gpg: aka "Peter Maydell <peter@archaic.org.uk>" [unknown]
# Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE

* tag 'pull-target-arm-20231106' of https://git.linaro.org/people/pmaydell/qemu-arm:
target/arm: Fix A64 LDRA immediate decode
hw/arm/vexpress-a9: Remove useless mapping of RAM at address 0
io/channel-socket: qio_channel_socket_flush(): improve msg validation
hw/core/loader: gunzip(): initialize z_stream
block/nvme: nvme_process_completion() fix bound for cid
mc146818rtc: rtc_set_time(): initialize tm to zeroes
util/filemonitor-inotify: qemu_file_monitor_watch(): assert no overflow
hw/i386/intel_iommu: vtd_slpte_nonzero_rsvd(): assert no overflow
tests/qtest/bios-tables-test: Update virt SPCR and DBG2 golden references
hw/arm/virt: Report correct register sizes in ACPI DBG2/SPCR tables.
tests/qtest/bios-tables-test: Allow changes to virt SPCR and DBG2
hw/arm/virt: fix PMU IRQ registration

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

show more ...


/openbmc/qemu/Kconfig.host
/openbmc/qemu/MAINTAINERS
nvme.c
/openbmc/qemu/docs/devel/migration.rst
/openbmc/qemu/docs/system/arm/vexpress.rst
/openbmc/qemu/dump/dump-hmp-cmds.c
/openbmc/qemu/dump/dump.c
/openbmc/qemu/hmp-commands.hx
/openbmc/qemu/hw/arm/vexpress.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/block/xen-block.c
/openbmc/qemu/hw/core/loader.c
/openbmc/qemu/hw/core/machine-hmp-cmds.c
/openbmc/qemu/hw/display/ati.c
/openbmc/qemu/hw/display/ati_2d.c
/openbmc/qemu/hw/display/ati_dbg.c
/openbmc/qemu/hw/display/ati_int.h
/openbmc/qemu/hw/display/ati_regs.h
/openbmc/qemu/hw/display/macfb.c
/openbmc/qemu/hw/display/virtio-gpu-pci-rutabaga.c
/openbmc/qemu/hw/display/virtio-gpu.c
/openbmc/qemu/hw/hyperv/Kconfig
/openbmc/qemu/hw/hyperv/hv-balloon-internal.h
/openbmc/qemu/hw/hyperv/hv-balloon-our_range_memslots.c
/openbmc/qemu/hw/hyperv/hv-balloon-our_range_memslots.h
/openbmc/qemu/hw/hyperv/hv-balloon-page_range_tree.c
/openbmc/qemu/hw/hyperv/hv-balloon-page_range_tree.h
/openbmc/qemu/hw/hyperv/hv-balloon-stub.c
/openbmc/qemu/hw/hyperv/hv-balloon.c
/openbmc/qemu/hw/hyperv/meson.build
/openbmc/qemu/hw/hyperv/trace-events
/openbmc/qemu/hw/i386/Kconfig
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/i386/kvm/xen_evtchn.c
/openbmc/qemu/hw/i386/kvm/xen_gnttab.c
/openbmc/qemu/hw/i386/kvm/xen_xenstore.c
/openbmc/qemu/hw/i386/pc.c
/openbmc/qemu/hw/mem/memory-device.c
/openbmc/qemu/hw/ppc/spapr_pci_vfio.c
/openbmc/qemu/hw/rtc/mc146818rtc.c
/openbmc/qemu/hw/vfio/ap.c
/openbmc/qemu/hw/vfio/ccw.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/vfio/helpers.c
/openbmc/qemu/hw/vfio/pci.c
/openbmc/qemu/hw/vfio/spapr.c
/openbmc/qemu/hw/virtio/virtio-pmem.c
/openbmc/qemu/include/hw/hyperv/dynmem-proto.h
/openbmc/qemu/include/hw/hyperv/hv-balloon.h
/openbmc/qemu/include/hw/mem/memory-device.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/qemu/uuid.h
/openbmc/qemu/include/sysemu/dump.h
/openbmc/qemu/include/sysemu/kvm_xen.h
/openbmc/qemu/io/channel-socket.c
/openbmc/qemu/linux-user/loongarch64/cpu_loop.c
/openbmc/qemu/linux-user/loongarch64/signal.c
/openbmc/qemu/linux-user/sparc/cpu_loop.c
/openbmc/qemu/linux-user/sparc/signal.c
/openbmc/qemu/linux-user/sparc/target_cpu.h
/openbmc/qemu/meson.build
/openbmc/qemu/meson_options.txt
/openbmc/qemu/migration/ram.c
/openbmc/qemu/monitor/monitor.c
/openbmc/qemu/qapi/dump.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/machine.json
/openbmc/qemu/scripts/meson-buildoptions.sh
/openbmc/qemu/system/dirtylimit.c
/openbmc/qemu/target/arm/tcg/a64.decode
/openbmc/qemu/target/arm/tcg/translate.h
/openbmc/qemu/target/i386/kvm/xen-emu.c
/openbmc/qemu/target/loongarch/cpu-param.h
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/loongarch/insn_trans/trans_vec.c.inc
/openbmc/qemu/target/loongarch/loongarch-qmp-cmds.c
/openbmc/qemu/target/loongarch/tlb_helper.c
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/target/sparc/cpu.h
/openbmc/qemu/target/sparc/helper.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/insns.decode
/openbmc/qemu/target/sparc/int32_helper.c
/openbmc/qemu/target/sparc/int64_helper.c
/openbmc/qemu/target/sparc/machine.c
/openbmc/qemu/target/sparc/meson.build
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/sparc/win_helper.c
/openbmc/qemu/tests/data/acpi/virt/DBG2
/openbmc/qemu/tests/data/acpi/virt/SPCR
/openbmc/qemu/tests/migration/guestperf/comparison.py
/openbmc/qemu/tests/migration/guestperf/engine.py
/openbmc/qemu/tests/migration/guestperf/hardware.py
/openbmc/qemu/tests/migration/guestperf/progress.py
/openbmc/qemu/tests/migration/guestperf/scenario.py
/openbmc/qemu/tests/migration/guestperf/shell.py
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/qmp-cmd-test.c
/openbmc/qemu/util/filemonitor-inotify.c
ad4feaca30-Oct-2023 Naohiro Aota <nao.aota@gmail.com>

file-posix: fix over-writing of returning zone_append offset

raw_co_zone_append() sets "s->offset" where "BDRVRawState *s". This pointer
is used later at raw_co_prw() to save the block address where

file-posix: fix over-writing of returning zone_append offset

raw_co_zone_append() sets "s->offset" where "BDRVRawState *s". This pointer
is used later at raw_co_prw() to save the block address where the data is
written.

When multiple IOs are on-going at the same time, a later IO's
raw_co_zone_append() call over-writes a former IO's offset address before
raw_co_prw() completes. As a result, the former zone append IO returns the
initial value (= the start address of the writing zone), instead of the
proper address.

Fix the issue by passing the offset pointer to raw_co_prw() instead of
passing it through s->offset. Also, remove "offset" from BDRVRawState as
there is no usage anymore.

Fixes: 4751d09adcc3 ("block: introduce zone append write for zoned devices")
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Message-Id: <20231030073853.2601162-1-naohiro.aota@wdc.com>
Reviewed-by: Sam Li <faithilikerun@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>

show more ...

10b9e08024-Aug-2023 Sam Li <faithilikerun@gmail.com>

block/file-posix: fix update_zones_wp() caller

When the zoned request fail, it needs to update only the wp of
the target zones for not disrupting the in-flight writes on
these other zones. The wp is

block/file-posix: fix update_zones_wp() caller

When the zoned request fail, it needs to update only the wp of
the target zones for not disrupting the in-flight writes on
these other zones. The wp is updated successfully after the
request completes.

Fixed the callers with right offset and nr_zones.

Signed-off-by: Sam Li <faithilikerun@gmail.com>
Message-Id: <20230825040556.4217-1-faithilikerun@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
[hreitz: Rebased and fixed comment spelling]
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>

show more ...

b2b1090403-Oct-2023 Jean-Louis Dupond <jean-louis@dupond.be>

qcow2: keep reference on zeroize with discard-no-unref enabled

When the discard-no-unref flag is enabled, we keep the reference for
normal discard requests.
But when a discard is executed on a snaps

qcow2: keep reference on zeroize with discard-no-unref enabled

When the discard-no-unref flag is enabled, we keep the reference for
normal discard requests.
But when a discard is executed on a snapshot/qcow2 image with backing,
the discards are saved as zero clusters in the snapshot image.

When committing the snapshot to the backing file, not
discard_in_l2_slice is called but zero_in_l2_slice. Which did not had
any logic to keep the reference when discard-no-unref is enabled.

Therefor we add logic in the zero_in_l2_slice call to keep the reference
on commit.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/1621
Signed-off-by: Jean-Louis Dupond <jean-louis@dupond.be>
Message-Id: <20231003125236.216473-2-jean-louis@dupond.be>
[hreitz: Made the documentation change more verbose, as discussed
on-list]
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>

show more ...


/openbmc/qemu/MAINTAINERS
qcow2-cluster.c
/openbmc/qemu/docs/devel/migration.rst
/openbmc/qemu/docs/specs/edu.rst
/openbmc/qemu/docs/specs/index.rst
/openbmc/qemu/docs/specs/ivshmem-spec.rst
/openbmc/qemu/docs/specs/pci-ids.rst
/openbmc/qemu/docs/specs/pvpanic.rst
/openbmc/qemu/docs/specs/standard-vga.rst
/openbmc/qemu/docs/specs/virt-ctlr.rst
/openbmc/qemu/docs/specs/vmcoreinfo.rst
/openbmc/qemu/docs/specs/vmgenid.rst
/openbmc/qemu/docs/specs/vmw_pvscsi-spec.rst
/openbmc/qemu/docs/system/devices/ivshmem.rst
/openbmc/qemu/dump/dump-hmp-cmds.c
/openbmc/qemu/dump/dump.c
/openbmc/qemu/hmp-commands.hx
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/pxa2xx_gpio.c
/openbmc/qemu/hw/arm/stellaris.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/char/mcf_uart.c
/openbmc/qemu/hw/char/stm32f2xx_usart.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/display/vga-isa.c
/openbmc/qemu/hw/display/vga-pci.c
/openbmc/qemu/hw/i2c/pm_smbus.c
/openbmc/qemu/hw/i2c/trace-events
/openbmc/qemu/hw/input/Kconfig
/openbmc/qemu/hw/input/meson.build
/openbmc/qemu/hw/input/stellaris_gamepad.c
/openbmc/qemu/hw/intc/m68k_irqc.c
/openbmc/qemu/hw/m68k/an5206.c
/openbmc/qemu/hw/m68k/mcf5206.c
/openbmc/qemu/hw/m68k/mcf5208.c
/openbmc/qemu/hw/m68k/mcf_intc.c
/openbmc/qemu/hw/m68k/next-cube.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/misc/Kconfig
/openbmc/qemu/hw/misc/imx6_ccm.c
/openbmc/qemu/hw/misc/imx7_snvs.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/misc/xlnx-versal-trng.c
/openbmc/qemu/hw/scsi/vhost-scsi.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/watchdog/trace-events
/openbmc/qemu/hw/watchdog/wdt_imx2.c
/openbmc/qemu/include/hw/arm/xlnx-versal.h
/openbmc/qemu/include/hw/char/stm32f2xx_usart.h
/openbmc/qemu/include/hw/input/stellaris_gamepad.h
/openbmc/qemu/include/hw/intc/m68k_irqc.h
/openbmc/qemu/include/hw/m68k/mcf.h
/openbmc/qemu/include/hw/misc/xlnx-versal-trng.h
/openbmc/qemu/include/hw/qdev-properties.h
/openbmc/qemu/include/sysemu/dump.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/loader.h
/openbmc/qemu/linux-user/loongarch64/cpu_loop.c
/openbmc/qemu/linux-user/loongarch64/signal.c
/openbmc/qemu/linux-user/sparc/cpu_loop.c
/openbmc/qemu/linux-user/sparc/signal.c
/openbmc/qemu/linux-user/sparc/target_cpu.h
/openbmc/qemu/migration/exec.c
/openbmc/qemu/migration/exec.h
/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/qemu-file.c
/openbmc/qemu/migration/qemu-file.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/rdma.c
/openbmc/qemu/migration/rdma.h
/openbmc/qemu/migration/socket.c
/openbmc/qemu/migration/socket.h
/openbmc/qemu/migration/trace-events
/openbmc/qemu/qapi/block-core.json
/openbmc/qemu/qapi/dump.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/qemu-options.hx
/openbmc/qemu/system/dirtylimit.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/tcg/helper-a64.c
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/target/loongarch/cpu-param.h
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/loongarch/insn_trans/trans_vec.c.inc
/openbmc/qemu/target/loongarch/loongarch-qmp-cmds.c
/openbmc/qemu/target/loongarch/tlb_helper.c
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/target/sparc/cpu.h
/openbmc/qemu/target/sparc/helper.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/insns.decode
/openbmc/qemu/target/sparc/int32_helper.c
/openbmc/qemu/target/sparc/int64_helper.c
/openbmc/qemu/target/sparc/machine.c
/openbmc/qemu/target/sparc/meson.build
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/sparc/win_helper.c
/openbmc/qemu/tests/avocado/machine_m68k_nextcube.py
/openbmc/qemu/tests/migration/guestperf/comparison.py
/openbmc/qemu/tests/migration/guestperf/engine.py
/openbmc/qemu/tests/migration/guestperf/hardware.py
/openbmc/qemu/tests/migration/guestperf/progress.py
/openbmc/qemu/tests/migration/guestperf/scenario.py
/openbmc/qemu/tests/migration/guestperf/shell.py
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/xlnx-versal-trng-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/sve-str.c
cc8fb0c306-Nov-2023 Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>

block/nvme: nvme_process_completion() fix bound for cid

NVMeQueuePair::reqs has length NVME_NUM_REQS, which less than
NVME_QUEUE_SIZE by 1.

Fixes: 1086e95da17050 ("block/nvme: switch to a NVMeReque

block/nvme: nvme_process_completion() fix bound for cid

NVMeQueuePair::reqs has length NVME_NUM_REQS, which less than
NVME_QUEUE_SIZE by 1.

Fixes: 1086e95da17050 ("block/nvme: switch to a NVMeRequest freelist")
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Maksim Davydov <davydov-max@yandex-team.ru>
Message-id: 20231017125941.810461-5-vsementsov@yandex-team.ru
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

show more ...


/openbmc/qemu/MAINTAINERS
nvme.c
/openbmc/qemu/docs/devel/migration.rst
/openbmc/qemu/docs/specs/edu.rst
/openbmc/qemu/docs/specs/index.rst
/openbmc/qemu/docs/specs/ivshmem-spec.rst
/openbmc/qemu/docs/specs/pci-ids.rst
/openbmc/qemu/docs/specs/pvpanic.rst
/openbmc/qemu/docs/specs/standard-vga.rst
/openbmc/qemu/docs/specs/virt-ctlr.rst
/openbmc/qemu/docs/specs/vmcoreinfo.rst
/openbmc/qemu/docs/specs/vmgenid.rst
/openbmc/qemu/docs/specs/vmw_pvscsi-spec.rst
/openbmc/qemu/docs/system/devices/ivshmem.rst
/openbmc/qemu/dump/dump-hmp-cmds.c
/openbmc/qemu/dump/dump.c
/openbmc/qemu/hmp-commands.hx
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/pxa2xx_gpio.c
/openbmc/qemu/hw/arm/stellaris.c
/openbmc/qemu/hw/arm/virt-acpi-build.c
/openbmc/qemu/hw/arm/virt.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/char/mcf_uart.c
/openbmc/qemu/hw/char/stm32f2xx_usart.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/display/vga-isa.c
/openbmc/qemu/hw/display/vga-pci.c
/openbmc/qemu/hw/i2c/pm_smbus.c
/openbmc/qemu/hw/i2c/trace-events
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/input/Kconfig
/openbmc/qemu/hw/input/meson.build
/openbmc/qemu/hw/input/stellaris_gamepad.c
/openbmc/qemu/hw/intc/m68k_irqc.c
/openbmc/qemu/hw/m68k/an5206.c
/openbmc/qemu/hw/m68k/mcf5206.c
/openbmc/qemu/hw/m68k/mcf5208.c
/openbmc/qemu/hw/m68k/mcf_intc.c
/openbmc/qemu/hw/m68k/next-cube.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/misc/Kconfig
/openbmc/qemu/hw/misc/imx6_ccm.c
/openbmc/qemu/hw/misc/imx7_snvs.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/misc/xlnx-versal-trng.c
/openbmc/qemu/hw/rtc/mc146818rtc.c
/openbmc/qemu/hw/scsi/vhost-scsi.c
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/watchdog/trace-events
/openbmc/qemu/hw/watchdog/wdt_imx2.c
/openbmc/qemu/include/hw/arm/xlnx-versal.h
/openbmc/qemu/include/hw/char/stm32f2xx_usart.h
/openbmc/qemu/include/hw/input/stellaris_gamepad.h
/openbmc/qemu/include/hw/intc/m68k_irqc.h
/openbmc/qemu/include/hw/m68k/mcf.h
/openbmc/qemu/include/hw/misc/xlnx-versal-trng.h
/openbmc/qemu/include/hw/qdev-properties.h
/openbmc/qemu/include/sysemu/dump.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/loader.h
/openbmc/qemu/linux-user/loongarch64/cpu_loop.c
/openbmc/qemu/linux-user/loongarch64/signal.c
/openbmc/qemu/linux-user/sparc/cpu_loop.c
/openbmc/qemu/linux-user/sparc/signal.c
/openbmc/qemu/linux-user/sparc/target_cpu.h
/openbmc/qemu/migration/exec.c
/openbmc/qemu/migration/exec.h
/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/qemu-file.c
/openbmc/qemu/migration/qemu-file.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/rdma.c
/openbmc/qemu/migration/rdma.h
/openbmc/qemu/migration/socket.c
/openbmc/qemu/migration/socket.h
/openbmc/qemu/migration/trace-events
/openbmc/qemu/qapi/dump.json
/openbmc/qemu/qapi/machine-target.json
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/system/dirtylimit.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/tcg/helper-a64.c
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/target/loongarch/cpu-param.h
/openbmc/qemu/target/loongarch/cpu.c
/openbmc/qemu/target/loongarch/cpu.h
/openbmc/qemu/target/loongarch/insn_trans/trans_vec.c.inc
/openbmc/qemu/target/loongarch/loongarch-qmp-cmds.c
/openbmc/qemu/target/loongarch/tlb_helper.c
/openbmc/qemu/target/sparc/cpu.c
/openbmc/qemu/target/sparc/cpu.h
/openbmc/qemu/target/sparc/helper.c
/openbmc/qemu/target/sparc/helper.h
/openbmc/qemu/target/sparc/insns.decode
/openbmc/qemu/target/sparc/int32_helper.c
/openbmc/qemu/target/sparc/int64_helper.c
/openbmc/qemu/target/sparc/machine.c
/openbmc/qemu/target/sparc/meson.build
/openbmc/qemu/target/sparc/translate.c
/openbmc/qemu/target/sparc/win_helper.c
/openbmc/qemu/tests/avocado/machine_m68k_nextcube.py
/openbmc/qemu/tests/data/acpi/virt/DBG2
/openbmc/qemu/tests/data/acpi/virt/SPCR
/openbmc/qemu/tests/migration/guestperf/comparison.py
/openbmc/qemu/tests/migration/guestperf/engine.py
/openbmc/qemu/tests/migration/guestperf/hardware.py
/openbmc/qemu/tests/migration/guestperf/progress.py
/openbmc/qemu/tests/migration/guestperf/scenario.py
/openbmc/qemu/tests/migration/guestperf/shell.py
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/xlnx-versal-trng-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/sve-str.c
/openbmc/qemu/util/filemonitor-inotify.c
721da03926-Oct-2023 Cédric Le Goater <clg@redhat.com>

util/uuid: Add UUID_STR_LEN definition

qemu_uuid_unparse() includes a trailing NUL when writing the uuid
string and the buffer size should be UUID_FMT_LEN + 1 bytes. Add a
define for this size and u

util/uuid: Add UUID_STR_LEN definition

qemu_uuid_unparse() includes a trailing NUL when writing the uuid
string and the buffer size should be UUID_FMT_LEN + 1 bytes. Add a
define for this size and use it where required.

Cc: Fam Zheng <fam@euphon.net>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: "Denis V. Lunev" <den@openvz.org>
Signed-off-by: Cédric Le Goater <clg@redhat.com>

show more ...


/openbmc/qemu/MAINTAINERS
parallels-ext.c
vdi.c
/openbmc/qemu/docs/devel/index-api.rst
/openbmc/qemu/docs/devel/pci.rst
/openbmc/qemu/docs/specs/edu.rst
/openbmc/qemu/docs/specs/index.rst
/openbmc/qemu/docs/specs/ivshmem-spec.rst
/openbmc/qemu/docs/specs/pci-ids.rst
/openbmc/qemu/docs/specs/pvpanic.rst
/openbmc/qemu/docs/specs/standard-vga.rst
/openbmc/qemu/docs/specs/virt-ctlr.rst
/openbmc/qemu/docs/specs/vmcoreinfo.rst
/openbmc/qemu/docs/specs/vmgenid.rst
/openbmc/qemu/docs/specs/vmw_pvscsi-spec.rst
/openbmc/qemu/docs/system/devices/ivshmem.rst
/openbmc/qemu/hw/alpha/typhoon.c
/openbmc/qemu/hw/arm/Kconfig
/openbmc/qemu/hw/arm/pxa2xx_gpio.c
/openbmc/qemu/hw/arm/smmu-common.c
/openbmc/qemu/hw/arm/stellaris.c
/openbmc/qemu/hw/arm/xlnx-versal.c
/openbmc/qemu/hw/char/mcf_uart.c
/openbmc/qemu/hw/char/stm32f2xx_usart.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/core/qdev-properties.c
/openbmc/qemu/hw/display/vga-isa.c
/openbmc/qemu/hw/display/vga-pci.c
/openbmc/qemu/hw/hyperv/vmbus.c
/openbmc/qemu/hw/i2c/pm_smbus.c
/openbmc/qemu/hw/i2c/trace-events
/openbmc/qemu/hw/i386/amd_iommu.c
/openbmc/qemu/hw/i386/intel_iommu.c
/openbmc/qemu/hw/input/Kconfig
/openbmc/qemu/hw/input/meson.build
/openbmc/qemu/hw/input/stellaris_gamepad.c
/openbmc/qemu/hw/intc/m68k_irqc.c
/openbmc/qemu/hw/m68k/an5206.c
/openbmc/qemu/hw/m68k/mcf5206.c
/openbmc/qemu/hw/m68k/mcf5208.c
/openbmc/qemu/hw/m68k/mcf_intc.c
/openbmc/qemu/hw/m68k/next-cube.c
/openbmc/qemu/hw/m68k/virt.c
/openbmc/qemu/hw/misc/Kconfig
/openbmc/qemu/hw/misc/imx6_ccm.c
/openbmc/qemu/hw/misc/imx7_snvs.c
/openbmc/qemu/hw/misc/meson.build
/openbmc/qemu/hw/misc/trace-events
/openbmc/qemu/hw/misc/xlnx-versal-trng.c
/openbmc/qemu/hw/pci-host/astro.c
/openbmc/qemu/hw/pci-host/designware.c
/openbmc/qemu/hw/pci-host/dino.c
/openbmc/qemu/hw/pci-host/pnv_phb3.c
/openbmc/qemu/hw/pci-host/pnv_phb4.c
/openbmc/qemu/hw/pci-host/ppce500.c
/openbmc/qemu/hw/pci-host/raven.c
/openbmc/qemu/hw/pci-host/sabre.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/ppc/ppc440_pcix.c
/openbmc/qemu/hw/ppc/spapr_pci.c
/openbmc/qemu/hw/remote/iommu.c
/openbmc/qemu/hw/s390x/s390-pci-bus.c
/openbmc/qemu/hw/scsi/vhost-scsi.c
/openbmc/qemu/hw/vfio/common.c
/openbmc/qemu/hw/vfio/container.c
/openbmc/qemu/hw/virtio/trace-events
/openbmc/qemu/hw/virtio/vhost.c
/openbmc/qemu/hw/virtio/virtio-iommu-pci.c
/openbmc/qemu/hw/virtio/virtio-iommu.c
/openbmc/qemu/hw/watchdog/trace-events
/openbmc/qemu/hw/watchdog/wdt_imx2.c
/openbmc/qemu/include/exec/memory.h
/openbmc/qemu/include/hw/arm/xlnx-versal.h
/openbmc/qemu/include/hw/char/stm32f2xx_usart.h
/openbmc/qemu/include/hw/input/stellaris_gamepad.h
/openbmc/qemu/include/hw/intc/m68k_irqc.h
/openbmc/qemu/include/hw/m68k/mcf.h
/openbmc/qemu/include/hw/misc/xlnx-versal-trng.h
/openbmc/qemu/include/hw/pci/pci.h
/openbmc/qemu/include/hw/pci/pci_bus.h
/openbmc/qemu/include/hw/qdev-properties.h
/openbmc/qemu/include/hw/vfio/vfio-common.h
/openbmc/qemu/include/hw/virtio/virtio-iommu.h
/openbmc/qemu/include/qemu/range.h
/openbmc/qemu/include/qemu/reserved-region.h
/openbmc/qemu/include/qemu/uuid.h
/openbmc/qemu/linux-user/elfload.c
/openbmc/qemu/linux-user/loader.h
/openbmc/qemu/migration/exec.c
/openbmc/qemu/migration/exec.h
/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/qemu-file.c
/openbmc/qemu/migration/qemu-file.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/rdma.c
/openbmc/qemu/migration/rdma.h
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/socket.c
/openbmc/qemu/migration/socket.h
/openbmc/qemu/migration/trace-events
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/system/memory.c
/openbmc/qemu/system/vl.c
/openbmc/qemu/target/arm/cpu-features.h
/openbmc/qemu/target/arm/cpu.c
/openbmc/qemu/target/arm/internals.h
/openbmc/qemu/target/arm/ptw.c
/openbmc/qemu/target/arm/tcg/helper-a64.c
/openbmc/qemu/target/arm/tcg/translate-sve.c
/openbmc/qemu/tests/avocado/machine_m68k_nextcube.py
/openbmc/qemu/tests/qtest/meson.build
/openbmc/qemu/tests/qtest/migration-test.c
/openbmc/qemu/tests/qtest/xlnx-versal-trng-test.c
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/sve-str.c
/openbmc/qemu/tests/unit/meson.build
/openbmc/qemu/tests/unit/test-resv-mem.c
/openbmc/qemu/tests/unit/test-uuid.c
/openbmc/qemu/util/meson.build
/openbmc/qemu/util/range.c
/openbmc/qemu/util/reserved-region.c
/openbmc/qemu/util/uuid.c
e0ee3a8f25-Oct-2023 Steve Sistare <steven.sistare@oracle.com>

cpr: relax blockdev migration blockers

Some blockdevs block migration because they do not support sharing across
hosts and/or do not support dirty bitmaps. These prohibitions do not apply
if the ol

cpr: relax blockdev migration blockers

Some blockdevs block migration because they do not support sharing across
hosts and/or do not support dirty bitmaps. These prohibitions do not apply
if the old and new qemu processes do not run concurrently, and if new qemu
starts on the same host as old, which is the case for cpr. Narrow the scope
of these blockers so they only apply to normal mode. They will not block
cpr modes when they are added in subsequent patches.

No functional change until a new mode is added.

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

show more ...


/openbmc/qemu/.gitlab-ci.d/buildtest.yml
/openbmc/qemu/.gitlab-ci.d/container-cross.yml
/openbmc/qemu/accel/tcg/plugin-gen.c
/openbmc/qemu/audio/audio.c
/openbmc/qemu/backends/dbus-vmstate.c
/openbmc/qemu/backends/tpm/tpm_emulator.c
parallels.c
qcow.c
vdi.c
vhdx.c
vmdk.c
vpc.c
vvfat.c
/openbmc/qemu/configure
/openbmc/qemu/contrib/plugins/lockstep.c
/openbmc/qemu/docs/about/deprecated.rst
/openbmc/qemu/docs/devel/migration.rst
/openbmc/qemu/gdbstub/gdbstub.c
/openbmc/qemu/hw/core/qdev-properties-system.c
/openbmc/qemu/hw/display/vmware_vga.c
/openbmc/qemu/hw/i2c/core.c
/openbmc/qemu/hw/ide/isa.c
/openbmc/qemu/hw/input/adb.c
/openbmc/qemu/hw/input/ads7846.c
/openbmc/qemu/hw/input/stellaris_input.c
/openbmc/qemu/hw/intc/xics.c
/openbmc/qemu/hw/ipmi/ipmi_bmc_extern.c
/openbmc/qemu/hw/ipmi/isa_ipmi_bt.c
/openbmc/qemu/hw/ipmi/isa_ipmi_kcs.c
/openbmc/qemu/hw/net/eepro100.c
/openbmc/qemu/hw/nvram/eeprom93xx.c
/openbmc/qemu/hw/pci/pci.c
/openbmc/qemu/hw/ppc/spapr.c
/openbmc/qemu/hw/ppc/spapr_nvdimm.c
/openbmc/qemu/hw/s390x/s390-skeys.c
/openbmc/qemu/hw/s390x/s390-stattrib.c
/openbmc/qemu/hw/timer/arm_timer.c
/openbmc/qemu/hw/virtio/virtio-mem.c
/openbmc/qemu/include/hw/qdev-properties-system.h
/openbmc/qemu/include/migration/blocker.h
/openbmc/qemu/include/migration/misc.h
/openbmc/qemu/include/migration/vmstate.h
/openbmc/qemu/migration/block.c
/openbmc/qemu/migration/colo.c
/openbmc/qemu/migration/migration-hmp-cmds.c
/openbmc/qemu/migration/migration-stats.c
/openbmc/qemu/migration/migration-stats.h
/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/qemu-file.c
/openbmc/qemu/migration/qemu-file.h
/openbmc/qemu/migration/ram-compress.c
/openbmc/qemu/migration/ram-compress.h
/openbmc/qemu/migration/ram.c
/openbmc/qemu/migration/ram.h
/openbmc/qemu/migration/rdma.c
/openbmc/qemu/migration/savevm.c
/openbmc/qemu/migration/trace-events
/openbmc/qemu/migration/vmstate.c
/openbmc/qemu/net/slirp.c
/openbmc/qemu/qapi/migration.json
/openbmc/qemu/semihosting/config.c
/openbmc/qemu/stubs/migr-blocker.c
/openbmc/qemu/tests/docker/Makefile.include
/openbmc/qemu/tests/docker/dockerfiles/debian-all-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-legacy-test-cross.docker
/openbmc/qemu/tests/docker/dockerfiles/debian-loongarch-cross.docker
/openbmc/qemu/tests/qemu-iotests/183
/openbmc/qemu/tests/qemu-iotests/common.filter
/openbmc/qemu/tests/qemu-iotests/tests/mirror-change-copy-mode
/openbmc/qemu/tests/qemu-iotests/tests/mirror-change-copy-mode.out
/openbmc/qemu/tests/tcg/Makefile.target
/openbmc/qemu/tests/tcg/aarch64/Makefile.target
/openbmc/qemu/tests/tcg/arm/Makefile.target
/openbmc/qemu/tests/tcg/cris/Makefile.target
/openbmc/qemu/tests/tcg/hexagon/Makefile.target
/openbmc/qemu/tests/tcg/i386/Makefile.target
/openbmc/qemu/tests/tcg/minilib/Makefile.target
/openbmc/qemu/tests/tcg/mips/Makefile.target
/openbmc/qemu/tests/tcg/mips/hello-mips.c
/openbmc/qemu/tests/vm/openbsd
76cb2f2431-Oct-2023 Fiona Ebner <f.ebner@proxmox.com>

mirror: return mirror-specific information upon query

To start out, only actively-synced is returned.

For example, this is useful for jobs that started out in background
mode and switched to active

mirror: return mirror-specific information upon query

To start out, only actively-synced is returned.

For example, this is useful for jobs that started out in background
mode and switched to active mode. Once actively-synced is true, it's
clear that the mode switch has been completed. Note that completion of
the switch might happen much earlier, e.g. if the switch happens
before the job is ready, once all background operations have finished.
It's assumed that whether the disks are actively-synced or not is more
interesting than whether the mode switch completed. That information
can still be added if required in the future.

In presence of an iothread, the actively_synced member is now shared
between the iothread and the main thread, so turn accesses to it
atomic.

Requires to adapt the output for iotest 109.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-10-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

d67c54d031-Oct-2023 Fiona Ebner <f.ebner@proxmox.com>

qapi/block-core: use JobType for BlockJobInfo's type

In preparation to turn BlockJobInfo into a union with @type as the
discriminator. That requires it to be an enum. Even without that
requirement,

qapi/block-core: use JobType for BlockJobInfo's type

In preparation to turn BlockJobInfo into a union with @type as the
discriminator. That requires it to be an enum. Even without that
requirement, it's nicer to have an enum instead of a str here.

No functional change is intended.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20231031135431.393137-7-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

2d400d1531-Oct-2023 Fiona Ebner <f.ebner@proxmox.com>

mirror: implement mirror_change method

which allows switching the @copy-mode from 'background' to
'write-blocking'.

This is useful for management applications, so they can start out in
background m

mirror: implement mirror_change method

which allows switching the @copy-mode from 'background' to
'write-blocking'.

This is useful for management applications, so they can start out in
background mode to avoid limiting guest write speed and switch to
active mode when certain criteria are fulfilled.

In presence of an iothread, the copy_mode member is now shared between
the iothread and the main thread, so turn accesses to it atomic.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-6-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

7b32ad2231-Oct-2023 Fiona Ebner <f.ebner@proxmox.com>

block/mirror: determine copy_to_target only once

In preparation to allow changing the copy_mode via QMP. When running
in an iothread, it could be that copy_mode is changed from the main
thread in be

block/mirror: determine copy_to_target only once

In preparation to allow changing the copy_mode via QMP. When running
in an iothread, it could be that copy_mode is changed from the main
thread in between reading copy_mode in bdrv_mirror_top_pwritev() and
reading copy_mode in bdrv_mirror_top_do_write(), so they might end up
disagreeing about whether copy_to_target is true or false. Avoid that
scenario by determining copy_to_target only once and passing it to
bdrv_mirror_top_do_write() as an argument.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20231031135431.393137-5-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

058cfca531-Oct-2023 Fiona Ebner <f.ebner@proxmox.com>

block/mirror: move dirty bitmap to filter

In preparation to allow switching to active mode without draining.
Initialization of the bitmap in mirror_dirty_init() still happens with
the original/backi

block/mirror: move dirty bitmap to filter

In preparation to allow switching to active mode without draining.
Initialization of the bitmap in mirror_dirty_init() still happens with
the original/backing BlockDriverState, which should be fine, because
the mirror top has the same length.

Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20231031135431.393137-4-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

c45d0e1a31-Oct-2023 Fiona Ebner <f.ebner@proxmox.com>

block/mirror: set actively_synced even after the job is ready

In preparation to allow switching from background to active mode. This
ensures that setting actively_synced will not be missed when the

block/mirror: set actively_synced even after the job is ready

In preparation to allow switching from background to active mode. This
ensures that setting actively_synced will not be missed when the
switch happens after the job is ready.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-ID: <20231031135431.393137-3-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

84d61e5f13-Sep-2023 Stefan Hajnoczi <stefanha@redhat.com>

virtio: use defer_call() in virtio_irqfd_notify()

virtio-blk and virtio-scsi invoke virtio_irqfd_notify() to send Used
Buffer Notifications from an IOThread. This involves an eventfd
write(2) syscal

virtio: use defer_call() in virtio_irqfd_notify()

virtio-blk and virtio-scsi invoke virtio_irqfd_notify() to send Used
Buffer Notifications from an IOThread. This involves an eventfd
write(2) syscall. Calling this repeatedly when completing multiple I/O
requests in a row is wasteful.

Use the defer_call() API to batch together virtio_irqfd_notify() calls
made during thread pool (aio=threads), Linux AIO (aio=native), and
io_uring (aio=io_uring) completion processing.

Behavior is unchanged for emulated devices that do not use
defer_call_begin()/defer_call_end() since defer_call() immediately
invokes the callback when called outside a
defer_call_begin()/defer_call_end() region.

fio rw=randread bs=4k iodepth=64 numjobs=8 IOPS increases by ~9% with a
single IOThread and 8 vCPUs. iodepth=1 decreases by ~1% but this could
be noise. Detailed performance data and configuration specifics are
available here:
https://gitlab.com/stefanha/virt-playbooks/-/tree/blk_io_plug-irqfd

This duplicates the BH that virtio-blk uses for batching. The next
commit will remove it.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-4-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

433fcea413-Sep-2023 Stefan Hajnoczi <stefanha@redhat.com>

util/defer-call: move defer_call() to util/

The networking subsystem may wish to use defer_call(), so move the code
to util/ where it can be reused.

As a reminder of what defer_call() does:

This A

util/defer-call: move defer_call() to util/

The networking subsystem may wish to use defer_call(), so move the code
to util/ where it can be reused.

As a reminder of what defer_call() does:

This API defers a function call within a defer_call_begin()/defer_call_end()
section, allowing multiple calls to batch up. This is a performance
optimization that is used in the block layer to submit several I/O requests
at once instead of individually:

defer_call_begin(); <-- start of section
...
defer_call(my_func, my_obj); <-- deferred my_func(my_obj) call
defer_call(my_func, my_obj); <-- another
defer_call(my_func, my_obj); <-- another
...
defer_call_end(); <-- end of section, my_func(my_obj) is called once

Suggested-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-3-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

ccee48aa13-Sep-2023 Stefan Hajnoczi <stefanha@redhat.com>

block: rename blk_io_plug_call() API to defer_call()

Prepare to move the blk_io_plug_call() API out of the block layer so
that other subsystems call use this deferred call mechanism. Rename it
to de

block: rename blk_io_plug_call() API to defer_call()

Prepare to move the blk_io_plug_call() API out of the block layer so
that other subsystems call use this deferred call mechanism. Rename it
to defer_call() but leave the code in block/plug.c.

The next commit will move the code out of the block layer.

Suggested-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20230913200045.1024233-2-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>

show more ...

12345678910>>...248