mbox

[PULL,v2,00/44] Block patches

Message ID 1421080834-14724-1-git-send-email-stefanha@redhat.com
State New
Headers show

Pull-request

git://github.com/stefanha/qemu.git tags/block-pull-request

Message

Stefan Hajnoczi Jan. 12, 2015, 4:39 p.m. UTC
The following changes since commit 64ea8038ffbf703dcd438a108d2d5499c8ff95d9:

  Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20150109.0' into staging (2015-01-10 22:29:09 +0000)

are available in the git repository at:

  git://github.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to bed6f0227ef9da1505758a63bd2b6cd2a45874c6:

  NVMe: Set correct VS Value for 1.1 Compliant Controllers (2015-01-12 16:30:28 +0000)

----------------------------------------------------------------

----------------------------------------------------------------

Alex Friedman (1):
  nvme: Fix get/set number of queues feature

Anubhav Rakshit (1):
  NVMe: Set correct VS Value for 1.1 Compliant Controllers

Chrysostomos Nanakos (1):
  MAINTAINERS: Update email addresses for Chrysostomos Nanakos

Fam Zheng (13):
  qemu-iotests: Remove 091 from quick group
  qemu-iotests: Speed up make check-block
  qapi: Fix document for BlockStats.node-name
  qapi: Comment version info in TransactionAction
  qmp: Add command 'blockdev-backup'
  block: Add blockdev-backup to transaction
  qemu-iotests: Test blockdev-backup in 055
  .gitignore: Ignore generated "common.env"
  qemu-iotests: Replace "/bin/true" with "true"
  qemu-iotests: Add "_supported_os Linux" to 058
  qemu-iotests: Add supported os parameter for python tests
  block: Split BLOCK_OP_TYPE_COMMIT to BLOCK_OP_TYPE_COMMIT_{SOURCE,
    TARGET}
  MAINTAINERS: Add migration/block* to block subsystem

John Snow (1):
  ide: Implement VPD response for ATAPI

Marc MarĂ­ (6):
  libqos: Convert malloc-pc allocator to a generic allocator
  libqos: Change use of pointers to uint64_t in virtio
  tests: Prepare virtio-blk-test for multi-arch implementation
  libqos: Remove PCI assumptions in constants of virtio driver
  libqos: Add malloc generic
  libqos: Add virtio MMIO support

Max Reitz (7):
  checkpatch: Brace handling on multi-line condition
  block: Get full backing filename from string
  block: JSON filenames and relative backing files
  block: Relative backing file for image creation
  block/vmdk: Relative backing file for creation
  iotests: Add test for relative backing file names
  iotests: Filter out "I/O thread spun..." warning

Paolo Bonzini (9):
  block: mark AioContext as recursive
  block: do not allocate an iovec per read of a growable/zero_after_eof
    BDS
  block: replace g_new0 with g_new for bottom half allocation.
  coroutine-ucontext: use __thread
  qemu-thread: add per-thread atexit functions
  test-coroutine: avoid overflow on 32-bit systems
  QSLIST: add lock-free operations
  coroutine: rewrite pool to avoid mutex
  coroutine: drop qemu_coroutine_adjust_pool_size

Peter Lieven (2):
  coroutine: try harder not to delete coroutines
  block: limited request size in write zeroes unsupported path

Programmingkid (1):
  block/raw-posix.c: Fixes raw_getlength() on Mac OS X so that it
    reports the correct length of a real CD

Vladimir Sementsov-Ogievskiy (2):
  block: fix spoiling all dirty bitmaps by mirror and migration
  migration/block: fix pending() return value

 .gitignore                       |   1 +
 MAINTAINERS                      |   2 +-
 async.c                          |  11 +-
 block.c                          |  92 ++++++++++---
 block/backup.c                   |  28 ++++
 block/block-backend.c            |   4 -
 block/mirror.c                   |  11 +-
 block/qapi.c                     |   7 +-
 block/raw-posix.c                |  18 ++-
 block/vmdk.c                     |  13 +-
 blockdev.c                       | 139 ++++++++++++++++++-
 configure                        |   2 +-
 coroutine-ucontext.c             |  69 +++-------
 hw/block/dataplane/virtio-blk.c  |   3 +-
 hw/block/nvme.c                  |   8 +-
 hw/ide/atapi.c                   | 111 ++++++++++++++--
 hw/ide/internal.h                |   1 +
 include/block/block.h            |  15 ++-
 include/block/coroutine.h        |  10 --
 include/qemu/queue.h             |  15 ++-
 include/qemu/thread.h            |   4 +
 migration/block.c                |   9 +-
 qapi-schema.json                 |   8 ++
 qapi/block-core.json             |  56 +++++++-
 qemu-coroutine.c                 | 103 +++++++-------
 qmp-commands.hx                  |  42 ++++++
 scripts/checkpatch.pl            |  13 +-
 tests/Makefile                   |   6 +-
 tests/libqos/malloc-generic.c    |  50 +++++++
 tests/libqos/malloc-generic.h    |  21 +++
 tests/libqos/malloc-pc.c         | 280 +--------------------------------------
 tests/libqos/malloc-pc.h         |  11 +-
 tests/libqos/malloc.c            | 270 +++++++++++++++++++++++++++++++++++++
 tests/libqos/malloc.h            |  45 ++++---
 tests/libqos/virtio-mmio.c       | 190 ++++++++++++++++++++++++++
 tests/libqos/virtio-mmio.h       |  46 +++++++
 tests/libqos/virtio-pci.c        |  50 +++----
 tests/libqos/virtio-pci.h        |  24 ++--
 tests/libqos/virtio.c            |   8 +-
 tests/libqos/virtio.h            |  16 +--
 tests/qemu-iotests-quick.sh      |   2 +-
 tests/qemu-iotests/055           | 211 +++++++++++++++++++++++------
 tests/qemu-iotests/055.out       |   4 +-
 tests/qemu-iotests/058           |   1 +
 tests/qemu-iotests/067           |   3 +-
 tests/qemu-iotests/071           |   2 +-
 tests/qemu-iotests/071.out       |   8 +-
 tests/qemu-iotests/081           |   2 +-
 tests/qemu-iotests/087           |   3 +-
 tests/qemu-iotests/087.out       |   1 -
 tests/qemu-iotests/099           |   2 +-
 tests/qemu-iotests/110           |  94 +++++++++++++
 tests/qemu-iotests/110.out       |  19 +++
 tests/qemu-iotests/check         |   1 +
 tests/qemu-iotests/common.config |   2 +-
 tests/qemu-iotests/common.filter |   3 +-
 tests/qemu-iotests/common.rc     |   2 +-
 tests/qemu-iotests/group         |   3 +-
 tests/qemu-iotests/iotests.py    |   5 +-
 tests/test-coroutine.c           |   2 +-
 tests/virtio-blk-test.c          | 249 +++++++++++++++++++++++-----------
 util/qemu-thread-posix.c         |  37 ++++++
 util/qemu-thread-win32.c         |  48 +++++--
 63 files changed, 1844 insertions(+), 672 deletions(-)
 create mode 100644 tests/libqos/malloc-generic.c
 create mode 100644 tests/libqos/malloc-generic.h
 create mode 100644 tests/libqos/malloc.c
 create mode 100644 tests/libqos/virtio-mmio.c
 create mode 100644 tests/libqos/virtio-mmio.h
 create mode 100755 tests/qemu-iotests/110
 create mode 100644 tests/qemu-iotests/110.out

Comments

Peter Maydell Jan. 12, 2015, 9:43 p.m. UTC | #1
On 12 January 2015 at 16:39, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit 64ea8038ffbf703dcd438a108d2d5499c8ff95d9:
>
>   Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20150109.0' into staging (2015-01-10 22:29:09 +0000)
>
> are available in the git repository at:
>
>   git://github.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to bed6f0227ef9da1505758a63bd2b6cd2a45874c6:
>
>   NVMe: Set correct VS Value for 1.1 Compliant Controllers (2015-01-12 16:30:28 +0000)

I'm afraid this fails 'make check' on at least one config and
generates a lot of ugly warnings on several.

(1) Ugly warning (seems to happen everywhere):

TEST: tests/virtio-blk-test... (pid=28666)
  /arm/virtio/blk/mmio/basic:
WARNING: Image format was not specified for '/tmp/qtest.q0ywpl' and
probing guessed raw.
         Automatically detecting the format is dangerous for raw
images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
OK

(2) Apparent errors on OSX when trying to use "/dev/null" as an
image file. Weirdly these don't actually cause "make check" to fail,
which suggests something's not propagating an error correctly.

GTESTER check-qtest-i386
blkdebug: Suspended request 'A'
blkdebug: Resuming request 'A'
qemu-system-i386: -drive if=none,id=drive0,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
GTester: last random seed: R02S69c7dbf8bd84ac9e4664c53fe8466e9f
qemu-system-i386: -drive id=drv0,if=none,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
qemu-system-i386: -drive if=none,id=drive1,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
GTester: last random seed: R02S73ecc257e46d829e6c2f90fa172517d7
qemu-system-i386: -drive if=none,id=drive1,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
GTester: last random seed: R02S7ffc4245da39e4483652520e0197c455
qemu-system-i386: -drive if=none,id=drive1,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
GTester: last random seed: R02Sac4318d2d438e7bd7ebf017983a05d40
qemu-system-i386: -drive if=none,id=drive1,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
GTester: last random seed: R02Sa2a1465c96ff0d27bd2da4df395891d3
qemu-system-i386: -drive if=none,id=drive1,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
GTester: last random seed: R02S475866cccad1f4f28e909721e8ad9f04
qemu-system-i386: -drive if=none,id=drive1,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
GTester: last random seed: R02S3b78a21c4cb90bda679e660fa4e5773e
qemu-system-i386: -drive id=drv0,if=none,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
[vmxnet3][WR][vmxnet3_peer_has_vnet_hdr]: Peer has no virtio
extension. Task offloads will be emulated.
qemu-system-i386: -drive id=drive0,if=none,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe
qemu-system-i386: -drive id=drive0,if=none,file=/dev/null,format=raw:
could not open disk image /dev/null: Could not refresh total sector
count: Operation not supported by device
Broken pipe

(3) Actual failure, x86_64 host:

TEST: tests/virtio-blk-test... (pid=16564)
  /arm/virtio/blk/mmio/basic:
WARNING: Image format was not specified for '/tmp/qtest.4s4Naf' and
probing guessed raw.
         Automatically detecting the format is dangerous for raw
images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
**
ERROR:/home/petmay01/linaro/qemu-for-merges/tests/libqos/virtio.c:91:qvirtio_wait_queue_isr:
assertion failed: (g_get_monotonic_time() - start_time <= timeout_us)
FAIL
GTester: last random seed: R02S2b2c6e34351d711919b868b92fde3543
(pid=16570)
FAIL: tests/virtio-blk-test

This might be an intermittent failure; I think my x86-64 gcc
build passed the first time and failed on a rerun. The clang
build also failed this.

thanks
-- PMM
Stefan Hajnoczi Jan. 13, 2015, 1:19 p.m. UTC | #2
On Mon, Jan 12, 2015 at 09:43:28PM +0000, Peter Maydell wrote:
> On 12 January 2015 at 16:39, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> > The following changes since commit 64ea8038ffbf703dcd438a108d2d5499c8ff95d9:
> >
> >   Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20150109.0' into staging (2015-01-10 22:29:09 +0000)
> >
> > are available in the git repository at:
> >
> >   git://github.com/stefanha/qemu.git tags/block-pull-request
> >
> > for you to fetch changes up to bed6f0227ef9da1505758a63bd2b6cd2a45874c6:
> >
> >   NVMe: Set correct VS Value for 1.1 Compliant Controllers (2015-01-12 16:30:28 +0000)
> 
> I'm afraid this fails 'make check' on at least one config and
> generates a lot of ugly warnings on several.
> 
> (1) Ugly warning (seems to happen everywhere):
> 
> TEST: tests/virtio-blk-test... (pid=28666)
>   /arm/virtio/blk/mmio/basic:
> WARNING: Image format was not specified for '/tmp/qtest.q0ywpl' and
> probing guessed raw.
>          Automatically detecting the format is dangerous for raw
> images, write operations on block 0 will be restricted.
>          Specify the 'raw' format explicitly to remove the restrictions.
> OK

I am dropping the series because of the timeout you discovered below.

The fix for the warning is easy and I will let Marc know.

> (2) Apparent errors on OSX when trying to use "/dev/null" as an
> image file. Weirdly these don't actually cause "make check" to fail,
> which suggests something's not propagating an error correctly.
> 
> GTESTER check-qtest-i386
> blkdebug: Suspended request 'A'
> blkdebug: Resuming request 'A'
> qemu-system-i386: -drive if=none,id=drive0,file=/dev/null,format=raw:
> could not open disk image /dev/null: Could not refresh total sector
> count: Operation not supported by device

I have dropped "block/raw-posix.c: Fixes raw_getlength() on Mac OS X so
that it reports the correct length of a real CD".  It breaks non-CD-ROM
character devices like /dev/null.

> (3) Actual failure, x86_64 host:
> 
> TEST: tests/virtio-blk-test... (pid=16564)
>   /arm/virtio/blk/mmio/basic:
> WARNING: Image format was not specified for '/tmp/qtest.4s4Naf' and
> probing guessed raw.
>          Automatically detecting the format is dangerous for raw
> images, write operations on block 0 will be restricted.
>          Specify the 'raw' format explicitly to remove the restrictions.
> **
> ERROR:/home/petmay01/linaro/qemu-for-merges/tests/libqos/virtio.c:91:qvirtio_wait_queue_isr:
> assertion failed: (g_get_monotonic_time() - start_time <= timeout_us)
> FAIL
> GTester: last random seed: R02S2b2c6e34351d711919b868b92fde3543
> (pid=16570)
> FAIL: tests/virtio-blk-test
> 
> This might be an intermittent failure; I think my x86-64 gcc
> build passed the first time and failed on a rerun. The clang
> build also failed this.

This is strange.  The timeout is 30 seconds so something must be very
wrong.

I haven't been able to reproduce it yet but will ask Marc to
investigate.

Stefan