[PULL 00/18] Block layer patches
The following changes since commit 6972ef1440a9d685482d78672620a7482f2bd09a: Merge tag 'pull-tcg-20230516-3' of https://gitlab.com/rth7680/qemu into staging (2023-05-16 21:30:27 -0700) are available in the Git repository at: https://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to 75b2591bbce5dc9f3da89f140b7bdc00e92fa8ec: tested: add test for nested aio_poll() in poll handlers (2023-05-17 18:01:22 +0200) Block layer patches - qcow2 spec: Rename "zlib" compression to "deflate" - Honour graph read lock even in the main thread + prerequisite fixes - aio-posix: do not nest poll handlers (fixes infinite recursion) - Refactor QMP blockdev transactions - iotests/245: Check if 'compress' driver is available Akihiro Suda (1): docs/interop/qcow2.txt: fix description about "zlib" clusters Kevin Wolf (9): block: Call .bdrv_co_create(_opts) unlocked block/export: Fix null pointer dereference in error path qcow2: Unlock the graph in qcow2_do_open() where necessary qemu-img: Take graph lock more selectively test-bdrv-drain: Take graph lock more selectively test-bdrv-drain: Call bdrv_co_unref() in coroutine context blockjob: Adhere to rate limit even when reentered early graph-lock: Honour read locks even in the main thread iotests/245: Check if 'compress' driver is available Stefan Hajnoczi (2): aio-posix: do not nest poll handlers tested: add test for nested aio_poll() in poll handlers Vladimir Sementsov-Ogievskiy (6): blockdev: refactor transaction to use Transaction API blockdev: transactions: rename some things blockdev: qmp_transaction: refactor loop to classic for blockdev: transaction: refactor handling transaction properties blockdev: use state.bitmap in block-dirty-bitmap-add action blockdev: qmp_transaction: drop extra generic layer docs/interop/qcow2.txt | 10 +- include/block/block-global-state.h | 8 +- include/block/block_int-common.h | 4 +- include/block/blockjob_int.h | 14 +- block.c| 1 - block/commit.c | 7 +- block/create.c | 1 - block/crypto.c | 25 +- block/export/export.c | 6 +- block/graph-lock.c | 10 - block/mirror.c | 23 +- block/parallels.c | 6 +- block/qcow.c | 6 +- block/qcow2.c | 43 ++- block/qed.c| 6 +- block/raw-format.c | 2 +- block/stream.c | 7 +- block/vdi.c| 11 +- block/vhdx.c | 8 +- block/vmdk.c | 27 +- block/vpc.c| 6 +- blockdev.c | 606 +++-- blockjob.c | 22 +- qemu-img.c | 5 +- tests/unit/test-bdrv-drain.c | 6 +- tests/unit/test-nested-aio-poll.c | 130 util/aio-posix.c | 11 + tests/qemu-iotests/245 | 7 +- tests/qemu-iotests/245.out | 9 +- tests/unit/meson.build | 1 + 30 files changed, 541 insertions(+), 487 deletions(-) create mode 100644 tests/unit/test-nested-aio-poll.c
Re: [PULL 00/18] Block layer patches
Applied, thanks. Please update the changelog at https://wiki.qemu.org/ChangeLog/7.2 for any user-visible changes. signature.asc Description: PGP signature
[PULL 00/18] Block layer patches
The following changes since commit c8de6ec63d766ca1998c5af468483ce912fdc0c2: Merge tag 'pull-request-2022-09-28' of https://gitlab.com/thuth/qemu into staging (2022-09-28 17:04:11 -0400) are available in the Git repository at: git://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to 176e4961bb33d559da1af441fb0ee2e0cb8245ae: hw/ide/core.c: Implement ATA INITIALIZE_DEVICE_PARAMETERS command (2022-09-30 18:43:44 +0200) Block layer patches - Fix missing block_acct_setup() with -blockdev - Keep auto_backing_file post-migration - file-posix: Fixed O_DIRECT memory alignment - ide: Fix state after EXECUTE DEVICE DIAGNOSTIC and implement INITIALIZE DEVICE PARAMETERS - qemu-img: Wean documentation and help output off '?' for help - qcow2: fix memory leak and compiler warning - Code cleanups Denis V. Lunev (4): block: pass OnOffAuto instead of bool to block_acct_setup() block: add missed block_acct_setup with new block device init procedure block: use bdrv_is_sg() helper instead of raw bs->sg reading block: make serializing requests functions 'void' Hanna Reitz (3): block/qcow2: Keep auto_backing_file if possible block/qed: Keep auto_backing_file if possible iotests/backing-file-invalidation: Add new test Keith Busch (2): block: move bdrv_qiov_is_aligned to file-posix block: use the request length for iov alignment Lev Kujawski (5): piix_ide_reset: Use pci_set_* functions instead of direct access tests/qtest/ide-test.c: Create disk image for use as a secondary hw/ide/core: Clear LBA and drive bits for EXECUTE DEVICE DIAGNOSTIC tests/qtest/ide-test: Verify that DIAGNOSTIC clears DEV to zero hw/ide/core.c: Implement ATA INITIALIZE_DEVICE_PARAMETERS command Markus Armbruster (1): qemu-img: Wean documentation and help output off '?' for help Philippe Mathieu-Daudé (1): block/qcow2-bitmap: Add missing cast to silent GCC error Stefan Hajnoczi (1): gluster: stop using .bdrv_needs_filename lu zhipeng (1): qcow2: fix memory leak in qcow2_read_extensions docs/tools/qemu-img.rst| 2 +- include/block/accounting.h | 6 +- include/block/block-io.h | 1 - include/block/block_int-io.h | 2 +- include/hw/block/block.h | 7 +- include/hw/ide/internal.h | 3 + block/accounting.c | 26 +++- block/file-posix.c | 24 +++- block/gluster.c| 4 - block/io.c | 44 +- block/iscsi.c | 2 +- block/qcow2-bitmap.c | 2 +- block/qcow2.c | 22 ++- block/qed.c| 15 +- block/raw-format.c | 4 +- blockdev.c | 17 ++- hw/block/block.c | 2 + hw/ide/core.c | 35 - hw/ide/piix.c | 17 +-- qemu-img.c | 4 +- tests/qtest/ide-test.c | 72 +++--- tests/qemu-iotests/172.out | 76 +++ tests/qemu-iotests/227.out | 4 +- tests/qemu-iotests/tests/backing-file-invalidation | 152 + .../tests/backing-file-invalidation.out| 5 + 25 files changed, 447 insertions(+), 101 deletions(-) create mode 100755 tests/qemu-iotests/tests/backing-file-invalidation create mode 100644 tests/qemu-iotests/tests/backing-file-invalidation.out
Re: Re: [PULL 00/18] Block layer patches
On Tue, Jun 14, 2022 at 1:04 AM Kevin Wolf wrote: > > Am 09.06.2022 um 22:18 hat Richard Henderson geschrieben: > > On 6/9/22 10:21, Kevin Wolf wrote: > > > The following changes since commit > > > 028f2361d0c2d28d6f918fe618f389228ac22b60: > > > > > >Merge tag 'pull-target-arm-20220609' of > > > https://git.linaro.org/people/pmaydell/qemu-arm into staging (2022-06-09 > > > 06:47:03 -0700) > > > > > > are available in the Git repository at: > > > > > >git://repo.or.cz/qemu/kevin.git tags/for-upstream > > > > > > for you to fetch changes up to 7f9a8b3342ff00d3398fdc08264948762d748edb: > > > > > >nbd: Drop dead code spotted by Coverity (2022-06-09 18:07:17 +0200) > > > > > > > > > Block layer patches > > > > > > - Add vduse-blk export > > > - Dirty bitmaps: Fix and improve bitmap merge > > > - gluster: correctly set max_pdiscard > > > - rbd: report a better error when namespace does not exist > > > - aio_wait_kick: add missing memory barrier > > > - Code cleanups > > > > Several sets of compile failures: > > Hi Yongji, > > the vduse-blk code fails to compile with clang as shown below. As you > already sent another series to fix up other bugs introduced in the > series, maybe it would be better if you can send a new version with all > of the necessary fixes squashed in instead of me trying to make minimal > fixes to get it to compile with clang. > OK, I have sent a new version including the fix. Thanks. Yongji
Re: [PULL 00/18] Block layer patches
Am 09.06.2022 um 22:18 hat Richard Henderson geschrieben: > On 6/9/22 10:21, Kevin Wolf wrote: > > The following changes since commit 028f2361d0c2d28d6f918fe618f389228ac22b60: > > > >Merge tag 'pull-target-arm-20220609' of > > https://git.linaro.org/people/pmaydell/qemu-arm into staging (2022-06-09 > > 06:47:03 -0700) > > > > are available in the Git repository at: > > > >git://repo.or.cz/qemu/kevin.git tags/for-upstream > > > > for you to fetch changes up to 7f9a8b3342ff00d3398fdc08264948762d748edb: > > > >nbd: Drop dead code spotted by Coverity (2022-06-09 18:07:17 +0200) > > > > > > Block layer patches > > > > - Add vduse-blk export > > - Dirty bitmaps: Fix and improve bitmap merge > > - gluster: correctly set max_pdiscard > > - rbd: report a better error when namespace does not exist > > - aio_wait_kick: add missing memory barrier > > - Code cleanups > > Several sets of compile failures: Hi Yongji, the vduse-blk code fails to compile with clang as shown below. As you already sent another series to fix up other bugs introduced in the series, maybe it would be better if you can send a new version with all of the necessary fixes squashed in instead of me trying to make minimal fixes to get it to compile with clang. Kevin > https://gitlab.com/qemu-project/qemu/-/jobs/2571008901 > > ../subprojects/libvduse/libvduse.c:578:20: error: unused function > 'vring_used_flags_set_bit' [-Werror,-Wunused-function] > static inline void vring_used_flags_set_bit(VduseVirtq *vq, int mask) >^ > ../subprojects/libvduse/libvduse.c:587:20: error: unused function > 'vring_used_flags_unset_bit' [-Werror,-Wunused-function] > static inline void vring_used_flags_unset_bit(VduseVirtq *vq, int mask) >^ > > https://gitlab.com/qemu-project/qemu/-/jobs/2571008908 > > ../meson.build:1652:2: ERROR: Tried to use 'add_global_arguments' after a > build target has been declared. > > https://gitlab.com/qemu-project/qemu/-/jobs/2571008833 > > ../subprojects/libvduse/libvduse.c:325:20: error: cast to pointer from > integer of different size [-Werror=int-to-pointer-cast] > 325 | munmap((void *)dev->regions[i].mmap_addr, > |^ > ../subprojects/libvduse/libvduse.c: In function 'vduse_dev_create': > ../subprojects/libvduse/libvduse.c:1318:54: error: format '%lu' expects > argument of type 'long unsigned int', but argument 3 has type 'uint64_t' > {aka 'long long unsigned int'} [-Werror=format=] > 1318 | fprintf(stderr, "Failed to set api version %lu: %s\n", > |~~^ > | | > | long unsigned int > |%llu > 1319 | version, strerror(errno)); > | ~~~ > | | > | uint64_t {aka long long unsigned int} > > > r~ >
Re: [PULL 00/18] Block layer patches
On 6/9/22 10:21, Kevin Wolf wrote: The following changes since commit 028f2361d0c2d28d6f918fe618f389228ac22b60: Merge tag 'pull-target-arm-20220609' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2022-06-09 06:47:03 -0700) are available in the Git repository at: git://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to 7f9a8b3342ff00d3398fdc08264948762d748edb: nbd: Drop dead code spotted by Coverity (2022-06-09 18:07:17 +0200) Block layer patches - Add vduse-blk export - Dirty bitmaps: Fix and improve bitmap merge - gluster: correctly set max_pdiscard - rbd: report a better error when namespace does not exist - aio_wait_kick: add missing memory barrier - Code cleanups Several sets of compile failures: https://gitlab.com/qemu-project/qemu/-/jobs/2571008901 ../subprojects/libvduse/libvduse.c:578:20: error: unused function 'vring_used_flags_set_bit' [-Werror,-Wunused-function] static inline void vring_used_flags_set_bit(VduseVirtq *vq, int mask) ^ ../subprojects/libvduse/libvduse.c:587:20: error: unused function 'vring_used_flags_unset_bit' [-Werror,-Wunused-function] static inline void vring_used_flags_unset_bit(VduseVirtq *vq, int mask) ^ https://gitlab.com/qemu-project/qemu/-/jobs/2571008908 ../meson.build:1652:2: ERROR: Tried to use 'add_global_arguments' after a build target has been declared. https://gitlab.com/qemu-project/qemu/-/jobs/2571008833 ../subprojects/libvduse/libvduse.c:325:20: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 325 | munmap((void *)dev->regions[i].mmap_addr, |^ ../subprojects/libvduse/libvduse.c: In function 'vduse_dev_create': ../subprojects/libvduse/libvduse.c:1318:54: error: format '%lu' expects argument of type 'long unsigned int', but argument 3 has type 'uint64_t' {aka 'long long unsigned int'} [-Werror=format=] 1318 | fprintf(stderr, "Failed to set api version %lu: %s\n", |~~^ | | | long unsigned int |%llu 1319 | version, strerror(errno)); | ~~~ | | | uint64_t {aka long long unsigned int} r~
[PULL 00/18] Block layer patches
The following changes since commit 028f2361d0c2d28d6f918fe618f389228ac22b60: Merge tag 'pull-target-arm-20220609' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2022-06-09 06:47:03 -0700) are available in the Git repository at: git://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to 7f9a8b3342ff00d3398fdc08264948762d748edb: nbd: Drop dead code spotted by Coverity (2022-06-09 18:07:17 +0200) Block layer patches - Add vduse-blk export - Dirty bitmaps: Fix and improve bitmap merge - gluster: correctly set max_pdiscard - rbd: report a better error when namespace does not exist - aio_wait_kick: add missing memory barrier - Code cleanups Emanuele Giuseppe Esposito (1): aio_wait_kick: add missing memory barrier Eric Blake (1): nbd: Drop dead code spotted by Coverity Fabian Ebner (1): block/gluster: correctly set max_pdiscard Stefan Hajnoczi (3): block: drop unused bdrv_co_drain() API block: get rid of blk->guest_block_size qsd: document vduse-blk exports Stefano Garzarella (1): block/rbd: report a better error when namespace does not exist Vladimir Sementsov-Ogievskiy (3): block: block_dirty_bitmap_merge(): fix error path block: improve block_dirty_bitmap_merge(): don't allocate extra bitmap block: simplify handling of try to merge different sized bitmaps Xie Yongji (8): block: Support passing NULL ops to blk_set_dev_ops() block/export: Fix incorrect length passed to vu_queue_push() block/export: Abstract out the logic of virtio-blk I/O process linux-headers: Add vduse.h libvduse: Add VDUSE (vDPA Device in Userspace) library vduse-blk: Implement vduse-blk export vduse-blk: Add vduse-blk resize support libvduse: Add support for reconnecting qapi/block-export.json | 28 +- docs/tools/qemu-storage-daemon.rst | 21 + meson_options.txt |4 + block/export/vduse-blk.h| 20 + block/export/virtio-blk-handler.h | 37 + include/block/aio-wait.h|2 + include/block/block-io.h|1 - include/block/block_int-io.h|2 +- include/qemu/hbitmap.h | 15 +- include/sysemu/block-backend-io.h |1 - linux-headers/linux/vduse.h | 306 ++ subprojects/libvduse/include/atomic.h |1 + subprojects/libvduse/include/compiler.h |1 + subprojects/libvduse/libvduse.h | 247 + block/backup.c |6 +- block/block-backend.c | 12 +- block/dirty-bitmap.c| 26 +- block/export/export.c |6 + block/export/vduse-blk.c| 341 +++ block/export/vhost-user-blk-server.c| 261 + block/export/virtio-blk-handler.c | 240 + block/gluster.c |2 +- block/io.c | 15 - block/monitor/bitmap-qmp-cmds.c | 40 +- block/nbd.c |8 +- block/rbd.c | 24 + hw/block/virtio-blk.c |1 - hw/block/xen-block.c|1 - hw/ide/core.c |1 - hw/scsi/scsi-disk.c |1 - hw/scsi/scsi-generic.c |1 - storage-daemon/qemu-storage-daemon.c|9 + subprojects/libvduse/libvduse.c | 1392 +++ util/aio-wait.c | 16 +- util/hbitmap.c | 25 +- MAINTAINERS |9 + block/export/meson.build|7 +- meson.build | 34 + scripts/meson-buildoptions.sh |7 + scripts/update-linux-headers.sh |2 +- subprojects/libvduse/linux-headers/linux|1 + subprojects/libvduse/meson.build| 10 + subprojects/libvduse/standard-headers/linux |1 + 43 files changed, 2830 insertions(+), 355 deletions(-) create mode 100644 block/export/vduse-blk.h create mode 100644 block/export/virtio-blk-handler.h create mode 100644 linux-headers/linux/vduse.h create mode 12 subprojects/libvduse/include/atomic.h create mode 12 subprojects/libvduse/include/compiler.h create mode 100644 subprojects/libvduse/libvduse.h create mode 100644 block/export/vduse-blk.c create mode 100644 block/export/virtio-blk-handler.c create mode 100644 subprojects/libvduse/libvduse.c create mode 12 subprojects/libvduse/linux-headers/linux create mode 100644 subprojects/libvduse/meson.build create
Re: [Qemu-devel] [PULL 00/18] Block layer patches for 2.10.0-rc2
On 8 August 2017 at 14:58, Kevin Wolfwrote: > The following changes since commit b4174c4b08a719e7df7e4f35c29f44b7c2517237: > > Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging > (2017-08-08 10:01:49 +0100) > > are available in the git repository at: > > git://repo.or.cz/qemu/kevin.git tags/for-upstream > > for you to fetch changes up to 113fe792fd4931dd0538f03859278b8719ee4fa2: > > block/nfs: fix mutex assertion in nfs_file_close() (2017-08-08 15:19:16 > +0200) > > > Block layer patches for 2.10.0-rc2 > > Applied, thanks. -- PMM
[Qemu-devel] [PULL 00/18] Block layer patches for 2.10.0-rc2
The following changes since commit b4174c4b08a719e7df7e4f35c29f44b7c2517237: Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2017-08-08 10:01:49 +0100) are available in the git repository at: git://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to 113fe792fd4931dd0538f03859278b8719ee4fa2: block/nfs: fix mutex assertion in nfs_file_close() (2017-08-08 15:19:16 +0200) Block layer patches for 2.10.0-rc2 Alberto Garcia (1): quorum: Set sectors-count to 0 when reporting a flush error Cleber Rosa (1): qemu-iotests/109: Fix lock race condition Denis V. Lunev (3): block: respect error code from bdrv_getlength in handle_aiocb_write_zeroes parallels: respect error code of bdrv_getlength() in allocate_clusters() parallels: drop check that bdrv_truncate() is working Fam Zheng (1): vmdk: Fix error handling/reporting of vmdk_check Jeff Cody (5): block/vhdx: check error return of bdrv_getlength() block/vhdx: check for offset overflow to bdrv_truncate() block/vhdx: check error return of bdrv_flush() block/vhdx: check error return of bdrv_truncate() block/nfs: fix mutex assertion in nfs_file_close() Kevin Wolf (6): block/null: Remove 'filename' option block: Fix order in bdrv_replace_child() block: Allow reopen rw without BDRV_O_ALLOW_RDWR block: Set BDRV_O_ALLOW_RDWR during rw reopen qemu-io: Allow reopen read-write qemu-iotests: Test reopen between read-only and read-write Paolo Bonzini (1): block: drop bdrv_set_key from BlockDriver include/block/block.h | 3 +- include/block/block_int.h | 1 - block.c| 20 +- block/file-posix.c | 8 +- block/nfs.c| 11 ++-- block/null.c | 31 + block/parallels.c | 12 block/quorum.c | 3 +- block/vhdx-log.c | 52 +++--- block/vhdx.c | 12 +++- block/vmdk.c | 26 +++-- qemu-io-cmds.c | 19 +++-- tests/qemu-iotests/109 | 3 +- tests/qemu-iotests/109.out | 56 + tests/qemu-iotests/136 | 2 +- tests/qemu-iotests/187 | 69 ++ tests/qemu-iotests/187.out | 18 tests/qemu-iotests/group | 1 + 18 files changed, 299 insertions(+), 48 deletions(-) create mode 100755 tests/qemu-iotests/187 create mode 100644 tests/qemu-iotests/187.out
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 09/29/2016 02:17 PM, Paolo Bonzini wrote: On 29/09/2016 19:02, John Snow wrote: On 09/29/2016 06:25 AM, Kevin Wolf wrote: John, can you have a look at the IDE code and check whether we can get rid of the deep recursion? It seems that the test issues a large request that is then split into many small requests. But it should be possible to do this iteratively rather than recursively. http://wiki.qemu.org/Features/IDE "Rewrite ide_atapi_cmd_reply_end to be fully non-recursive; and ideally less confusing." Guess I have to float this one to the top. Would it be enough to hide the call to s->bus->dma->ops->start_transfer behind a bottom half? Paolo Probably the simplest way, even if not the prettiest.
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 09/29/2016 01:18 PM, Peter Maydell wrote: On 29 September 2016 at 03:25, Kevin Wolfwrote: The series contains a patch that reduces the coroutine stack size, so I guess it's not quite infinite, but pretty deep recursion anyway. I will drop that final patch that reduces the stack size and hope that the rest will pass your testing (I tried some more to reproduce it, but I still didn't manage to). Ah, I see. I suspect the clang build (since it has the sanitizer enabled) is a worst-case for stack usage. Is it possible for a guest to issue a sufficiently large request that it blows the stack, or is that capped somehow? thanks -- PMM If the qtest can blow the stack, so can a guest. In practice it does not happen that guests send requests so large, but mum's the word on a naughty guest. --js
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 29/09/2016 19:02, John Snow wrote: > > > On 09/29/2016 06:25 AM, Kevin Wolf wrote: >> John, can you have a look at the IDE code and check whether we can get >> rid of the deep recursion? It seems that the test issues a large request >> that is then split into many small requests. But it should be possible >> to do this iteratively rather than recursively. > > http://wiki.qemu.org/Features/IDE > > "Rewrite ide_atapi_cmd_reply_end to be fully non-recursive; and ideally > less confusing." > > Guess I have to float this one to the top. Would it be enough to hide the call to s->bus->dma->ops->start_transfer behind a bottom half? Paolo
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 29 September 2016 at 03:25, Kevin Wolfwrote: > The series contains a patch that reduces the coroutine stack size, so I > guess it's not quite infinite, but pretty deep recursion anyway. I will > drop that final patch that reduces the stack size and hope that the rest > will pass your testing (I tried some more to reproduce it, but I still > didn't manage to). Ah, I see. I suspect the clang build (since it has the sanitizer enabled) is a worst-case for stack usage. Is it possible for a guest to issue a sufficiently large request that it blows the stack, or is that capped somehow? thanks -- PMM
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 09/29/2016 06:25 AM, Kevin Wolf wrote: John, can you have a look at the IDE code and check whether we can get rid of the deep recursion? It seems that the test issues a large request that is then split into many small requests. But it should be possible to do this iteratively rather than recursively. http://wiki.qemu.org/Features/IDE "Rewrite ide_atapi_cmd_reply_end to be fully non-recursive; and ideally less confusing." Guess I have to float this one to the top. --js
Re: [Qemu-devel] [PULL 00/18] Block layer patches
Am 28.09.2016 um 21:03 hat Peter Maydell geschrieben: > On 28 September 2016 at 02:37, Kevin Wolfwrote: > > Am 27.09.2016 um 21:42 hat Peter Maydell geschrieben: > >> On 27 September 2016 at 06:53, Kevin Wolf wrote: > >> > The following changes since commit > >> > 7cfdc02dae0d2ff58c897496cfdbbafc0eda0f3f: > >> > > >> > Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into > >> > staging (2016-09-26 19:47:00 +0100) > >> > > >> > are available in the git repository at: > >> > > >> > > >> > git://repo.or.cz/qemu/kevin.git tags/for-upstream > >> > > >> > for you to fetch changes up to 3b856cebe5e93547852c156ca2119d075e62aed7: > >> > > >> > coroutine: reduce stack size to 60kB (2016-09-27 14:05:21 +0200) > >> > > >> > > >> > Block layer patches > >> > > >> > > >> > >> I see 'make check' failures on x86-64 host, clang Linux: > >> > >> /i386/ahci/migrate/ncq/simple: OK > >> /i386/ahci/migrate/ncq/halted: OK > >> /i386/ahci/cdrom/dma/single: OK > >> /i386/ahci/cdrom/dma/multi: OK > >> /i386/ahci/cdrom/pio/single: > >> Broken pipe > >> FAIL > >> GTester: last random seed: R02Sa8f729848b07c3b3e5ee67368f9d0350 > >> (pid=10590) > >> /i386/ahci/cdrom/pio/multi: > >> Broken pipe > >> FAIL > >> GTester: last random seed: R02Se85704e04bbd382223983c878723b811 > >> (pid=10598) > >> FAIL: tests/ahci-test > >> TEST: tests/hd-geo-test... (pid=10601) > >> /i386/hd-geo/ide/none: OK > > > > I asked on IRC, but as you don't seem to be around at the moment, I'll > > keep things on the list instead. > > I got a gdb backtrace: > > Thread 1 "qemu-system-i38" received signal SIGSEGV, Segmentation fault. > 0x561dea15 in address_space_translate (as=0x5a46bfc0, > addr=1106048, xlat=0x77e0d050, plen=0x77e0d058, > is_write=false) at /home/petmay01/linaro/qemu-for-merges/exec.c:423 > 423 { > > > Backtrace suggests we've run out of stack due to some infinite > recursion: Thanks, Peter, this is useful. The series contains a patch that reduces the coroutine stack size, so I guess it's not quite infinite, but pretty deep recursion anyway. I will drop that final patch that reduces the stack size and hope that the rest will pass your testing (I tried some more to reproduce it, but I still didn't manage to). John, can you have a look at the IDE code and check whether we can get rid of the deep recursion? It seems that the test issues a large request that is then split into many small requests. But it should be possible to do this iteratively rather than recursively. Kevin > #0 0x561dea15 in address_space_translate (as=0x5a46bfc0, > addr=1106048, xlat=0x77e0d050, plen=0x77e0d058, > is_write=false) at /home/petmay01/linaro/qemu-for-merges/exec.c:423 > #1 0x561edeab in address_space_map (as=, > addr=1106048, plen=, is_write=false) > at /home/petmay01/linaro/qemu-for-merges/exec.c:2909 > #2 0x56840b9b in ahci_populate_sglist (as=0x5a46bfc0, > addr=1106048, dir=DMA_DIRECTION_TO_DEVICE, len=) > at /home/petmay01/linaro/qemu-for-merges/include/sysemu/dma.h:135 > #3 0x56840b9b in ahci_populate_sglist (ad=, > sglist=, cmd=, limit=, > offset=1592) at > /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:863 > #4 0x56844de4 in ahci_dma_prepare_buf (dma=0x5a475b48, > limit=) > at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1366 > #5 0x5684354c in ahci_start_transfer (dma=) at > /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1295 > #6 0x568250cb in ide_atapi_cmd_reply_end (s=) > at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 > #7 0x56843662 in ahci_start_transfer (dma=) at > /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 > #8 0x568250cb in ide_atapi_cmd_reply_end (s=) > at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 > #9 0x56843662 in ahci_start_transfer (dma=) at > /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 > #10 0x568250cb in ide_atapi_cmd_reply_end (s=) > at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 > #11 0x56843662 in ahci_start_transfer (dma=) at > /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 > #12 0x568250cb in ide_atapi_cmd_reply_end (s=) > at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 > #13 0x56843662 in ahci_start_transfer (dma=) at > /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 > #14 0x568250cb in ide_atapi_cmd_reply_end (s=) > at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 > #15 0x56843662 in ahci_start_transfer (dma=) at
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 28 September 2016 at 02:37, Kevin Wolfwrote: > Am 27.09.2016 um 21:42 hat Peter Maydell geschrieben: >> On 27 September 2016 at 06:53, Kevin Wolf wrote: >> > The following changes since commit >> > 7cfdc02dae0d2ff58c897496cfdbbafc0eda0f3f: >> > >> > Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into >> > staging (2016-09-26 19:47:00 +0100) >> > >> > are available in the git repository at: >> > >> > >> > git://repo.or.cz/qemu/kevin.git tags/for-upstream >> > >> > for you to fetch changes up to 3b856cebe5e93547852c156ca2119d075e62aed7: >> > >> > coroutine: reduce stack size to 60kB (2016-09-27 14:05:21 +0200) >> > >> > >> > Block layer patches >> > >> > >> >> I see 'make check' failures on x86-64 host, clang Linux: >> >> /i386/ahci/migrate/ncq/simple: OK >> /i386/ahci/migrate/ncq/halted: OK >> /i386/ahci/cdrom/dma/single: OK >> /i386/ahci/cdrom/dma/multi: OK >> /i386/ahci/cdrom/pio/single: >> Broken pipe >> FAIL >> GTester: last random seed: R02Sa8f729848b07c3b3e5ee67368f9d0350 >> (pid=10590) >> /i386/ahci/cdrom/pio/multi: >> Broken pipe >> FAIL >> GTester: last random seed: R02Se85704e04bbd382223983c878723b811 >> (pid=10598) >> FAIL: tests/ahci-test >> TEST: tests/hd-geo-test... (pid=10601) >> /i386/hd-geo/ide/none: OK > > I asked on IRC, but as you don't seem to be around at the moment, I'll > keep things on the list instead. I got a gdb backtrace: Thread 1 "qemu-system-i38" received signal SIGSEGV, Segmentation fault. 0x561dea15 in address_space_translate (as=0x5a46bfc0, addr=1106048, xlat=0x77e0d050, plen=0x77e0d058, is_write=false) at /home/petmay01/linaro/qemu-for-merges/exec.c:423 423 { Backtrace suggests we've run out of stack due to some infinite recursion: #0 0x561dea15 in address_space_translate (as=0x5a46bfc0, addr=1106048, xlat=0x77e0d050, plen=0x77e0d058, is_write=false) at /home/petmay01/linaro/qemu-for-merges/exec.c:423 #1 0x561edeab in address_space_map (as=, addr=1106048, plen=, is_write=false) at /home/petmay01/linaro/qemu-for-merges/exec.c:2909 #2 0x56840b9b in ahci_populate_sglist (as=0x5a46bfc0, addr=1106048, dir=DMA_DIRECTION_TO_DEVICE, len=) at /home/petmay01/linaro/qemu-for-merges/include/sysemu/dma.h:135 #3 0x56840b9b in ahci_populate_sglist (ad=, sglist=, cmd=, limit=, offset=1592) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:863 #4 0x56844de4 in ahci_dma_prepare_buf (dma=0x5a475b48, limit=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1366 #5 0x5684354c in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1295 #6 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #7 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #8 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #9 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #10 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #11 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #12 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #13 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #14 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #15 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #16 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #17 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #18 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #19 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #20 0x568250cb in ide_atapi_cmd_reply_end (s=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/atapi.c:324 #21 0x56843662 in ahci_start_transfer (dma=) at /home/petmay01/linaro/qemu-for-merges/hw/ide/ahci.c:1318 #22 0x568250cb in ide_atapi_cmd_reply_end (s=) at
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 28 September 2016 at 02:37, Kevin Wolfwrote: > [what clang config?] This is with Ubuntu Xenial's clang. configure args are '--cc=clang' '--cxx=clang++' '--enable-gtk' '--extra-cflags=-fsanitize=undefined -Werror' and the build is just 'make all -j8 && make check' in the build directory. thanks -- PMM
Re: [Qemu-devel] [PULL 00/18] Block layer patches
Am 27.09.2016 um 21:42 hat Peter Maydell geschrieben: > On 27 September 2016 at 06:53, Kevin Wolfwrote: > > The following changes since commit 7cfdc02dae0d2ff58c897496cfdbbafc0eda0f3f: > > > > Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging > > (2016-09-26 19:47:00 +0100) > > > > are available in the git repository at: > > > > > > git://repo.or.cz/qemu/kevin.git tags/for-upstream > > > > for you to fetch changes up to 3b856cebe5e93547852c156ca2119d075e62aed7: > > > > coroutine: reduce stack size to 60kB (2016-09-27 14:05:21 +0200) > > > > > > Block layer patches > > > > > > I see 'make check' failures on x86-64 host, clang Linux: > > /i386/ahci/migrate/ncq/simple: OK > /i386/ahci/migrate/ncq/halted: OK > /i386/ahci/cdrom/dma/single: OK > /i386/ahci/cdrom/dma/multi: OK > /i386/ahci/cdrom/pio/single: > Broken pipe > FAIL > GTester: last random seed: R02Sa8f729848b07c3b3e5ee67368f9d0350 > (pid=10590) > /i386/ahci/cdrom/pio/multi: > Broken pipe > FAIL > GTester: last random seed: R02Se85704e04bbd382223983c878723b811 > (pid=10598) > FAIL: tests/ahci-test > TEST: tests/hd-geo-test... (pid=10601) > /i386/hd-geo/ide/none: OK I asked on IRC, but as you don't seem to be around at the moment, I'll keep things on the list instead. Can you tell me the exact 'configure' and 'make check' command lines you're using? I always run the tests with clang/Linux on x86_64 before sending a pull request, and I repeated it now, but the tests pass for me. This is what I'm doing (yesterday I built all targets, today only i386-softmmu because that seems to be what fails for you): $ clang --version clang version 3.4.2 (tags/RELEASE_34/dot2-final) Target: x86_64-redhat-linux-gnu Thread model: posix $ ../qemu/configure --cc=clang --host-cc=clang --cxx=clang++ --target-list=i386-softmmu $ make -j4 $ make check Kevin
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 27 September 2016 at 06:53, Kevin Wolfwrote: > The following changes since commit 7cfdc02dae0d2ff58c897496cfdbbafc0eda0f3f: > > Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging > (2016-09-26 19:47:00 +0100) > > are available in the git repository at: > > > git://repo.or.cz/qemu/kevin.git tags/for-upstream > > for you to fetch changes up to 3b856cebe5e93547852c156ca2119d075e62aed7: > > coroutine: reduce stack size to 60kB (2016-09-27 14:05:21 +0200) > > > Block layer patches > > I see 'make check' failures on x86-64 host, clang Linux: /i386/ahci/migrate/ncq/simple: OK /i386/ahci/migrate/ncq/halted: OK /i386/ahci/cdrom/dma/single: OK /i386/ahci/cdrom/dma/multi: OK /i386/ahci/cdrom/pio/single: Broken pipe FAIL GTester: last random seed: R02Sa8f729848b07c3b3e5ee67368f9d0350 (pid=10590) /i386/ahci/cdrom/pio/multi: Broken pipe FAIL GTester: last random seed: R02Se85704e04bbd382223983c878723b811 (pid=10598) FAIL: tests/ahci-test TEST: tests/hd-geo-test... (pid=10601) /i386/hd-geo/ide/none: OK thanks -- PMM
[Qemu-devel] [PULL 00/18] Block layer patches
The following changes since commit 7cfdc02dae0d2ff58c897496cfdbbafc0eda0f3f: Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2016-09-26 19:47:00 +0100) are available in the git repository at: git://repo.or.cz/qemu/kevin.git tags/for-upstream for you to fetch changes up to 3b856cebe5e93547852c156ca2119d075e62aed7: coroutine: reduce stack size to 60kB (2016-09-27 14:05:21 +0200) Block layer patches John Snow (3): block: reintroduce bdrv_flush_all qemu: use bdrv_flush_all for vm_stop et al block-backend: remove blk_flush_all Kevin Wolf (8): block: Fix error path in qmp_blockdev_change_medium() block: Drop aio/cache consistency check from qmp_blockdev_add() block/qapi: Use separate options type for curl driver block/qapi: Move 'aio' option to file driver block: Parse 'detect-zeroes' in bdrv_open_common() block: Use 'detect-zeroes' option for 'blockdev-change-medium' block: Move 'discard' option to bdrv_open_common() block: Remove qemu_root_bds_opts Peter Lieven (7): oslib-posix: add helpers for stack alloc and free coroutine-sigaltstack: rename coroutine struct appropriately coroutine: add a macro for the coroutine stack size coroutine-ucontext: use helper for allocating stack memory coroutine-sigaltstack: use helper for allocating stack memory oslib-posix: add a configure switch to debug stack usage coroutine: reduce stack size to 60kB block.c| 50 +- block/block-backend.c | 31 ++-- block/io.c | 25 + block/raw-posix.c | 44 +--- block/raw-win32.c | 56 +++-- blockdev.c | 112 +++-- configure | 19 +++ cpus.c | 4 +- hw/i386/xen/xen_platform.c | 2 - hw/ide/piix.c | 4 ++ include/block/block.h | 2 + include/qemu/coroutine_int.h | 2 + include/sysemu/block-backend.h | 3 +- include/sysemu/os-posix.h | 27 ++ qapi/block-core.json | 31 tests/qemu-iotests/087 | 4 +- tests/qemu-iotests/087.out | 2 +- util/coroutine-sigaltstack.c | 25 - util/coroutine-ucontext.c | 11 ++-- util/coroutine-win32.c | 2 +- util/oslib-posix.c | 77 21 files changed, 342 insertions(+), 191 deletions(-)
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 15.09.2016 18:10, Peter Maydell wrote: > On 14 September 2016 at 17:40, Max Reitzwrote: >> The following changes since commit 507e4ddc3abf67391bcbc9624fd60b969c159b78: >> >> Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-fetch' into >> staging (2016-09-13 17:55:35 +0100) >> >> are available in the git repository at: >> >> git://github.com/XanClic/qemu.git tags/pull-block-2016-09-14 >> >> for you to fetch changes up to 262a8020cf666ae7108040683038cc46be4c48d2: >> >> iotest 055: refactor and speed up (2016-09-14 17:56:42 +0200) >> >> >> Block patches for 2.8 >> >> > > Compile failure on 32 bit: > CCutil/qemu-option.o > /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_serialization_size': > /home/petmay01/qemu/util/hbitmap.c:439:5: error: passing argument 5 of > 'serialization_chunk' from incompatible pointer type [-Werror] > serialization_chunk(hb, start, count, , _count); > ^ > /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' > but argument is of type 'uint64_t *' > static void serialization_chunk(const HBitmap *hb, > ^ > /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_serialize_part': > /home/petmay01/qemu/util/hbitmap.c:453:5: error: passing argument 5 of > 'serialization_chunk' from incompatible pointer type [-Werror] > serialization_chunk(hb, start, count, , _count); > ^ > /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' > but argument is of type 'uint64_t *' > static void serialization_chunk(const HBitmap *hb, > ^ > /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_deserialize_part': > /home/petmay01/qemu/util/hbitmap.c:476:5: error: passing argument 5 of > 'serialization_chunk' from incompatible pointer type [-Werror] > serialization_chunk(hb, start, count, , _count); > ^ > /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' > but argument is of type 'uint64_t *' > static void serialization_chunk(const HBitmap *hb, > ^ > /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_deserialize_zeroes': > /home/petmay01/qemu/util/hbitmap.c:505:5: error: passing argument 5 of > 'serialization_chunk' from incompatible pointer type [-Werror] > serialization_chunk(hb, start, count, , _count); > ^ > /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' > but argument is of type 'uint64_t *' > static void serialization_chunk(const HBitmap *hb, > ^ > cc1: all warnings being treated as errors > > > Test failure on big-endian ppc64be: > > /hbitmap/serialize/granularity: OK > /hbitmap/serialize/basic:** > ERROR:/home/pm215/qemu/tests/test-hbitmap.c:774:hbitmap_test_serialize_range: > assertion failed: (is_set) > FAIL > GTester: last random seed: R02Se8652df9788b7a1ec926da1717ff2d26 > (pid=34146) > /hbitmap/serialize/part: ** > ERROR:/home/pm215/qemu/tests/test-hbitmap.c:843:test_hbitmap_serialize_part: > assertion failed (should_set == test_bit(j, (unsigned long *)buf)): (1 > == 0) > FAIL > GTester: last random seed: R02S3e07d1d6dcda6b90721e062eca26e6b9 > (pid=34147) > /hbitmap/serialize/zeroes: OK > FAIL: tests/test-hbitmap Thank you! That looks interesting. I'll drop the series in question from my queue and send a v2. Max signature.asc Description: OpenPGP digital signature
Re: [Qemu-devel] [PULL 00/18] Block layer patches
On 14 September 2016 at 17:40, Max Reitzwrote: > The following changes since commit 507e4ddc3abf67391bcbc9624fd60b969c159b78: > > Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-fetch' into > staging (2016-09-13 17:55:35 +0100) > > are available in the git repository at: > > git://github.com/XanClic/qemu.git tags/pull-block-2016-09-14 > > for you to fetch changes up to 262a8020cf666ae7108040683038cc46be4c48d2: > > iotest 055: refactor and speed up (2016-09-14 17:56:42 +0200) > > > Block patches for 2.8 > > Compile failure on 32 bit: CCutil/qemu-option.o /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_serialization_size': /home/petmay01/qemu/util/hbitmap.c:439:5: error: passing argument 5 of 'serialization_chunk' from incompatible pointer type [-Werror] serialization_chunk(hb, start, count, , _count); ^ /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' but argument is of type 'uint64_t *' static void serialization_chunk(const HBitmap *hb, ^ /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_serialize_part': /home/petmay01/qemu/util/hbitmap.c:453:5: error: passing argument 5 of 'serialization_chunk' from incompatible pointer type [-Werror] serialization_chunk(hb, start, count, , _count); ^ /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' but argument is of type 'uint64_t *' static void serialization_chunk(const HBitmap *hb, ^ /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_deserialize_part': /home/petmay01/qemu/util/hbitmap.c:476:5: error: passing argument 5 of 'serialization_chunk' from incompatible pointer type [-Werror] serialization_chunk(hb, start, count, , _count); ^ /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' but argument is of type 'uint64_t *' static void serialization_chunk(const HBitmap *hb, ^ /home/petmay01/qemu/util/hbitmap.c: In function 'hbitmap_deserialize_zeroes': /home/petmay01/qemu/util/hbitmap.c:505:5: error: passing argument 5 of 'serialization_chunk' from incompatible pointer type [-Werror] serialization_chunk(hb, start, count, , _count); ^ /home/petmay01/qemu/util/hbitmap.c:410:13: note: expected 'size_t *' but argument is of type 'uint64_t *' static void serialization_chunk(const HBitmap *hb, ^ cc1: all warnings being treated as errors Test failure on big-endian ppc64be: /hbitmap/serialize/granularity: OK /hbitmap/serialize/basic:** ERROR:/home/pm215/qemu/tests/test-hbitmap.c:774:hbitmap_test_serialize_range: assertion failed: (is_set) FAIL GTester: last random seed: R02Se8652df9788b7a1ec926da1717ff2d26 (pid=34146) /hbitmap/serialize/part: ** ERROR:/home/pm215/qemu/tests/test-hbitmap.c:843:test_hbitmap_serialize_part: assertion failed (should_set == test_bit(j, (unsigned long *)buf)): (1 == 0) FAIL GTester: last random seed: R02S3e07d1d6dcda6b90721e062eca26e6b9 (pid=34147) /hbitmap/serialize/zeroes: OK FAIL: tests/test-hbitmap thanks -- PMM
[Qemu-devel] [PULL 00/18] Block layer patches
The following changes since commit 507e4ddc3abf67391bcbc9624fd60b969c159b78: Merge remote-tracking branch 'remotes/mjt/tags/trivial-patches-fetch' into staging (2016-09-13 17:55:35 +0100) are available in the git repository at: git://github.com/XanClic/qemu.git tags/pull-block-2016-09-14 for you to fetch changes up to 262a8020cf666ae7108040683038cc46be4c48d2: iotest 055: refactor and speed up (2016-09-14 17:56:42 +0200) Block patches for 2.8 Alberto Garcia (1): commit: get the overlay node before manipulating the backing chain Colin Lord (2): blockdev: prepare iSCSI block driver for dynamic loading blockdev: Modularize nfs block driver Fam Zheng (8): block: Hide HBitmap in block dirty bitmap interface HBitmap: Introduce "meta" bitmap to track bit changes tests: Add test code for meta bitmap block: Support meta dirty bitmap block: Add two dirty bitmap getters block: Assert that bdrv_release_dirty_bitmap succeeded tests: Add test code for hbitmap serialization block: More operations for meta dirty bitmap Marc Mari (2): blockdev: Add dynamic generation of module_block.h blockdev: Add dynamic module loading for block drivers Reda Sallahi (2): qemu-img: add the 'dd' subcommand qemu-img: add skip option to dd Vladimir Sementsov-Ogievskiy (3): hbitmap: serialization block: BdrvDirtyBitmap serialization interface iotest 055: refactor and speed up Makefile | 10 +- block.c | 62 ++- block/Makefile.objs | 4 +- block/backup.c | 14 +- block/commit.c | 3 +- block/dirty-bitmap.c | 160 +- block/iscsi.c| 36 block/mirror.c | 24 +-- configure| 4 +- include/block/dirty-bitmap.h | 35 +++- include/qemu/hbitmap.h | 100 include/qemu/module.h| 3 + include/qemu/typedefs.h | 1 + qemu-img-cmds.hx | 6 + qemu-img.c | 343 ++- qemu-img.texi| 27 +++ scripts/modules/module_block.py | 108 tests/qemu-iotests/055 | 52 ++ tests/qemu-iotests/159 | 70 tests/qemu-iotests/159.out | 87 ++ tests/qemu-iotests/160 | 72 tests/qemu-iotests/160.out | 51 ++ tests/qemu-iotests/170 | 67 tests/qemu-iotests/170.out | 15 ++ tests/qemu-iotests/common.filter | 9 + tests/qemu-iotests/common.rc | 5 +- tests/qemu-iotests/group | 3 + tests/test-hbitmap.c | 255 + util/hbitmap.c | 206 +-- util/module.c| 38 ++--- vl.c | 40 + 31 files changed, 1752 insertions(+), 158 deletions(-) create mode 100644 scripts/modules/module_block.py create mode 100755 tests/qemu-iotests/159 create mode 100644 tests/qemu-iotests/159.out create mode 100755 tests/qemu-iotests/160 create mode 100644 tests/qemu-iotests/160.out create mode 100755 tests/qemu-iotests/170 create mode 100644 tests/qemu-iotests/170.out -- 2.5.5