qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 0421b5: coroutine: add flag to re-queue at fr


From: Paolo Bonzini
Subject: [Qemu-commits] [qemu/qemu] 0421b5: coroutine: add flag to re-queue at front of CoQueue
Date: Thu, 27 Oct 2022 11:56:08 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 0421b563ab4d947a388078331c057daa9b979f41
      
https://github.com/qemu/qemu/commit/0421b563ab4d947a388078331c057daa9b979f41
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M include/qemu/coroutine.h
    M util/qemu-coroutine-lock.c

  Log Message:
  -----------
  coroutine: add flag to re-queue at front of CoQueue

When a coroutine wakes up it may determine that it must re-queue.
Normally coroutines are pushed onto the back of the CoQueue, but for
fairness it may be necessary to push it onto the front of the CoQueue.

Add a flag to specify that the coroutine should be pushed onto the front
of the CoQueue. A later patch will use this to ensure fairness in the
bounce buffer CoQueue used by the blkio BlockDriver.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20221013185908.1297568-2-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: fd66dbd424f5c90fcff3d27afed2c6c59d8be3ac
      
https://github.com/qemu/qemu/commit/fd66dbd424f5c90fcff3d27afed2c6c59d8be3ac
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M MAINTAINERS
    A block/blkio.c
    M block/meson.build
    M meson.build
    M meson_options.txt
    M qapi/block-core.json
    M scripts/meson-buildoptions.sh
    M tests/qtest/modules-test.c

  Log Message:
  -----------
  blkio: add libblkio block driver

libblkio (https://gitlab.com/libblkio/libblkio/) is a library for
high-performance disk I/O. It currently supports io_uring,
virtio-blk-vhost-user, and virtio-blk-vhost-vdpa with additional drivers
under development.

One of the reasons for developing libblkio is that other applications
besides QEMU can use it. This will be particularly useful for
virtio-blk-vhost-user which applications may wish to use for connecting
to qemu-storage-daemon.

libblkio also gives us an opportunity to develop in Rust behind a C API
that is easy to consume from QEMU.

This commit adds io_uring, nvme-io_uring, virtio-blk-vhost-user, and
virtio-blk-vhost-vdpa BlockDrivers to QEMU using libblkio. It will be
easy to add other libblkio drivers since they will share the majority of
code.

For now I/O buffers are copied through bounce buffers if the libblkio
driver requires it. Later commits add an optimization for
pre-registering guest RAM to avoid bounce buffers.

The syntax is:

  --blockdev 
io_uring,node-name=drive0,filename=test.img,readonly=on|off,cache.direct=on|off

  --blockdev 
nvme-io_uring,node-name=drive0,filename=/dev/ng0n1,readonly=on|off,cache.direct=on

  --blockdev 
virtio-blk-vhost-vdpa,node-name=drive0,path=/dev/vdpa...,readonly=on|off,cache.direct=on

  --blockdev 
virtio-blk-vhost-user,node-name=drive0,path=vhost-user-blk.sock,readonly=on|off,cache.direct=on

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20221013185908.1297568-3-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 1f0fea38f46a786dd87407997e8bfbccca5e458f
      
https://github.com/qemu/qemu/commit/1f0fea38f46a786dd87407997e8bfbccca5e458f
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M hw/core/numa.c
    M util/vfio-helpers.c

  Log Message:
  -----------
  numa: call ->ram_block_removed() in ram_block_notifer_remove()

When a RAMBlockNotifier is added, ->ram_block_added() is called with all
existing RAMBlocks. There is no equivalent ->ram_block_removed() call
when a RAMBlockNotifier is removed.

The util/vfio-helpers.c code (the sole user of RAMBlockNotifier) is fine
with this asymmetry because it does not rely on RAMBlockNotifier for
cleanup. It walks its internal list of DMA mappings and unmaps them by
itself.

Future users of RAMBlockNotifier may not have an internal data structure
that records added RAMBlocks so they will need ->ram_block_removed()
callbacks.

This patch makes ram_block_notifier_remove() symmetric with respect to
callbacks. Now util/vfio-helpers.c needs to unmap remaining DMA mappings
after ram_block_notifier_remove() has been called. This is necessary
since users like block/nvme.c may create additional DMA mappings that do
not originate from the RAMBlockNotifier.

Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20221013185908.1297568-4-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 4f384011c5a37f80dc6cadefffac61ffb1c3aa1e
      
https://github.com/qemu/qemu/commit/4f384011c5a37f80dc6cadefffac61ffb1c3aa1e
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M block/block-backend.c
    M block/io.c
    M block/nvme.c
    M include/block/block-global-state.h
    M include/block/block_int-common.h
    M include/sysemu/block-backend-global-state.h
    M qemu-img.c

  Log Message:
  -----------
  block: pass size to bdrv_unregister_buf()

The only implementor of bdrv_register_buf() is block/nvme.c, where the
size is not needed when unregistering a buffer. This is because
util/vfio-helpers.c can look up mappings by address.

Future block drivers that implement bdrv_register_buf() may not be able
to do their job given only the buffer address. Add a size argument to
bdrv_unregister_buf().

Also document the assumptions about
bdrv_register_buf()/bdrv_unregister_buf() calls. The same <host, size>
values that were given to bdrv_register_buf() must be given to
bdrv_unregister_buf().

gcc 11.2.1 emits a spurious warning that img_bench()'s buf_size local
variable might be uninitialized, so it's necessary to silence the
compiler.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20221013185908.1297568-5-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 98b3ddc78bf3380ec976d924aedb7f3fa2e9dbef
      
https://github.com/qemu/qemu/commit/98b3ddc78bf3380ec976d924aedb7f3fa2e9dbef
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M include/block/block_int-common.h

  Log Message:
  -----------
  block: use BdrvRequestFlags type for supported flag fields

Use the enum type so GDB displays the enum members instead of printing a
numeric constant.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20221013185908.1297568-6-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: e8b6535533be4269e4b7bd23d4bb17dd976dc7a3
      
https://github.com/qemu/qemu/commit/e8b6535533be4269e4b7bd23d4bb17dd976dc7a3
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M block.c
    M block/blkverify.c
    M block/crypto.c
    M block/file-posix.c
    M block/gluster.c
    M block/io.c
    M block/mirror.c
    M block/nbd.c
    M block/parallels.c
    M block/qcow.c
    M block/qed.c
    M block/raw-format.c
    M block/replication.c
    M block/ssh.c
    M block/vhdx.c
    M include/block/block-common.h

  Log Message:
  -----------
  block: add BDRV_REQ_REGISTERED_BUF request flag

Block drivers may optimize I/O requests accessing buffers previously
registered with bdrv_register_buf(). Checking whether all elements of a
request's QEMUIOVector are within previously registered buffers is
expensive, so we need a hint from the user to avoid costly checks.

Add a BDRV_REQ_REGISTERED_BUF request flag to indicate that all
QEMUIOVector elements in an I/O request are known to be within
previously registered buffers.

Always pass the flag through to driver read/write functions. There is
little harm in passing the flag to a driver that does not use it.
Passing the flag to drivers avoids changes across many block drivers.
Filter drivers would need to explicitly support the flag and pass
through to their children when the children support it. That's a lot of
code changes and it's hard to remember to do that everywhere, leading to
silent reduced performance when the flag is accidentally dropped.

The only problematic scenario with the approach in this patch is when a
driver passes the flag through to internal I/O requests that don't use
the same I/O buffer. In that case the hint may be set when it should
actually be clear. This is a rare case though so the risk is low.

Some drivers have assert(!flags), which no longer works when
BDRV_REQ_REGISTERED_BUF is passed in. These assertions aren't very
useful anyway since the functions are called almost exclusively by
bdrv_driver_preadv/pwritev() so if we get flags handling right there
then the assertion is not needed.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20221013185908.1297568-7-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: f4ec04bae9577eaa55ac35f3971dc3086a4a9192
      
https://github.com/qemu/qemu/commit/f4ec04bae9577eaa55ac35f3971dc3086a4a9192
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M block/block-backend.c
    M block/io.c
    M block/nvme.c
    M include/block/block-global-state.h
    M include/block/block_int-common.h
    M include/sysemu/block-backend-global-state.h
    M qemu-img.c

  Log Message:
  -----------
  block: return errors from bdrv_register_buf()

Registering an I/O buffer is only a performance optimization hint but it
is still necessary to return errors when it fails.

Later patches will need to detect errors when registering buffers but an
immediate advantage is that error_report() calls are no longer needed in
block driver .bdrv_register_buf() functions.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20221013185908.1297568-8-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 4fdd0a1a7ea174c5ee573e49c11f7d3bce00984d
      
https://github.com/qemu/qemu/commit/4fdd0a1a7ea174c5ee573e49c11f7d3bce00984d
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M hw/core/numa.c

  Log Message:
  -----------
  numa: use QLIST_FOREACH_SAFE() for RAM block notifiers

Make list traversal work when a callback removes a notifier
mid-traversal. This is a cleanup to prevent bugs in the future.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-id: 20221013185908.1297568-9-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 7f9241d805b4711a4f7dc5489df0e7e30b8c1496
      
https://github.com/qemu/qemu/commit/7f9241d805b4711a4f7dc5489df0e7e30b8c1496
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M MAINTAINERS
    A block/block-ram-registrar.c
    M block/meson.build
    A include/sysemu/block-ram-registrar.h

  Log Message:
  -----------
  block: add BlockRAMRegistrar

Emulated devices and other BlockBackend users wishing to take advantage
of blk_register_buf() all have the same repetitive job: register
RAMBlocks with the BlockBackend using RAMBlockNotifier.

Add a BlockRAMRegistrar API to do this. A later commit will use this
from hw/block/virtio-blk.c.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20221013185908.1297568-10-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 6d998f3cbfebabea7882848a65c38f454d2a37c4
      
https://github.com/qemu/qemu/commit/6d998f3cbfebabea7882848a65c38f454d2a37c4
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M include/exec/cpu-common.h
    M softmmu/physmem.c

  Log Message:
  -----------
  exec/cpu-common: add qemu_ram_get_fd()

Add a function to get the file descriptor for a RAMBlock. Device
emulation code typically uses the MemoryRegion APIs but vhost-style code
may use RAMBlock directly for sharing guest memory with another process.

This new API will be used by the libblkio block driver so it can share
guest memory via .bdrv_register_buf().

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20221013185908.1297568-11-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 701bff24deba59a095c6b5cade15e764d56909f6
      
https://github.com/qemu/qemu/commit/701bff24deba59a095c6b5cade15e764d56909f6
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M stubs/meson.build
    A stubs/physmem.c

  Log Message:
  -----------
  stubs: add qemu_ram_block_from_host() and qemu_ram_get_fd()

The blkio block driver will need to look up the file descriptor for a
given pointer. This is possible in softmmu builds where the RAMBlock API
is available for querying guest RAM.

Add stubs so tools like qemu-img that link the block layer still build
successfully. In this case there is no guest RAM but that is fine.
Bounce buffers and their file descriptors will be allocated with
libblkio's blkio_alloc_mem_region() so we won't rely on QEMU's
qemu_ram_get_fd() in that case.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20221013185908.1297568-12-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: c5640b3e2f1146e8eea9f9f62db87713388d8bc8
      
https://github.com/qemu/qemu/commit/c5640b3e2f1146e8eea9f9f62db87713388d8bc8
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M block/blkio.c

  Log Message:
  -----------
  blkio: implement BDRV_REQ_REGISTERED_BUF optimization

Avoid bounce buffers when QEMUIOVector elements are within previously
registered bdrv_register_buf() buffers.

The idea is that emulated storage controllers will register guest RAM
using bdrv_register_buf() and set the BDRV_REQ_REGISTERED_BUF on I/O
requests. Therefore no blkio_map_mem_region() calls are necessary in the
performance-critical I/O code path.

This optimization doesn't apply if the I/O buffer is internally
allocated by QEMU (e.g. qcow2 metadata). There we still take the slow
path because BDRV_REQ_REGISTERED_BUF is not set.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20221013185908.1297568-13-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: baf422684d73c7bf38e2c18815e18d44fcf395b6
      
https://github.com/qemu/qemu/commit/baf422684d73c7bf38e2c18815e18d44fcf395b6
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M hw/block/virtio-blk.c
    M include/hw/virtio/virtio-blk.h

  Log Message:
  -----------
  virtio-blk: use BDRV_REQ_REGISTERED_BUF optimization hint

Register guest RAM using BlockRAMRegistrar and set the
BDRV_REQ_REGISTERED_BUF flag so block drivers can optimize memory
accesses in I/O requests.

This is for vdpa-blk, vhost-user-blk, and other I/O interfaces that rely
on DMA mapping/unmapping.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Message-id: 20221013185908.1297568-14-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


  Commit: 20745ac938c384c8847c3a27b7d76a454c67564b
      
https://github.com/qemu/qemu/commit/20745ac938c384c8847c3a27b7d76a454c67564b
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-27 (Thu, 27 Oct 2022)

  Changed paths:
    M audio/alsaaudio.c
    M audio/audio.c
    M audio/audio_legacy.c
    M audio/ossaudio.c
    M audio/paaudio.c
    M audio/sndioaudio.c
    M audio/wavaudio.c
    M backends/tpm/tpm_passthrough.c
    M block/block-backend.c
    M block/copy-before-write.c
    M block/dirty-bitmap.c
    M block/export/export.c
    M block/export/vduse-blk.c
    M block/gluster.c
    M block/monitor/block-hmp-cmds.c
    M block/qapi-sysemu.c
    M block/qapi.c
    M block/qcow.c
    M block/qcow2.c
    M block/qed.c
    M block/quorum.c
    M block/rbd.c
    M block/ssh.c
    M blockdev-nbd.c
    M blockdev.c
    M blockjob.c
    M chardev/char-file.c
    M chardev/char-socket.c
    M chardev/char-udp.c
    M chardev/char.c
    M crypto/block-luks.c
    M docs/devel/qapi-code-gen.rst
    M docs/devel/writing-monitor-commands.rst
    M dump/dump.c
    M hw/acpi/core.c
    M hw/acpi/cpu.c
    M hw/acpi/memory_hotplug.c
    M hw/core/machine-hmp-cmds.c
    M hw/core/machine-qmp-cmds.c
    M hw/core/machine.c
    M hw/core/numa.c
    M hw/core/qdev.c
    M hw/mem/pc-dimm.c
    M hw/net/rocker/rocker_of_dpa.c
    M hw/net/virtio-net.c
    M hw/nvram/fw_cfg.c
    M hw/pci/pci.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_drc.c
    M hw/virtio/virtio-mem-pci.c
    M hw/virtio/virtio-pmem-pci.c
    M hw/virtio/virtio.c
    M include/monitor/monitor.h
    M job-qmp.c
    M migration/block-dirty-bitmap.c
    M migration/colo.c
    M migration/migration.c
    M monitor/hmp-cmds.c
    M monitor/misc.c
    M monitor/qmp-cmds.c
    M nbd/server.c
    M net/announce.c
    M net/hub.c
    M net/l2tpv3.c
    M net/net.c
    M net/slirp.c
    M net/socket.c
    M net/tap-win32.c
    M net/tap.c
    M qemu-img.c
    M qemu-nbd.c
    M qga/commands-posix.c
    M qga/commands-win32.c
    M qga/commands.c
    M qom/qom-qmp-cmds.c
    M replay/replay-debugging.c
    M scripts/qapi/commands.py
    M scripts/qapi/events.py
    M scripts/qapi/gen.py
    M scripts/qapi/schema.py
    M scripts/qapi/types.py
    M scripts/qapi/visit.py
    M softmmu/runstate.c
    M softmmu/vl.c
    M stubs/qdev.c
    M target/arm/monitor.c
    M target/i386/cpu-sysemu.c
    M target/i386/cpu.c
    M target/s390x/cpu_models_sysemu.c
    M tests/qtest/fuzz/qos_fuzz.c
    M tests/qtest/qmp-cmd-test.c
    M tests/unit/test-char.c
    M tests/unit/test-crypto-block.c
    M tests/unit/test-qmp-cmds.c
    M tests/unit/test-qmp-event.c
    M tests/unit/test-qobject-input-visitor.c
    M tests/unit/test-qobject-output-visitor.c
    M tests/unit/test-visitor-serialization.c
    M ui/console.c
    M ui/input.c
    M ui/spice-core.c
    M ui/vnc.c
    M util/qemu-config.c

  Log Message:
  -----------
  Merge tag 'pull-qapi-2022-10-25-v2' of https://repo.or.cz/qemu/armbru into 
staging

QAPI patches patches for 2022-10-25

* tag 'pull-qapi-2022-10-25-v2' of https://repo.or.cz/qemu/armbru: (28 commits)
  qapi: Drop temporary logic to support conversion step by step
  qapi qga: Elide redundant has_FOO in generated C
  qapi virtio: Elide redundant has_FOO in generated C
  qapi ui: Elide redundant has_FOO in generated C
  qapi transaction: Elide redundant has_FOO in generated C
  qapi tpm: Elide redundant has_FOO in generated C
  qapi stats: Elide redundant has_FOO in generated C
  qapi run-state: Elide redundant has_FOO in generated C
  qapi rocker: Elide redundant has_FOO in generated C
  qapi replay: Elide redundant has_FOO in generated C
  qapi qdev qom: Elide redundant has_FOO in generated C
  qapi pci: Elide redundant has_FOO in generated C
  qapi net: Elide redundant has_FOO in generated C
  qapi misc: Elide redundant has_FOO in generated C
  qapi migration: Elide redundant has_FOO in generated C
  qapi machine: Elide redundant has_FOO in generated C
  qapi job: Elide redundant has_FOO in generated C
  qapi dump: Elide redundant has_FOO in generated C
  qapi crypto: Elide redundant has_FOO in generated C
  qapi chardev: Elide redundant has_FOO in generated C
  ...

Fixups:
- audio/sndioaudio.c was still using has_dev instead of just dev. Fix
  the compilation error:
  ../audio/sndioaudio.c:336:20: error: ‘AudiodevSndioOptions’ has no member 
named ‘has_dev’
  336 |     dev_name = opts->has_dev ? opts->dev : SIO_DEVANY;

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


  Commit: 11aec2f76bdbc001346a990f1ccbd730ff1c0fc7
      
https://github.com/qemu/qemu/commit/11aec2f76bdbc001346a990f1ccbd730ff1c0fc7
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-27 (Thu, 27 Oct 2022)

  Changed paths:
    M meson.build
    M qga/channel-posix.c
    A qga/commands-bsd.c
    M qga/commands-common.h
    A qga/commands-linux.c
    M qga/commands-posix.c
    M qga/main.c
    M qga/meson.build

  Log Message:
  -----------
  Merge tag 'qga-pull-2022-10-26' of https://github.com/kostyanf14/qemu into 
staging

qga-pull-2022-10-26

* tag 'qga-pull-2022-10-26' of https://github.com/kostyanf14/qemu:
  qga: add channel path to error messages
  qga: Add HW address getting for FreeBSD
  qga: Move HW address getting to a separate function
  qga: Add support for user password setting in FreeBSD
  qga: Add shutdown/halt/reboot support for FreeBSD
  qga: Add UFS freeze/thaw support for FreeBSD
  qga: Move Linux-specific FS freeze/thaw code to a separate file
  qga: Add initial FreeBSD support

Conflicts:
- "qga: Move HW address getting to a separate function" still uses
  has_hardware_address but it was just removed by "qapi qga: Elide
  redundant has_FOO in generated C". Drop has_hardware_address.

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


  Commit: 1deda0dd9ed56acce9bd1e2080779a35237b54d3
      
https://github.com/qemu/qemu/commit/1deda0dd9ed56acce9bd1e2080779a35237b54d3
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2022-10-27 (Thu, 27 Oct 2022)

  Changed paths:
    M MAINTAINERS
    M block.c
    A block/blkio.c
    M block/blkverify.c
    M block/block-backend.c
    A block/block-ram-registrar.c
    M block/crypto.c
    M block/file-posix.c
    M block/gluster.c
    M block/io.c
    M block/meson.build
    M block/mirror.c
    M block/nbd.c
    M block/nvme.c
    M block/parallels.c
    M block/qcow.c
    M block/qed.c
    M block/raw-format.c
    M block/replication.c
    M block/ssh.c
    M block/vhdx.c
    M hw/block/virtio-blk.c
    M hw/core/numa.c
    M include/block/block-common.h
    M include/block/block-global-state.h
    M include/block/block_int-common.h
    M include/exec/cpu-common.h
    M include/hw/virtio/virtio-blk.h
    M include/qemu/coroutine.h
    M include/sysemu/block-backend-global-state.h
    A include/sysemu/block-ram-registrar.h
    M meson.build
    M meson_options.txt
    M qapi/block-core.json
    M qemu-img.c
    M scripts/meson-buildoptions.sh
    M softmmu/physmem.c
    M stubs/meson.build
    A stubs/physmem.c
    M tests/qtest/modules-test.c
    M util/qemu-coroutine-lock.c
    M util/vfio-helpers.c

  Log Message:
  -----------
  Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into 
staging

Pull request

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmNZg14ACgkQnKSrs4Gr
# c8hwwwf/Udbnt6n4SShezEIYRe0udLvuyo1HwcMNLWjllHLfp/yNDcPsGk+r13Ue
# TxrvbVaucxB5RPdN67KmzPyu+wPM/o0nij7c4CkBvwNPXmfUCF97Lj0prEL+ZeHp
# HmNg08FRfHM2vKMFyJXqDAidBecUDizLrP9C3nc/LAF6fr9ds+vfFuB/12eSXvZ+
# RLnaAj7KLt2MzkgWbDiC6066TPZWCcwFJmc0zkCAthCepokDrKfSHc+0u9U/NXA9
# Qv7qKcEBYq3vP3SCvDtbKU3Ig4CoiwO3A3O9wZTypamU2816H9HtEJ5NPtjNUFPF
# dm3siyKODbDx4mzba/Xv/26lHGSsJA==
# =bmGV
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 26 Oct 2022 14:58:38 EDT
# gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" [ultimate]
# gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>" [ultimate]
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* tag 'block-pull-request' of https://gitlab.com/stefanha/qemu:
  virtio-blk: use BDRV_REQ_REGISTERED_BUF optimization hint
  blkio: implement BDRV_REQ_REGISTERED_BUF optimization
  stubs: add qemu_ram_block_from_host() and qemu_ram_get_fd()
  exec/cpu-common: add qemu_ram_get_fd()
  block: add BlockRAMRegistrar
  numa: use QLIST_FOREACH_SAFE() for RAM block notifiers
  block: return errors from bdrv_register_buf()
  block: add BDRV_REQ_REGISTERED_BUF request flag
  block: use BdrvRequestFlags type for supported flag fields
  block: pass size to bdrv_unregister_buf()
  numa: call ->ram_block_removed() in ram_block_notifer_remove()
  blkio: add libblkio block driver
  coroutine: add flag to re-queue at front of CoQueue

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


Compare: https://github.com/qemu/qemu/compare/66a1ca5d77f3...1deda0dd9ed5



reply via email to

[Prev in Thread] Current Thread [Next in Thread]