[PULL 00/18] Block layer patches

2023-05-17 Thread Kevin Wolf
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

2022-10-03 Thread Stefan Hajnoczi
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

2022-09-30 Thread Kevin Wolf
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

2022-06-13 Thread Yongji Xie
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

2022-06-13 Thread Kevin Wolf
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

2022-06-09 Thread Richard Henderson

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

2022-06-09 Thread Kevin Wolf
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

2017-08-08 Thread Peter Maydell
On 8 August 2017 at 14:58, Kevin Wolf  wrote:
> 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

2017-08-08 Thread Kevin Wolf
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

2016-09-29 Thread John Snow



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

2016-09-29 Thread John Snow



On 09/29/2016 01:18 PM, Peter Maydell wrote:

On 29 September 2016 at 03:25, Kevin Wolf  wrote:

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

2016-09-29 Thread Paolo Bonzini


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

2016-09-29 Thread Peter Maydell
On 29 September 2016 at 03:25, Kevin Wolf  wrote:
> 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

2016-09-29 Thread John Snow



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

2016-09-29 Thread Kevin Wolf
Am 28.09.2016 um 21:03 hat Peter Maydell geschrieben:
> On 28 September 2016 at 02:37, Kevin Wolf  wrote:
> > 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

2016-09-28 Thread Peter Maydell
On 28 September 2016 at 02:37, Kevin Wolf  wrote:
> 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

2016-09-28 Thread Peter Maydell
On 28 September 2016 at 02:37, Kevin Wolf  wrote:
> [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

2016-09-28 Thread Kevin Wolf
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.

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

2016-09-27 Thread Peter Maydell
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


thanks
-- PMM



[Qemu-devel] [PULL 00/18] Block layer patches

2016-09-27 Thread Kevin Wolf
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

2016-09-17 Thread Max Reitz
On 15.09.2016 18:10, Peter Maydell wrote:
> On 14 September 2016 at 17:40, Max Reitz  wrote:
>> 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

2016-09-15 Thread Peter Maydell
On 14 September 2016 at 17:40, Max Reitz  wrote:
> 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

2016-09-14 Thread Max Reitz
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