mbox

[PULL,00/69] Block patches

Message ID 1425061147-1411-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 Feb. 27, 2015, 6:17 p.m. UTC
The following changes since commit 041ccc922ee474693a2869d4e3b59e920c739bc0:

  Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging (2015-02-26 12:16:46 +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 278bcfad436b7d9fb3b2e444e90a5669b332c4c5:

  tests: Check QVIRTIO_F_ANY_LAYOUT flag in virtio-blk test (2015-02-27 11:37:04 +0000)

----------------------------------------------------------------
Pull request

This pull request includes commits that Kevin Wolf <kwolf@redhat.com> merged
last week.  He didn't send a pull request because mine from the week before was
pending.

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

Denis V. Lunev (1):
  block/raw-posix: fix compilation warning on OSX

Ekaterina Tumanova (5):
  block: add bdrv functions for geometry and blocksize
  raw-posix: Factor block size detection out of raw_probe_alignment()
  block: Add driver methods to probe blocksizes and geometry
  block-backend: Add wrappers for blocksizes and geometry probing
  BlockConf: Call backend functions to detect geometry and blocksizes

Fam Zheng (1):
  virtio-blk: Check return value of blk_aio_ioctl

John Snow (18):
  blkdebug: fix "once" rule
  ahci: Migrate IDEStatus
  ahci: Recompute cur_cmd on migrate post load
  qtest/ide: Test flush / retry for ISA and PCI
  libqos/ahci: Zero-fill AHCI headers
  qtest/ahci: Add a macro bootup routine
  libqos/ahci: add ahci command helpers
  qtest/ahci: Add DMA test variants
  qtest/ahci: Add PIO and LBA48 tests
  qtest/ahci: add fragmented dma test
  qtest/ahci: add qcow2 support to ahci-test
  qtest/ahci: test different disk sectors
  qtest/ahci: Add simple flush test
  qtest/ahci: Allow override of default CLI options
  libqtest: add qmp_eventwait
  libqtest: add qmp_async
  libqos: add blkdebug_prepare_script
  qtest/ahci: add flush retry test

Kevin Wolf (5):
  coroutine: Fix use after free with qemu_coroutine_yield()
  coroutine: Clean up qemu_coroutine_enter()
  vpc: Fix size in fixed image creation
  vpc: Implement bdrv_co_get_block_status()
  qcow2: Remove unused struct QCowCreateState

Liu Yuan (1):
  sheepdog: fix confused return values

Marc MarĂ­ (7):
  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
  libqos: Solve bug in interrupt checking when using MSIX in
    virtio-pci.c
  tests: Check QVIRTIO_F_ANY_LAYOUT flag in virtio-blk test

Max Reitz (15):
  qcow2: Add two new fields to BDRVQcowState
  qcow2: Add refcount_bits to format-specific info
  qcow2: Do not return new value after refcount update
  qcow2: Only return status from qcow2_get_refcount
  qcow2: Use unsigned addend for update_refcount()
  qcow2: Use 64 bits for refcount values
  qcow2: Helper for refcount array reallocation
  qcow2: Helper function for refcount modification
  qcow2: More helpers for refcount modification
  qcow2: Open images with refcount order != 4
  qcow2: refcount_order parameter for qcow2_create2
  qcow2: Use symbolic macros in qcow2_amend_options
  iotests: Prepare for refcount_bits option
  qcow2: Allow creation with refcount order != 4
  iotests: Add test for different refcount widths

Paolo Bonzini (14):
  ide: start extracting ide_restart_dma out of bmdma_restart_dma
  ide: prepare to move restart to common code
  ide: introduce ide_register_restart_cb
  ide: do not use BMDMA in restart callback
  ide: pass IDEBus to the restart_cb
  ide: move restart callback to common code
  ide: remove restart_cb callback
  ide: replace set_unit callback with more IDEBus state
  ide: place initial state of the current request to IDEBus
  ide: migrate initial request state via IDEBus
  ide: commonize io_buffer_index initialization
  ide: make more functions static
  ide: support PIO restart for the ISA controller
  ahci: add support for restarting non-queued commands

Stefan Hajnoczi (1):
  test-coroutine: Regression test for yield bug

Teruaki Ishizaki (1):
  sheepdog: selectable object size support

 block.c                          |  34 +++
 block/blkdebug.c                 |   6 +-
 block/block-backend.c            |  10 +
 block/qcow2-cluster.c            |  11 +-
 block/qcow2-refcount.c           | 545 +++++++++++++++++++++++++++------------
 block/qcow2.c                    | 111 +++++---
 block/qcow2.h                    |  32 ++-
 block/raw-posix.c                | 156 +++++++++--
 block/raw_bsd.c                  |  12 +
 block/sheepdog.c                 | 166 ++++++++++--
 block/vpc.c                      |  60 ++++-
 hw/block/block.c                 |  24 ++
 hw/block/hd-geometry.c           |  10 +-
 hw/block/nvme.c                  |   1 +
 hw/block/virtio-blk.c            |  11 +-
 hw/core/qdev-properties.c        |   3 +-
 hw/ide/ahci.c                    |  43 +--
 hw/ide/atapi.c                   |   3 +-
 hw/ide/cmd646.c                  |   3 +-
 hw/ide/core.c                    | 118 ++++++++-
 hw/ide/internal.h                |  16 +-
 hw/ide/isa.c                     |   3 +-
 hw/ide/macio.c                   |   6 -
 hw/ide/pci.c                     | 109 ++------
 hw/ide/pci.h                     |  12 +-
 hw/ide/piix.c                    |   3 +-
 hw/ide/qdev.c                    |   1 +
 hw/ide/via.c                     |   3 +-
 hw/scsi/scsi-disk.c              |   2 +
 hw/usb/dev-storage.c             |   1 +
 include/block/block.h            |  13 +
 include/block/block_int.h        |  17 ++
 include/block/coroutine_int.h    |   1 +
 include/hw/block/block.h         |   5 +-
 include/hw/qdev-properties.h     |   4 +-
 include/sysemu/block-backend.h   |   2 +
 qapi/block-core.json             |   5 +-
 qemu-coroutine.c                 |  38 ++-
 tests/Makefile                   |   5 +-
 tests/ahci-test.c                | 423 +++++++++++++++++++++++++++---
 tests/ide-test.c                 |  54 ++--
 tests/libqos/ahci.c              |  54 +++-
 tests/libqos/ahci.h              |   9 +-
 tests/libqos/libqos-pc.c         |   5 +
 tests/libqos/libqos-pc.h         |   1 +
 tests/libqos/libqos.c            |  59 +++++
 tests/libqos/libqos.h            |   3 +
 tests/libqos/malloc-generic.c    |  39 +++
 tests/libqos/malloc-generic.h    |  21 ++
 tests/libqos/virtio-mmio.c       | 198 ++++++++++++++
 tests/libqos/virtio-mmio.h       |  46 ++++
 tests/libqos/virtio-pci.c        |  66 +++--
 tests/libqos/virtio-pci.h        |  24 +-
 tests/libqos/virtio.c            |   8 +-
 tests/libqos/virtio.h            |  16 +-
 tests/libqtest.c                 |  46 +++-
 tests/libqtest.h                 |  47 ++++
 tests/qemu-iotests/007           |   3 +
 tests/qemu-iotests/015           |   2 +
 tests/qemu-iotests/026           |   7 +
 tests/qemu-iotests/026.out       |  24 +-
 tests/qemu-iotests/029           |   2 +
 tests/qemu-iotests/049.out       | 108 ++++----
 tests/qemu-iotests/051           |   3 +
 tests/qemu-iotests/058           |   2 +
 tests/qemu-iotests/060.out       |   1 +
 tests/qemu-iotests/065           |  23 +-
 tests/qemu-iotests/067           |   2 +
 tests/qemu-iotests/067.out       |   5 +
 tests/qemu-iotests/079           |  10 +-
 tests/qemu-iotests/079.out       |  38 +--
 tests/qemu-iotests/080           |   2 +
 tests/qemu-iotests/082.out       |  48 +++-
 tests/qemu-iotests/085.out       |  38 +--
 tests/qemu-iotests/089           |   2 +
 tests/qemu-iotests/089.out       |   2 +
 tests/qemu-iotests/108           |   2 +
 tests/qemu-iotests/112           | 187 ++++++++++++++
 tests/qemu-iotests/112.out       |  84 ++++++
 tests/qemu-iotests/common.filter |   3 +-
 tests/qemu-iotests/group         |   1 +
 tests/test-coroutine.c           |  26 ++
 tests/virtio-blk-test.c          | 361 +++++++++++++++++---------
 83 files changed, 2845 insertions(+), 865 deletions(-)
 create mode 100644 tests/libqos/malloc-generic.c
 create mode 100644 tests/libqos/malloc-generic.h
 create mode 100644 tests/libqos/virtio-mmio.c
 create mode 100644 tests/libqos/virtio-mmio.h
 create mode 100755 tests/qemu-iotests/112
 create mode 100644 tests/qemu-iotests/112.out

Comments

Stefan Hajnoczi Feb. 27, 2015, 6:57 p.m. UTC | #1
On Fri, Feb 27, 2015 at 6:17 PM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> Ekaterina Tumanova (5):
>   block: add bdrv functions for geometry and blocksize
>   raw-posix: Factor block size detection out of raw_probe_alignment()
>   block: Add driver methods to probe blocksizes and geometry
>   block-backend: Add wrappers for blocksizes and geometry probing
>   BlockConf: Call backend functions to detect geometry and blocksizes

Max Reitz found an issue with this patch.

Peter: Please squash the following trivial fix into "BlockConf: Call
backend functions to detect geometry and blocksizes":
https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg05512.html

I want to avoid spamming the list with another 60 patches.

Stefan
Peter Maydell March 3, 2015, 2:52 p.m. UTC | #2
On 28 February 2015 at 03:57, Stefan Hajnoczi <stefanha@gmail.com> wrote:
> On Fri, Feb 27, 2015 at 6:17 PM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>> Ekaterina Tumanova (5):
>>   block: add bdrv functions for geometry and blocksize
>>   raw-posix: Factor block size detection out of raw_probe_alignment()
>>   block: Add driver methods to probe blocksizes and geometry
>>   block-backend: Add wrappers for blocksizes and geometry probing
>>   BlockConf: Call backend functions to detect geometry and blocksizes
>
> Max Reitz found an issue with this patch.
>
> Peter: Please squash the following trivial fix into "BlockConf: Call
> backend functions to detect geometry and blocksizes":
> https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg05512.html

I can't squash fixes into pull requests -- I can only
apply them, or not apply them. You need to respin.

> I want to avoid spamming the list with another 60 patches.

If it's a trivial change since last time around you can just
send the cover letter to the list with a note in it that there
have only been small changes.

-- PMM
Christian Borntraeger March 3, 2015, 5:29 p.m. UTC | #3
Am 03.03.2015 um 15:52 schrieb Peter Maydell:
> On 28 February 2015 at 03:57, Stefan Hajnoczi <stefanha@gmail.com> wrote:
>> On Fri, Feb 27, 2015 at 6:17 PM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>>> Ekaterina Tumanova (5):
>>>   block: add bdrv functions for geometry and blocksize
>>>   raw-posix: Factor block size detection out of raw_probe_alignment()
>>>   block: Add driver methods to probe blocksizes and geometry
>>>   block-backend: Add wrappers for blocksizes and geometry probing
>>>   BlockConf: Call backend functions to detect geometry and blocksizes
>>
>> Max Reitz found an issue with this patch.
>>
>> Peter: Please squash the following trivial fix into "BlockConf: Call
>> backend functions to detect geometry and blocksizes":
>> https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg05512.html
> 
> I can't squash fixes into pull requests -- I can only
> apply them, or not apply them. You need to respin.
> 
>> I want to avoid spamming the list with another 60 patches.
> 
> If it's a trivial change since last time around you can just
> send the cover letter to the list with a note in it that there
> have only been small changes.
> 
> -- PMM
> 
I think you could just apply this pull request and add the fixup as separate
patch.
After all it fixes a case were the command line is wrong, so should not
on the critical path - I guess.

Christian
Max Reitz March 3, 2015, 5:33 p.m. UTC | #4
On 2015-03-03 at 12:29, Christian Borntraeger wrote:
> Am 03.03.2015 um 15:52 schrieb Peter Maydell:
>> On 28 February 2015 at 03:57, Stefan Hajnoczi <stefanha@gmail.com> wrote:
>>> On Fri, Feb 27, 2015 at 6:17 PM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>>>> Ekaterina Tumanova (5):
>>>>    block: add bdrv functions for geometry and blocksize
>>>>    raw-posix: Factor block size detection out of raw_probe_alignment()
>>>>    block: Add driver methods to probe blocksizes and geometry
>>>>    block-backend: Add wrappers for blocksizes and geometry probing
>>>>    BlockConf: Call backend functions to detect geometry and blocksizes
>>> Max Reitz found an issue with this patch.
>>>
>>> Peter: Please squash the following trivial fix into "BlockConf: Call
>>> backend functions to detect geometry and blocksizes":
>>> https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg05512.html
>> I can't squash fixes into pull requests -- I can only
>> apply them, or not apply them. You need to respin.
>>
>>> I want to avoid spamming the list with another 60 patches.
>> If it's a trivial change since last time around you can just
>> send the cover letter to the list with a note in it that there
>> have only been small changes.
>>
>> -- PMM
>>
> I think you could just apply this pull request and add the fixup as separate
> patch.
> After all it fixes a case were the command line is wrong, so should not
> on the critical path - I guess.

I agree. It's not nice to have a known break, but we're a bit behind on 
the pull requests already... Also, the segfault is always caused by 
dereferencing a null pointer, so there is no security issue.

Max
Christian Borntraeger March 4, 2015, 8:28 a.m. UTC | #5
Am 03.03.2015 um 18:33 schrieb Max Reitz:
> On 2015-03-03 at 12:29, Christian Borntraeger wrote:
>> Am 03.03.2015 um 15:52 schrieb Peter Maydell:
>>> On 28 February 2015 at 03:57, Stefan Hajnoczi <stefanha@gmail.com> wrote:
>>>> On Fri, Feb 27, 2015 at 6:17 PM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>>>>> Ekaterina Tumanova (5):
>>>>>    block: add bdrv functions for geometry and blocksize
>>>>>    raw-posix: Factor block size detection out of raw_probe_alignment()
>>>>>    block: Add driver methods to probe blocksizes and geometry
>>>>>    block-backend: Add wrappers for blocksizes and geometry probing
>>>>>    BlockConf: Call backend functions to detect geometry and blocksizes
>>>> Max Reitz found an issue with this patch.
>>>>
>>>> Peter: Please squash the following trivial fix into "BlockConf: Call
>>>> backend functions to detect geometry and blocksizes":
>>>> https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg05512.html
>>> I can't squash fixes into pull requests -- I can only
>>> apply them, or not apply them. You need to respin.
>>>
>>>> I want to avoid spamming the list with another 60 patches.
>>> If it's a trivial change since last time around you can just
>>> send the cover letter to the list with a note in it that there
>>> have only been small changes.
>>>
>>> -- PMM
>>>
>> I think you could just apply this pull request and add the fixup as separate
>> patch.
>> After all it fixes a case were the command line is wrong, so should not
>> on the critical path - I guess.
> 
> I agree. It's not nice to have a known break, but we're a bit behind on the pull requests already... Also, the segfault is always caused by dereferencing a null pointer, so there is no security issue.

Peter,

unless Stefan/Kevin object:


can you pull the original pull request?

Kate,

can you resend patch " scsi-hd: fix property unset case" with an additional comment
as Markus suggested directly to Peter Maydell, cc Stefan/Kevin/Max/Markus/qemu-devel?


Christian
Kevin Wolf March 4, 2015, 12:03 p.m. UTC | #6
Am 04.03.2015 um 09:28 hat Christian Borntraeger geschrieben:
> Am 03.03.2015 um 18:33 schrieb Max Reitz:
> > On 2015-03-03 at 12:29, Christian Borntraeger wrote:
> >> Am 03.03.2015 um 15:52 schrieb Peter Maydell:
> >>> On 28 February 2015 at 03:57, Stefan Hajnoczi <stefanha@gmail.com> wrote:
> >>>> On Fri, Feb 27, 2015 at 6:17 PM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> >>>>> Ekaterina Tumanova (5):
> >>>>>    block: add bdrv functions for geometry and blocksize
> >>>>>    raw-posix: Factor block size detection out of raw_probe_alignment()
> >>>>>    block: Add driver methods to probe blocksizes and geometry
> >>>>>    block-backend: Add wrappers for blocksizes and geometry probing
> >>>>>    BlockConf: Call backend functions to detect geometry and blocksizes
> >>>> Max Reitz found an issue with this patch.
> >>>>
> >>>> Peter: Please squash the following trivial fix into "BlockConf: Call
> >>>> backend functions to detect geometry and blocksizes":
> >>>> https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg05512.html
> >>> I can't squash fixes into pull requests -- I can only
> >>> apply them, or not apply them. You need to respin.
> >>>
> >>>> I want to avoid spamming the list with another 60 patches.
> >>> If it's a trivial change since last time around you can just
> >>> send the cover letter to the list with a note in it that there
> >>> have only been small changes.
> >>>
> >>> -- PMM
> >>>
> >> I think you could just apply this pull request and add the fixup as separate
> >> patch.
> >> After all it fixes a case were the command line is wrong, so should not
> >> on the critical path - I guess.
> > 
> > I agree. It's not nice to have a known break, but we're a bit behind on the pull requests already... Also, the segfault is always caused by dereferencing a null pointer, so there is no security issue.
> 
> Peter,
> 
> unless Stefan/Kevin object:
> 
> 
> can you pull the original pull request?

That makes sense to me. We'll put the fix into the next pull request
then.

Kevin
Stefan Hajnoczi March 4, 2015, 4:32 p.m. UTC | #7
On Tue, Mar 03, 2015 at 11:52:42PM +0900, Peter Maydell wrote:
> On 28 February 2015 at 03:57, Stefan Hajnoczi <stefanha@gmail.com> wrote:
> > On Fri, Feb 27, 2015 at 6:17 PM, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> >> Ekaterina Tumanova (5):
> >>   block: add bdrv functions for geometry and blocksize
> >>   raw-posix: Factor block size detection out of raw_probe_alignment()
> >>   block: Add driver methods to probe blocksizes and geometry
> >>   block-backend: Add wrappers for blocksizes and geometry probing
> >>   BlockConf: Call backend functions to detect geometry and blocksizes
> >
> > Max Reitz found an issue with this patch.
> >
> > Peter: Please squash the following trivial fix into "BlockConf: Call
> > backend functions to detect geometry and blocksizes":
> > https://lists.nongnu.org/archive/html/qemu-devel/2015-02/msg05512.html
> 
> I can't squash fixes into pull requests -- I can only
> apply them, or not apply them. You need to respin.

I think consensus has been reached:

Please go ahead an apply this pull request as-is.

Kevin has already merged the fix for this week's pull request so there's
no need to respin.

Thanks,
Stefan
Peter Maydell March 8, 2015, 8:49 a.m. UTC | #8
On 28 February 2015 at 03:17, Stefan Hajnoczi <stefanha@redhat.com> wrote:
> The following changes since commit 041ccc922ee474693a2869d4e3b59e920c739bc0:
>
>   Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging (2015-02-26 12:16:46 +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 278bcfad436b7d9fb3b2e444e90a5669b332c4c5:
>
>   tests: Check QVIRTIO_F_ANY_LAYOUT flag in virtio-blk test (2015-02-27 11:37:04 +0000)
>
> ----------------------------------------------------------------
> Pull request
>
> This pull request includes commits that Kevin Wolf <kwolf@redhat.com> merged
> last week.  He didn't send a pull request because mine from the week before was
> pending.
>
> ----------------------------------------------------------------

Fails to build, sorry:

Linux ARM, gcc and also Win32 (probably a "fails to build on 32 bit hosts" bug):
/root/qemu/block/qcow2-refcount.c: In function ?rebuild_refcount_structure?:
/root/qemu/block/qcow2-refcount.c:2079:28: error: cast to pointer from
integer of different size [-Werror=int-to-pointer-cast]

OSX, clang:

  LINK  qemu-io
Undefined symbols for architecture x86_64:
  "_g_try_malloc0_n", referenced from:
      _update_refcount in qcow2-refcount.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [qemu-nbd] Error 1

g_try_malloc0_n() only came in with glib 2.24.

-- PMM