mbox

[PULL,00/69] Block patches for softfreeze

Message ID 20191028121501.15279-1-mreitz@redhat.com
State New
Headers show

Pull-request

https://github.com/XanClic/qemu.git tags/pull-block-2019-10-28

Message

Max Reitz Oct. 28, 2019, 12:13 p.m. UTC
The following changes since commit 187f35512106501fe9a11057f4d8705431e0026d:

  Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-next-251019-3' into staging (2019-10-26 10:13:48 +0100)

are available in the Git repository at:

  https://github.com/XanClic/qemu.git tags/pull-block-2019-10-28

for you to fetch changes up to ba9c45139e2938b8d20ce407db83a31bc9e5066c:

  qemu-iotests: restrict 264 to qcow2 only (2019-10-28 13:09:43 +0100)

----------------------------------------------------------------
Block patches for softfreeze:
- iotest patches
- Improve performance of the mirror block job in write-blocking mode
- Limit memory usage for the backup block job
- Add discard and write-zeroes support to the NVMe host block driver
- Fix a bug in the mirror job
- Prevent the qcow2 driver from creating technically non-compliant qcow2
  v3 images (where there is not enough extra data for snapshot table
  entries)
- Allow callers of bdrv_truncate() (etc.) to determine whether the file
  must be resized to the exact given size or whether it is OK for block
  devices not to shrink

----------------------------------------------------------------
Max Reitz (55):
  iotests: Prefer null-co over null-aio
  iotests: Allow skipping test cases
  iotests: Use case_skip() in skip_if_unsupported()
  iotests: Let skip_if_unsupported accept a function
  iotests: Test driver whitelisting in 093
  iotests: Test driver whitelisting in 136
  iotests: Cache supported_formats()
  iotests: Introduce $SOCK_DIR
  iotests.py: Store socket files in $SOCK_DIR
  iotests.py: Add @base_dir to FilePaths etc.
  iotests: Filter $SOCK_DIR
  iotests: Let common.nbd create socket in $SOCK_DIR
  iotests/083: Create socket in $SOCK_DIR
  iotests/140: Create socket in $SOCK_DIR
  iotests/143: Create socket in $SOCK_DIR
  iotests/147: Create socket in $SOCK_DIR
  iotests/181: Create socket in $SOCK_DIR
  iotests/182: Create socket in $SOCK_DIR
  iotests/183: Create socket in $SOCK_DIR
  iotests/192: Create socket in $SOCK_DIR
  iotests/194: Create sockets in $SOCK_DIR
  iotests/201: Create socket in $SOCK_DIR
  iotests/205: Create socket in $SOCK_DIR
  iotests/208: Create socket in $SOCK_DIR
  iotests/209: Create socket in $SOCK_DIR
  iotests/222: Create socket in $SOCK_DIR
  iotests/223: Create socket in $SOCK_DIR
  iotests/240: Create socket in $SOCK_DIR
  iotests/267: Create socket in $SOCK_DIR
  iotests: Drop TEST_DIR filter from _filter_nbd
  mirror: Do not dereference invalid pointers
  include: Move endof() up from hw/virtio/virtio.h
  qcow2: Use endof()
  qcow2: Add Error ** to qcow2_read_snapshots()
  qcow2: Keep unknown extra snapshot data
  qcow2: Make qcow2_write_snapshots() public
  qcow2: Put qcow2_upgrade() into its own function
  qcow2: Write v3-compliant snapshot list on upgrade
  qcow2: Separate qcow2_check_read_snapshot_table()
  qcow2: Add qcow2_check_fix_snapshot_table()
  qcow2: Fix broken snapshot table entries
  qcow2: Keep track of the snapshot table length
  qcow2: Fix overly long snapshot tables
  qcow2: Repair snapshot table with too many entries
  qcow2: Fix v3 snapshot table entry compliancy
  iotests: Add peek_file* functions
  iotests: Test qcow2's snapshot table handling
  block: Handle filter truncation like native impl.
  block/cor: Drop cor_co_truncate()
  block: Do not truncate file node when formatting
  block: Add @exact parameter to bdrv_co_truncate()
  block: Evaluate @exact in protocol drivers
  block: Let format drivers pass @exact
  block: Pass truncate exact=true where reasonable
  Revert "qemu-img: Check post-truncation size"

Maxim Levitsky (2):
  block/nvme: add support for write zeros
  block/nvme: add support for discard

Vladimir Sementsov-Ogievskiy (12):
  hbitmap: handle set/reset with zero length
  block/mirror: simplify do_sync_target_write
  block/block-backend: add blk_co_pwritev_part
  block/mirror: support unaligned write in active mirror
  Revert "mirror: Only mirror granularity-aligned chunks"
  block/block-copy: allocate buffer in block_copy_with_bounce_buffer
  block/block-copy: limit copy_range_size to 16 MiB
  block/block-copy: refactor copying
  util: introduce SharedResource
  block/block-copy: add memory limit
  block/block-copy: increase buffered copy request
  qemu-iotests: restrict 264 to qcow2 only

 util/Makefile.objs                |   1 +
 block/qcow2.h                     |  17 +-
 include/block/block-copy.h        |   5 +-
 include/block/block.h             |   6 +-
 include/block/block_int.h         |  17 +-
 include/block/nvme.h              |  19 +-
 include/hw/virtio/virtio.h        |   7 -
 include/qemu/co-shared-resource.h |  71 ++++
 include/qemu/compiler.h           |   7 +
 include/sysemu/block-backend.h    |   8 +-
 block/block-backend.c             |  23 +-
 block/block-copy.c                | 182 ++++++-----
 block/commit.c                    |   5 +-
 block/copy-on-read.c              |   8 -
 block/crypto.c                    |   8 +-
 block/file-posix.c                |  11 +-
 block/file-win32.c                |   3 +-
 block/gluster.c                   |   1 +
 block/io.c                        |  29 +-
 block/iscsi.c                     |  10 +-
 block/mirror.c                    | 198 +++++------
 block/nfs.c                       |   2 +-
 block/nvme.c                      | 155 ++++++++-
 block/parallels.c                 |  18 +-
 block/qcow.c                      |   9 +-
 block/qcow2-refcount.c            |   2 +-
 block/qcow2-snapshot.c            | 323 +++++++++++++++++-
 block/qcow2.c                     | 200 +++++++++---
 block/qed.c                       |   8 +-
 block/raw-format.c                |   5 +-
 block/rbd.c                       |   1 +
 block/sheepdog.c                  |   5 +-
 block/ssh.c                       |   3 +-
 block/vdi.c                       |   2 +-
 block/vhdx-log.c                  |   4 +-
 block/vhdx.c                      |   7 +-
 block/vmdk.c                      |   8 +-
 block/vpc.c                       |   2 +-
 blockdev.c                        |   2 +-
 hw/block/virtio-blk.c             |   4 +-
 hw/net/virtio-net.c               |  10 +-
 qemu-img.c                        |  46 +--
 qemu-io-cmds.c                    |   7 +-
 tests/test-block-iothread.c       |   8 +-
 util/hbitmap.c                    |   8 +
 util/qemu-co-shared-resource.c    |  76 +++++
 block/trace-events                |   9 +-
 python/qemu/machine.py            |  15 +-
 python/qemu/qtest.py              |   9 +-
 tests/qemu-iotests/083            |   6 +-
 tests/qemu-iotests/083.out        |  34 +-
 tests/qemu-iotests/093            |  19 +-
 tests/qemu-iotests/136            |  14 +-
 tests/qemu-iotests/140            |   8 +-
 tests/qemu-iotests/140.out        |   2 +-
 tests/qemu-iotests/143            |   6 +-
 tests/qemu-iotests/143.out        |   2 +-
 tests/qemu-iotests/147            |   2 +-
 tests/qemu-iotests/181            |   2 +-
 tests/qemu-iotests/182            |   4 +-
 tests/qemu-iotests/183            |   2 +-
 tests/qemu-iotests/192            |   4 +-
 tests/qemu-iotests/192.out        |   2 +-
 tests/qemu-iotests/194            |   4 +-
 tests/qemu-iotests/201            |   2 +-
 tests/qemu-iotests/205            |   2 +-
 tests/qemu-iotests/208            |   2 +-
 tests/qemu-iotests/209            |   3 +-
 tests/qemu-iotests/222            |   2 +-
 tests/qemu-iotests/223            |  14 +-
 tests/qemu-iotests/240            |   4 +-
 tests/qemu-iotests/241            |   2 -
 tests/qemu-iotests/245            |   2 +-
 tests/qemu-iotests/261            | 523 ++++++++++++++++++++++++++++++
 tests/qemu-iotests/261.out        | 346 ++++++++++++++++++++
 tests/qemu-iotests/264            |   2 +
 tests/qemu-iotests/267            |   4 +-
 tests/qemu-iotests/267.out        |   2 +-
 tests/qemu-iotests/check          |  15 +-
 tests/qemu-iotests/common.filter  |   7 +-
 tests/qemu-iotests/common.nbd     |   2 +-
 tests/qemu-iotests/common.rc      |  20 ++
 tests/qemu-iotests/group          |   1 +
 tests/qemu-iotests/iotests.py     |  68 ++--
 84 files changed, 2232 insertions(+), 486 deletions(-)
 create mode 100644 include/qemu/co-shared-resource.h
 create mode 100644 util/qemu-co-shared-resource.c
 create mode 100755 tests/qemu-iotests/261
 create mode 100644 tests/qemu-iotests/261.out

Comments

Peter Maydell Oct. 28, 2019, 9:13 p.m. UTC | #1
On Mon, 28 Oct 2019 at 12:15, Max Reitz <mreitz@redhat.com> wrote:
>
> The following changes since commit 187f35512106501fe9a11057f4d8705431e0026d:
>
>   Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-next-251019-3' into staging (2019-10-26 10:13:48 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/XanClic/qemu.git tags/pull-block-2019-10-28
>
> for you to fetch changes up to ba9c45139e2938b8d20ce407db83a31bc9e5066c:
>
>   qemu-iotests: restrict 264 to qcow2 only (2019-10-28 13:09:43 +0100)
>
> ----------------------------------------------------------------
> Block patches for softfreeze:
> - iotest patches
> - Improve performance of the mirror block job in write-blocking mode
> - Limit memory usage for the backup block job
> - Add discard and write-zeroes support to the NVMe host block driver
> - Fix a bug in the mirror job
> - Prevent the qcow2 driver from creating technically non-compliant qcow2
>   v3 images (where there is not enough extra data for snapshot table
>   entries)
> - Allow callers of bdrv_truncate() (etc.) to determine whether the file
>   must be resized to the exact given size or whether it is OK for block
>   devices not to shrink

Applied, thanks.

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

-- PMM