Re: [PULL 00/43] Block layer patches

2020-06-25 Thread Kevin Wolf
Am 25.06.2020 um 10:39 hat Klaus Jensen geschrieben:
> On Jun 18 15:30, Peter Maydell wrote:
> > On Wed, 17 Jun 2020 at 15:49, Kevin Wolf  wrote:
> > >
> > > The following changes since commit 
> > > 5c24bce3056ff209a1ecc50ff4b7e65b85ad8e74:
> > >
> > >   Merge remote-tracking branch 
> > > 'remotes/stsquad/tags/pull-testing-and-plugin-160620-2' into staging 
> > > (2020-06-16 14:57:15 +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 3419ec713f04c323b030e0763459435335b25476:
> > >
> > >   iotests: Add copyright line in qcow2.py (2020-06-17 16:21:21 +0200)
> > >
> > > 
> > > Block layer patches:
> > >
> > > - enhance handling of size-related BlockConf properties
> > > - nvme: small fixes, refactoring and cleanups
> > > - virtio-blk: On restart, process queued requests in the proper context
> > > - icount: make dma reads deterministic
> > > - iotests: Some fixes for rarely run cases
> > > - .gitignore: Ignore storage-daemon files
> > > - Minor code cleanups
> > >
> > > 
> > 
> > 
> > Applied, thanks.
> > 
> > Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
> > for any user-visible changes.
> > 
> 
> Kevin, can you add soemthing like the following to the changelog under
> "Block devices"?
> 
> Emulated NVMe device (hw/block/nvme):
> 
>   * Add the max_ioqpairs device parameter. The parameter specifies the
> maximum number of supported I/O queue pairs and should be used
> instead of the num_queues parameter. num_queues is not formally
> deprecated, but the device will issue a warning if used. If neither
> num_queues or max_ioqpairs are specified, device behavior is
> unchanged from the previous default.
> 
>   * Add the msix_qsize parameter. The parameter specifies the maximum
> number of msix interrupt vectors supported by the device. If not
> specified, device behavior is unchanged from the previous default.

Sure, I've added this.

If you want to have a wiki account so that you can edit the page
yourself in the future, let me (or anyone else with a wiki account) know
your preferred user name and we can create an account for you. Access is
not supposed to be a privileged thing, we just require manual
registration through an existing account to avoid spam.

Kevin




Re: [PULL 00/43] Block layer patches

2020-06-25 Thread Klaus Jensen
On Jun 18 15:30, Peter Maydell wrote:
> On Wed, 17 Jun 2020 at 15:49, Kevin Wolf  wrote:
> >
> > The following changes since commit 5c24bce3056ff209a1ecc50ff4b7e65b85ad8e74:
> >
> >   Merge remote-tracking branch 
> > 'remotes/stsquad/tags/pull-testing-and-plugin-160620-2' into staging 
> > (2020-06-16 14:57:15 +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 3419ec713f04c323b030e0763459435335b25476:
> >
> >   iotests: Add copyright line in qcow2.py (2020-06-17 16:21:21 +0200)
> >
> > 
> > Block layer patches:
> >
> > - enhance handling of size-related BlockConf properties
> > - nvme: small fixes, refactoring and cleanups
> > - virtio-blk: On restart, process queued requests in the proper context
> > - icount: make dma reads deterministic
> > - iotests: Some fixes for rarely run cases
> > - .gitignore: Ignore storage-daemon files
> > - Minor code cleanups
> >
> > 
> 
> 
> Applied, thanks.
> 
> Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
> for any user-visible changes.
> 

Kevin, can you add soemthing like the following to the changelog under
"Block devices"?

Emulated NVMe device (hw/block/nvme):

  * Add the max_ioqpairs device parameter. The parameter specifies the
maximum number of supported I/O queue pairs and should be used
instead of the num_queues parameter. num_queues is not formally
deprecated, but the device will issue a warning if used. If neither
num_queues or max_ioqpairs are specified, device behavior is
unchanged from the previous default.

  * Add the msix_qsize parameter. The parameter specifies the maximum
number of msix interrupt vectors supported by the device. If not
specified, device behavior is unchanged from the previous default.



Re: [PULL 00/43] Block layer patches

2020-06-18 Thread Peter Maydell
On Wed, 17 Jun 2020 at 15:49, Kevin Wolf  wrote:
>
> The following changes since commit 5c24bce3056ff209a1ecc50ff4b7e65b85ad8e74:
>
>   Merge remote-tracking branch 
> 'remotes/stsquad/tags/pull-testing-and-plugin-160620-2' into staging 
> (2020-06-16 14:57:15 +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 3419ec713f04c323b030e0763459435335b25476:
>
>   iotests: Add copyright line in qcow2.py (2020-06-17 16:21:21 +0200)
>
> 
> Block layer patches:
>
> - enhance handling of size-related BlockConf properties
> - nvme: small fixes, refactoring and cleanups
> - virtio-blk: On restart, process queued requests in the proper context
> - icount: make dma reads deterministic
> - iotests: Some fixes for rarely run cases
> - .gitignore: Ignore storage-daemon files
> - Minor code cleanups
>
> 


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
for any user-visible changes.

-- PMM



Re: [PULL 00/43] Block layer patches

2020-06-17 Thread no-reply
Patchew URL: https://patchew.org/QEMU/20200617144909.192176-1-kw...@redhat.com/



Hi,

This series failed the asan build test. Please find the testing commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
export ARCH=x86_64
make docker-image-fedora V=1 NETWORK=1
time make docker-test-debug@fedora TARGET_LIST=x86_64-softmmu J=14 NETWORK=1
=== TEST SCRIPT END ===

  LINKtests/qemu-iotests/socket_scm_helper
  GEN docs/interop/qemu-qmp-ref.html
  GEN docs/interop/qemu-qmp-ref.txt
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  GEN docs/interop/qemu-qmp-ref.7
  CC  qga/commands.o
  CC  qga/guest-agent-command-state.o
---
  CC  qemu-img.o
  AS  pc-bios/optionrom/pvh.o
  CC  pc-bios/optionrom/pvh_main.o
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  BUILD   pc-bios/optionrom/multiboot.img
  BUILD   pc-bios/optionrom/linuxboot.img
  BUILD   pc-bios/optionrom/kvmvapic.img
---
  BUILD   pc-bios/optionrom/pvh.raw
  SIGNpc-bios/optionrom/pvh.bin
  LINKfsdev/virtfs-proxy-helper
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKscsi/qemu-pr-helper
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  AR  libvhost-user.a
  LINKqemu-bridge-helper
  GEN docs/interop/qemu-ga-ref.txt
  GEN docs/interop/qemu-ga-ref.7
  GEN docs/interop/qemu-ga-ref.html
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKqemu-ga
  LINKqemu-keymap
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKivshmem-client
  LINKivshmem-server
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKqemu-nbd
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKqemu-storage-daemon
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
  LINKqemu-img
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common of `__interception::real_vfork' overridden by definition from 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors.cpp.o)
/usr/bin/ld: 
/usr/lib64/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.a(asan_interceptors_vfork.S.o):
 warning: common 

[PULL 00/43] Block layer patches

2020-06-17 Thread Kevin Wolf
The following changes since commit 5c24bce3056ff209a1ecc50ff4b7e65b85ad8e74:

  Merge remote-tracking branch 
'remotes/stsquad/tags/pull-testing-and-plugin-160620-2' into staging 
(2020-06-16 14:57:15 +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 3419ec713f04c323b030e0763459435335b25476:

  iotests: Add copyright line in qcow2.py (2020-06-17 16:21:21 +0200)


Block layer patches:

- enhance handling of size-related BlockConf properties
- nvme: small fixes, refactoring and cleanups
- virtio-blk: On restart, process queued requests in the proper context
- icount: make dma reads deterministic
- iotests: Some fixes for rarely run cases
- .gitignore: Ignore storage-daemon files
- Minor code cleanups


Eric Blake (3):
  block: Refactor subdirectory recursion during make
  qcow2: Tweak comments on qcow2_get_persistent_dirty_bitmap_size
  iotests: Add copyright line in qcow2.py

Klaus Jensen (21):
  hw/block/nvme: fix pci doorbell size calculation
  hw/block/nvme: rename trace events to pci_nvme
  hw/block/nvme: remove superfluous breaks
  hw/block/nvme: move device parameters to separate struct
  hw/block/nvme: use constants in identify
  hw/block/nvme: refactor nvme_addr_read
  hw/block/nvme: fix pin-based interrupt behavior
  hw/block/nvme: add max_ioqpairs device parameter
  hw/block/nvme: remove redundant cmbloc/cmbsz members
  hw/block/nvme: factor out property/constraint checks
  hw/block/nvme: factor out device state setup
  hw/block/nvme: factor out block backend setup
  hw/block/nvme: add namespace helpers
  hw/block/nvme: factor out namespace setup
  hw/block/nvme: factor out pci setup
  hw/block/nvme: factor out cmb setup
  hw/block/nvme: factor out pmr setup
  hw/block/nvme: do cmb/pmr init as part of pci init
  hw/block/nvme: factor out controller identify setup
  hw/block/nvme: add msix_qsize parameter
  hw/block/nvme: verify msix_init_exclusive_bar() return value

Max Reitz (5):
  iotests.py: Add skip_for_formats() decorator
  iotests/041: Skip test_small_target for qed
  iotests/292: data_file is unsupported
  iotests/229: data_file is unsupported
  iotests/{190,291}: compat=0.10 is unsupported

Pavel Dovgaluk (1):
  icount: make dma reads deterministic

Philippe Mathieu-Daudé (2):
  hw/ide: Make IDEDMAOps handlers take a const IDEDMA pointer
  hw/block/nvme: Verify msix_vector_use() returned value

Roman Bolshakov (1):
  .gitignore: Ignore storage-daemon files

Roman Kagan (8):
  virtio-blk: store opt_io_size with correct size
  block: consolidate blocksize properties consistency checks
  qdev-properties: blocksize: use same limits in code and description
  qdev-properties: add size32 property type
  qdev-properties: make blocksize accept size suffixes
  block: make BlockConf size props 32bit and accept size suffixes
  qdev-properties: add getter for size32 and blocksize
  block: lift blocksize property limit to 2 MiB

Sergio Lopez (2):
  virtio-blk: Refactor the code that processes queued requests
  virtio-blk: On restart, process queued requests in the proper context

 hw/block/nvme.h|  34 ++-
 include/block/nvme.h   |   8 +
 include/hw/block/block.h   |  14 +-
 include/hw/ide/internal.h  |  12 +-
 include/hw/qdev-properties.h   |   5 +-
 include/hw/virtio/virtio-blk.h |   1 +
 block/qcow2-bitmap.c   |   9 +-
 dma-helpers.c  |  22 ++
 hw/block/block.c   |  40 ++-
 hw/block/dataplane/virtio-blk.c|   8 +
 hw/block/fdc.c |   5 +-
 hw/block/nvme.c| 574 +
 hw/block/swim.c|   5 +-
 hw/block/virtio-blk.c  |  39 +--
 hw/block/xen-block.c   |   6 +-
 hw/core/qdev-properties.c  |  85 +-
 hw/ide/ahci.c  |  18 +-
 hw/ide/core.c  |   6 +-
 hw/ide/macio.c |   6 +-
 hw/ide/pci.c   |  12 +-
 hw/ide/qdev.c  |   5 +-
 hw/scsi/scsi-disk.c|  12 +-
 hw/usb/dev-storage.c   |   5 +-
 tests/qemu-iotests/iotests.py  |  16 ++
 tests/qemu-iotests/qcow2.py|   2 +
 tests/qemu-iotests/qcow2_format.py |   1 +
 .gitignore |  17 +-
 Makefile.objs  |   2 +-
 block/Makefile.objs|   1 +
 hw/block/trace-events  | 180 ++--
 tests/qemu-iotests/041 |   2 +
 tests/qemu-iotests/118 |   7 +-
 tests/qemu-iotests/172.out | 532 +-
 

Re: [Qemu-devel] [PULL 00/43] Block layer patches

2016-07-06 Thread Peter Maydell
On 5 July 2016 at 16:50, Kevin Wolf  wrote:
> The following changes since commit 60a0f1af07d685c88f4ffa09370da5bd7514823e:
>
>   Merge remote-tracking branch 'remotes/kraxel/tags/pull-ipxe-20160704-1' 
> into staging (2016-07-05 12:46:18 +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 b0aaca4d7ff6f03acb9b2c0bc2f0d89267cc5dce:
>
>   Merge remote-tracking branch 
> 'mreitz/tags/pull-block-for-kevin-2016-07-05-v2' into queue-block (2016-07-05 
> 16:55:31 +0200)
>
> 
>
> Block layer patches
>

Applied, thanks.

-- PMM



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

2016-07-05 Thread Kevin Wolf
The following changes since commit 60a0f1af07d685c88f4ffa09370da5bd7514823e:

  Merge remote-tracking branch 'remotes/kraxel/tags/pull-ipxe-20160704-1' into 
staging (2016-07-05 12:46:18 +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 b0aaca4d7ff6f03acb9b2c0bc2f0d89267cc5dce:

  Merge remote-tracking branch 'mreitz/tags/pull-block-for-kevin-2016-07-05-v2' 
into queue-block (2016-07-05 16:55:31 +0200)



Block layer patches


Denis V. Lunev (2):
  qemu-img: fix failed autotests
  block: fix return code for partial write for Linux AIO

Eric Blake (22):
  block: Tighter assertions on bdrv_aligned_pwritev()
  block: Document supported flags during bdrv_aligned_preadv()
  block: Fix harmless off-by-one in bdrv_aligned_preadv()
  nbd: Allow larger requests
  nbd: Advertise realistic limits to block layer
  iscsi: Advertise realistic limits to block layer
  scsi: Advertise limits by blocksize, not 512
  block: Give nonzero result to blk_get_max_transfer_length()
  blkdebug: Set request_alignment during .bdrv_refresh_limits()
  iscsi: Set request_alignment during .bdrv_refresh_limits()
  qcow2: Set request_alignment during .bdrv_refresh_limits()
  raw-win32: Set request_alignment during .bdrv_refresh_limits()
  block: Set request_alignment during .bdrv_refresh_limits()
  block: Set default request_alignment during bdrv_refresh_limits()
  block: Switch transfer length bounds to byte-based
  block: Wording tweaks to write zeroes limits
  block: Switch discard length bounds to byte-based
  block: Drop raw_refresh_limits()
  block: Split bdrv_merge_limits() from bdrv_refresh_limits()
  block: Move request_alignment into BlockLimit
  block: Fix error message style
  block: Use bool as appropriate for BDS members

Kevin Wolf (19):
  block/qdev: Fix NULL access when using BB twice
  vvfat: Use BdrvChild for s->qcow
  blkreplay: Convert to byte-based I/O
  vhdx: Some more BlockBackend use in vhdx_create()
  block: Convert bdrv_co_readv() to BdrvChild
  block: Convert bdrv_co_writev() to BdrvChild
  block: Convert bdrv_aio_readv() to BdrvChild
  block: Convert bdrv_aio_writev() to BdrvChild
  block: Convert bdrv_co_do_readv/writev to BdrvChild
  block: Move bdrv_commit() to block/commit.c
  block: Use BlockBackend for I/O in bdrv_commit()
  block: Convert bdrv_read() to BdrvChild
  block: Convert bdrv_write() to BdrvChild
  block: Convert bdrv_pread(v) to BdrvChild
  block: Convert bdrv_pwrite(v/_sync) to BdrvChild
  block: Convert bdrv_pwrite_zeroes() to BdrvChild
  block: Convert bdrv_prwv_co() to BdrvChild
  block: Convert bdrv_co_preadv/pwritev to BdrvChild
  Merge remote-tracking branch 
'mreitz/tags/pull-block-for-kevin-2016-07-05-v2' into queue-block

Peter Maydell (1):
  block/qcow2: Don't use cpu_to_*w()

 block.c  | 142 +++
 block/Makefile.objs  |   3 +-
 block/blkdebug.c |  23 +++-
 block/blkreplay.c|  18 +--
 block/blkverify.c|   8 +-
 block/block-backend.c|  18 ++-
 block/bochs.c|  17 ++-
 block/cloop.c|  17 ++-
 block/commit.c   | 121 
 block/crypto.c   |  10 +-
 block/dmg.c  |  30 +++--
 block/io.c   | 238 +--
 block/iscsi.c|  45 
 block/linux-aio.c|   2 +-
 block/nbd-client.c   |   4 -
 block/nbd.c  |   4 +-
 block/parallels.c|  16 +--
 block/qcow.c |  78 ++---
 block/qcow2-cache.c  |   4 +-
 block/qcow2-cluster.c|  20 ++--
 block/qcow2-refcount.c   |  47 
 block/qcow2-snapshot.c   |  26 ++---
 block/qcow2.c| 102 -
 block/qed-table.c|   4 +-
 block/qed.c  |  22 ++--
 block/quorum.c   |   8 +-
 block/raw-posix.c|  24 ++--
 block/raw-win32.c|  10 +-
 block/raw_bsd.c  |  14 +--
 block/vdi.c  |  14 +--
 block/vhdx-log.c |  12 +-
 block/vhdx.c |  85 +++---
 block/vmdk.c |  54 -
 block/vpc.c  |  24 ++--
 block/vvfat.c|  74 
 hw/block/virtio-blk.c|  10 +-
 hw/core/qdev-properties-system.c |   2 +-
 hw/scsi/scsi-generic.c   |  15 +--
 include/block/block.h|  46