qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 818bbc: block: use bdrv_add_before_write_noti


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 818bbc: block: use bdrv_add_before_write_notifier
Date: Mon, 10 Oct 2016 08:30:04 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 818bbc86c9f9c47f67d11c0a068116c4333fd0ba
      
https://github.com/qemu/qemu/commit/818bbc86c9f9c47f67d11c0a068116c4333fd0ba
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block/write-threshold.c

  Log Message:
  -----------
  block: use bdrv_add_before_write_notifier

Register the notifier using the specific API for block devices.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 5b8bb3595a2941e9408021f1080e60ce86d677d2
      
https://github.com/qemu/qemu/commit/5b8bb3595a2941e9408021f1080e60ce86d677d2
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M async.c
    M include/block/aio.h

  Log Message:
  -----------
  async: add aio_bh_schedule_oneshot

qemu_bh_delete is already clearing bh->scheduled at the same time
as it's setting bh->deleted.  Since it's not using any memory
barriers, there is no synchronization going on for bh->deleted,
and this makes the bh->deleted checks superfluous in aio_compute_timeout,
aio_bh_poll and aio_ctx_check.

Just remove them, and put the (bh->scheduled && bh->deleted) combo
to work in a new function aio_bh_schedule_oneshot.  The new function
removes the need to save the QEMUBH pointer between the creation
and the execution of the bottom half.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: fffb6e12233002c26c0ee9ff92fa87927cd779f2
      
https://github.com/qemu/qemu/commit/fffb6e12233002c26c0ee9ff92fa87927cd779f2
  Author: Paolo Bonzini <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block/archipelago.c
    M block/blkdebug.c
    M block/blkverify.c
    M block/block-backend.c
    M block/curl.c
    M block/gluster.c
    M block/io.c
    M block/iscsi.c
    M block/nfs.c
    M block/null.c
    M block/qed.c
    M block/qed.h
    M block/rbd.c
    M blockjob.c

  Log Message:
  -----------
  block: use aio_bh_schedule_oneshot

This simplifies bottom half handlers by removing calls to qemu_bh_delete and
thus removing the need to stash the bottom half pointer in the opaque
datum.

Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>


  Commit: c5f3014b82adc0e8f50bf5052031503d3467bea3
      
https://github.com/qemu/qemu/commit/c5f3014b82adc0e8f50bf5052031503d3467bea3
  Author: Kevin Wolf <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block.c
    M include/sysemu/sysemu.h
    M util/qemu-config.c
    M vl.c

  Log Message:
  -----------
  block: Add bdrv_runtime_opts to query-command-line-options

Recently we moved a few options from QemuOptsLists in blockdev.c to
bdrv_runtime_opts in block.c in order to make them accissble using
blockdev-add. However, this has the side effect that these options are
missing from query-command-line-options now, and libvirt consequently
disables the corresponding feature.

This problem was reported as a regression for the 'discard' option,
introduced in commit 818584a4. However, it is more general than that.

Fix it by adding bdrv_runtime_opts to the list of QemuOptsLists that are
returned in query-command-line-options. For the future, libvirt is
advised to use QMP schema introspection for block device options.

Reported-by: Michal Privoznik <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
Tested-by: Michal Privoznik <address@hidden>
Tested-by: Gerd Hoffmann <address@hidden>


  Commit: 2bf7e10f78ebf67fbef364dce37ae844ba3c7a62
      
https://github.com/qemu/qemu/commit/2bf7e10f78ebf67fbef364dce37ae844ba3c7a62
  Author: Kevin Wolf <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block/block-backend.c
    M docs/qmp-events.txt
    M qapi/block-core.json

  Log Message:
  -----------
  block: Add node name to BLOCK_IO_ERROR event

The event currently only contains the BlockBackend name. However, with
anonymous BlockBackends, this is always the empty string. Add the node
name so that the user can still see which block device caused the event.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: bbc8ea98bc8a2ba8174d106184f3089248d5ec5d
      
https://github.com/qemu/qemu/commit/bbc8ea98bc8a2ba8174d106184f3089248d5ec5d
  Author: Kevin Wolf <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block/block-backend.c
    M hw/block/xen_disk.c
    M include/sysemu/block-backend.h

  Log Message:
  -----------
  block-backend: Remember if attached device is non-qdev

Almost all block devices are qdevified by now. This allows us to go back
from the BlockBackend to the DeviceState. xen_disk is the last device
that is missing. We'll remember in the BlockBackend if a xen_disk is
attached and can then disable any features that require going from a BB
to the DeviceState.

While at it, clearly mark the function used by xen_disk as legacy even
in its name, not just in TODO comments.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: 2d76e724cf9e3f9fec6070a8af79c7ee4c2e763e
      
https://github.com/qemu/qemu/commit/2d76e724cf9e3f9fec6070a8af79c7ee4c2e763e
  Author: Kevin Wolf <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block.c
    M block/block-backend.c
    M docs/qmp-commands.txt
    M docs/qmp-events.txt
    M qapi/block.json

  Log Message:
  -----------
  block: Add qdev ID to DEVICE_TRAY_MOVED

The event currently only contains the BlockBackend name. However, with
anonymous BlockBackends, this is always the empty string. Add the qdev
ID (or if none was given, the QOM path) so that the user can still see
which device caused the event.

Event generation has to be moved from bdrv_eject() to the BlockBackend
because the BDS doesn't know the attached device, but that's easy
because blk_eject() is the only user of it.

Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Max Reitz <address@hidden>


  Commit: 159975f38b2c88cd7b1fef511ba86dd7266a9f4e
      
https://github.com/qemu/qemu/commit/159975f38b2c88cd7b1fef511ba86dd7266a9f4e
  Author: Fam Zheng <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M scripts/modules/module_block.py

  Log Message:
  -----------
  scripts: Allow block module to not define BlockDriver

Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: dffa41b48651c4002af02e80b7459e56a77152c7
      
https://github.com/qemu/qemu/commit/dffa41b48651c4002af02e80b7459e56a77152c7
  Author: Fam Zheng <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M util/module.c

  Log Message:
  -----------
  module: Don't load the same module if requested multiple times

Use a hash table to keep record of all loaded modules, and return early
if the requested module is already loaded.

Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 27685a8dd08c051fa6d641fe46106fc0dfa51073
      
https://github.com/qemu/qemu/commit/27685a8dd08c051fa6d641fe46106fc0dfa51073
  Author: Fam Zheng <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block/Makefile.objs
    A block/dmg-bz2.c
    M block/dmg.c
    A block/dmg.h

  Log Message:
  -----------
  dmg: Move libbz2 code to dmg-bz2.so

dmg.o was moved to block-obj-m in 5505e8b76 to become a separate module,
so that its reference to libbz2, since 6b383c08c, doesn't add an extra
library to the main executable.

Until recently, commit 06e60f70a (blockdev: Add dynamic module loading
for block drivers) moved it back to block-obj-y to simplify the design
of dynamic loading of block modules. But we don't want to lose the
feature of less library dependency on the main executable.

The solution here is to move only the bz2 related code to a separate
DSO file, and load it when dmg_open is called.

dmg_probe doesn't depend on bz2 support to work, and is the only code in
this file which can run before dmg_open.

While we are at it, fix the unhelpful cast of last argument passed to
dmg_uncompress_bz2.

Signed-off-by: Fam Zheng <address@hidden>
Message-id: address@hidden
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Max Reitz <address@hidden>


  Commit: 9c7f3fcae714925153c4c5ada086ca4fcf6bbbd8
      
https://github.com/qemu/qemu/commit/9c7f3fcae714925153c4c5ada086ca4fcf6bbbd8
  Author: Kevin Wolf <address@hidden>
  Date:   2016-10-07 (Fri, 07 Oct 2016)

  Changed paths:
    M block/Makefile.objs
    A block/dmg-bz2.c
    M block/dmg.c
    A block/dmg.h
    M scripts/modules/module_block.py
    M util/module.c

  Log Message:
  -----------
  Merge remote-tracking branch 'mreitz/tags/pull-block-2016-10-07' into 
queue-block

Block patches for the block queue.

# gpg: Signature made Fri Oct  7 14:14:45 2016 CEST
# gpg:                using RSA key 0xF407DB0061D5CF40
# gpg: Good signature from "Max Reitz <address@hidden>"
# Primary key fingerprint: 91BE B60A 30DB 3E88 57D1  1829 F407 DB00 61D5 CF40

* mreitz/tags/pull-block-2016-10-07:
  dmg: Move libbz2 code to dmg-bz2.so
  module: Don't load the same module if requested multiple times
  scripts: Allow block module to not define BlockDriver

Signed-off-by: Kevin Wolf <address@hidden>


  Commit: 0f183e679d85fec74fc83f35f973cf8e56d97861
      
https://github.com/qemu/qemu/commit/0f183e679d85fec74fc83f35f973cf8e56d97861
  Author: Peter Maydell <address@hidden>
  Date:   2016-10-10 (Mon, 10 Oct 2016)

  Changed paths:
    M async.c
    M block.c
    M block/Makefile.objs
    M block/archipelago.c
    M block/blkdebug.c
    M block/blkverify.c
    M block/block-backend.c
    M block/curl.c
    A block/dmg-bz2.c
    M block/dmg.c
    A block/dmg.h
    M block/gluster.c
    M block/io.c
    M block/iscsi.c
    M block/nfs.c
    M block/null.c
    M block/qed.c
    M block/qed.h
    M block/rbd.c
    M block/write-threshold.c
    M blockjob.c
    M docs/qmp-commands.txt
    M docs/qmp-events.txt
    M hw/block/xen_disk.c
    M include/block/aio.h
    M include/sysemu/block-backend.h
    M include/sysemu/sysemu.h
    M qapi/block-core.json
    M qapi/block.json
    M scripts/modules/module_block.py
    M util/module.c
    M util/qemu-config.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches

# gpg: Signature made Mon 10 Oct 2016 12:33:14 BST
# gpg:                using RSA key 0x7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <address@hidden>"
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream:
  dmg: Move libbz2 code to dmg-bz2.so
  module: Don't load the same module if requested multiple times
  scripts: Allow block module to not define BlockDriver
  block: Add qdev ID to DEVICE_TRAY_MOVED
  block-backend: Remember if attached device is non-qdev
  block: Add node name to BLOCK_IO_ERROR event
  block: Add bdrv_runtime_opts to query-command-line-options
  block: use aio_bh_schedule_oneshot
  async: add aio_bh_schedule_oneshot
  block: use bdrv_add_before_write_notifier

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/a20fd901afdb...0f183e679d85

reply via email to

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