qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 3d06ce: util/iov: Make qiov_slice() public


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 3d06ce: util/iov: Make qiov_slice() public
Date: Mon, 05 Jun 2023 10:33:15 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 3d06cea8256d54a6b0238934c31012f7f17100f5
      
https://github.com/qemu/qemu/commit/3d06cea8256d54a6b0238934c31012f7f17100f5
  Author: Hanna Czenczek <hreitz@redhat.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M include/qemu/iov.h
    M util/iov.c

  Log Message:
  -----------
  util/iov: Make qiov_slice() public

We want to inline qemu_iovec_init_extended() in block/io.c for padding
requests, and having access to qiov_slice() is useful for this.  As a
public function, it is renamed to qemu_iovec_slice().

(We will need to count the number of I/O vector elements of a slice
there, and then later process this slice.  Without qiov_slice(), we
would need to call qemu_iovec_subvec_niov(), and all further
IOV-processing functions may need to skip prefixing elements to
accomodate for a qiov_offset.  Because qemu_iovec_subvec_niov()
internally calls qiov_slice(), we can just have the block/io.c code call
qiov_slice() itself, thus get the number of elements, and also create an
iovec array with the superfluous prefixing elements stripped, so the
following processing functions no longer need to skip them.)

Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Message-Id: <20230411173418.19549-2-hreitz@redhat.com>


  Commit: 18743311b829cafc1737a5f20bc3248d5f91ee2a
      
https://github.com/qemu/qemu/commit/18743311b829cafc1737a5f20bc3248d5f91ee2a
  Author: Hanna Czenczek <hreitz@redhat.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block: Collapse padded I/O vecs exceeding IOV_MAX

When processing vectored guest requests that are not aligned to the
storage request alignment, we pad them by adding head and/or tail
buffers for a read-modify-write cycle.

The guest can submit I/O vectors up to IOV_MAX (1024) in length, but
with this padding, the vector can exceed that limit.  As of
4c002cef0e9abe7135d7916c51abce47f7fc1ee2 ("util/iov: make
qemu_iovec_init_extended() honest"), we refuse to pad vectors beyond the
limit, instead returning an error to the guest.

To the guest, this appears as a random I/O error.  We should not return
an I/O error to the guest when it issued a perfectly valid request.

Before 4c002cef0e9abe7135d7916c51abce47f7fc1ee2, we just made the vector
longer than IOV_MAX, which generally seems to work (because the guest
assumes a smaller alignment than we really have, file-posix's
raw_co_prw() will generally see bdrv_qiov_is_aligned() return false, and
so emulate the request, so that the IOV_MAX does not matter).  However,
that does not seem exactly great.

I see two ways to fix this problem:
1. We split such long requests into two requests.
2. We join some elements of the vector into new buffers to make it
   shorter.

I am wary of (1), because it seems like it may have unintended side
effects.

(2) on the other hand seems relatively simple to implement, with
hopefully few side effects, so this patch does that.

To do this, the use of qemu_iovec_init_extended() in bdrv_pad_request()
is effectively replaced by the new function bdrv_create_padded_qiov(),
which not only wraps the request IOV with padding head/tail, but also
ensures that the resulting vector will not have more than IOV_MAX
elements.  Putting that functionality into qemu_iovec_init_extended() is
infeasible because it requires allocating a bounce buffer; doing so
would require many more parameters (buffer alignment, how to initialize
the buffer, and out parameters like the buffer, its length, and the
original elements), which is not reasonable.

Conversely, it is not difficult to move qemu_iovec_init_extended()'s
functionality into bdrv_create_padded_qiov() by using public
qemu_iovec_* functions, so that is what this patch does.

Because bdrv_pad_request() was the only "serious" user of
qemu_iovec_init_extended(), the next patch will remove the latter
function, so the functionality is not implemented twice.

Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=2141964
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Message-Id: <20230411173418.19549-3-hreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>


  Commit: cc63f6f6fa1aaa4b6405dd69432c693e9c8d18ca
      
https://github.com/qemu/qemu/commit/cc63f6f6fa1aaa4b6405dd69432c693e9c8d18ca
  Author: Hanna Czenczek <hreitz@redhat.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M include/qemu/iov.h
    M util/iov.c

  Log Message:
  -----------
  util/iov: Remove qemu_iovec_init_extended()

bdrv_pad_request() was the main user of qemu_iovec_init_extended().
HEAD^ has removed that use, so we can remove qemu_iovec_init_extended()
now.

The only remaining user is qemu_iovec_init_slice(), which can easily
inline the small part it really needs.

Note that qemu_iovec_init_extended() offered a memcpy() optimization to
initialize the new I/O vector.  qemu_iovec_concat_iov(), which is used
to replace its functionality, does not, but calls qemu_iovec_add() for
every single element.  If we decide this optimization was important, we
will need to re-implement it in qemu_iovec_concat_iov(), which might
also benefit its pre-existing users.

Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Message-Id: <20230411173418.19549-4-hreitz@redhat.com>


  Commit: d7e1905e3f54ff9512db4c7a946a8603b62b108d
      
https://github.com/qemu/qemu/commit/d7e1905e3f54ff9512db4c7a946a8603b62b108d
  Author: Hanna Czenczek <hreitz@redhat.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    A tests/qemu-iotests/tests/iov-padding
    A tests/qemu-iotests/tests/iov-padding.out

  Log Message:
  -----------
  iotests/iov-padding: New test

Test that even vectored IO requests with 1024 vector elements that are
not aligned to the device's request alignment will succeed.

Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>
Message-Id: <20230411173418.19549-5-hreitz@redhat.com>


  Commit: f5e715dbbb1ad73ea700b8179a1b8246b71447fc
      
https://github.com/qemu/qemu/commit/f5e715dbbb1ad73ea700b8179a1b8246b71447fc
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Out of image offset in BAT leads to image inflation

data_end field in BDRVParallelsState is set to the biggest offset present
in BAT. If this offset is outside of the image, any further write will
create the cluster at this offset and/or the image will be truncated to
this offset on close. This is definitely not correct.

Raise an error in parallels_open() if data_end points outside the image
and it is not a check (let the check to repaire the image). Set data_end
to the end of the cluster with the last correct offset.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Message-Id: <20230424093147.197643-2-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: ab2d739c417ccc7c7bd6c805899c06992bf3bfb1
      
https://github.com/qemu/qemu/commit/ab2d739c417ccc7c7bd6c805899c06992bf3bfb1
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Fix high_off calculation in parallels_co_check()

Don't let high_off be more than the file size even if we don't fix the
image.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-Id: <20230424093147.197643-3-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 679749ce41bc61ff92fb857a66497a03c241b8c2
      
https://github.com/qemu/qemu/commit/679749ce41bc61ff92fb857a66497a03c241b8c2
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Fix image_end_offset and data_end after out-of-image check

Set data_end to the end of the last cluster inside the image. In such a
way we can be sure that corrupted offsets in the BAT can't affect on the
image size. If there are no allocated clusters set image_end_offset by
data_end.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Message-Id: <20230424093147.197643-4-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: b64b29b96b121614bd1c2bccc700310893b865e4
      
https://github.com/qemu/qemu/commit/b64b29b96b121614bd1c2bccc700310893b865e4
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: create parallels_set_bat_entry_helper() to assign BAT value

This helper will be reused in next patches during parallels_co_check
rework to simplify its code.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-Id: <20230424093147.197643-5-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 3569cb7b789cf39273cad7c902d8f2685ebf011c
      
https://github.com/qemu/qemu/commit/3569cb7b789cf39273cad7c902d8f2685ebf011c
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Use generic infrastructure for BAT writing in parallels_co_check()

BAT is written in the context of conventional operations over the image
inside bdrv_co_flush() when it calls parallels_co_flush_to_os() callback.
Thus we should not modify BAT array directly, but call
parallels_set_bat_entry() helper and bdrv_co_flush() further on. After
that there is no need to manually write BAT and track its modification.

This makes code more generic and allows to split parallels_set_bat_entry()
for independent pieces.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Message-Id: <20230424093147.197643-6-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 96de69c7d91800345c05a60013f4187c392edfa3
      
https://github.com/qemu/qemu/commit/96de69c7d91800345c05a60013f4187c392edfa3
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Move check of unclean image to a separate function

We will add more and more checks so we need a better code structure
in parallels_co_check. Let each check performs in a separate loop
in a separate helper.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-Id: <20230424093147.197643-7-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 6d416e56a79b91e96bdb2d2a186da647bd737d01
      
https://github.com/qemu/qemu/commit/6d416e56a79b91e96bdb2d2a186da647bd737d01
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Move check of cluster outside image to a separate function

We will add more and more checks so we need a better code structure in
parallels_co_check. Let each check performs in a separate loop in a
separate helper.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Message-Id: <20230424093147.197643-8-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 9616f7a6c2eaed165e26227a4c84c24bcc2b3473
      
https://github.com/qemu/qemu/commit/9616f7a6c2eaed165e26227a4c84c24bcc2b3473
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Fix statistics calculation

Exclude out-of-image clusters from allocated and fragmented clusters
calculation.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Message-Id: <20230424093147.197643-9-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 09a21edfaf7f0e6145f6e9728f1a600b985ee81a
      
https://github.com/qemu/qemu/commit/09a21edfaf7f0e6145f6e9728f1a600b985ee81a
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Move check of leaks to a separate function

We will add more and more checks so we need a better code structure
in parallels_co_check. Let each check performs in a separate loop
in a separate helper.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Message-Id: <20230424093147.197643-10-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 7e259e2540c542b5255c3e61938b6b94f8a82a31
      
https://github.com/qemu/qemu/commit/7e259e2540c542b5255c3e61938b6b94f8a82a31
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Move statistic collection to a separate function

We will add more and more checks so we need a better code structure
in parallels_co_check. Let each check performs in a separate loop
in a separate helper.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-Id: <20230424093147.197643-11-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: c0fc051dd475a3b76c9200c8bcb192710cdc1338
      
https://github.com/qemu/qemu/commit/c0fc051dd475a3b76c9200c8bcb192710cdc1338
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Replace qemu_co_mutex_lock by WITH_QEMU_LOCK_GUARD

Replace the way we use mutex in parallels_co_check() for simplier
and less error prone code.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Message-Id: <20230424093147.197643-12-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 029136f2611eaf6d1eea2d5e4bdc4492bb8ffa0c
      
https://github.com/qemu/qemu/commit/029136f2611eaf6d1eea2d5e4bdc4492bb8ffa0c
  Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/parallels.c

  Log Message:
  -----------
  parallels: Incorrect condition in out-of-image check

All the offsets in the BAT must be lower than the file size.
Fix the check condition for correct check.

Signed-off-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Message-Id: <20230424093147.197643-13-alexander.ivanov@virtuozzo.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: 42a2890a76f4783cd1c212f27856edcf2b5e8a75
      
https://github.com/qemu/qemu/commit/42a2890a76f4783cd1c212f27856edcf2b5e8a75
  Author: Jean-Louis Dupond <jean-louis@dupond.be>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/qcow2.h
    M qapi/block-core.json
    M qemu-options.hx

  Log Message:
  -----------
  qcow2: add discard-no-unref option

When we for example have a sparse qcow2 image and discard: unmap is enabled,
there can be a lot of fragmentation in the image after some time. Especially on 
VM's
that do a lot of writes/deletes.
This causes the qcow2 image to grow even over 110% of its virtual size,
because the free gaps in the image get too small to allocate new
continuous clusters. So it allocates new space at the end of the image.

Disabling discard is not an option, as discard is needed to keep the
incremental backup size as low as possible. Without discard, the
incremental backups would become large, as qemu thinks it's just dirty
blocks but it doesn't know the blocks are unneeded.
So we need to avoid fragmentation but also 'empty' the unneeded blocks in
the image to have a small incremental backup.

In addition, we also want to send the discards further down the stack, so
the underlying blocks are still discarded.

Therefor we introduce a new qcow2 option "discard-no-unref".
When setting this option to true, discards will no longer have the qcow2
driver relinquish cluster allocations. Other than that, the request is
handled as normal: All clusters in range are marked as zero, and, if
pass-discard-request is true, it is passed further down the stack.
The only difference is that the now-zero clusters are preallocated
instead of being unallocated.
This will avoid fragmentation on the qcow2 image.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/1621
Signed-off-by: Jean-Louis Dupond <jean-louis@dupond.be>
Message-Id: <20230605084523.34134-2-jean-louis@dupond.be>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Hanna Czenczek <hreitz@redhat.com>


  Commit: b52daaf2c868f2bab102eb5acbf55b2917f46aea
      
https://github.com/qemu/qemu/commit/b52daaf2c868f2bab102eb5acbf55b2917f46aea
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
    M block/io.c
    M block/parallels.c
    M block/qcow2-cluster.c
    M block/qcow2.c
    M block/qcow2.h
    M include/qemu/iov.h
    M qapi/block-core.json
    M qemu-options.hx
    A tests/qemu-iotests/tests/iov-padding
    A tests/qemu-iotests/tests/iov-padding.out
    M util/iov.c

  Log Message:
  -----------
  Merge tag 'pull-block-2023-06-05' of https://gitlab.com/hreitz/qemu into 
staging

Block patches

- Fix padding of unaligned vectored requests to match the host alignment
  for vectors with 1023 or 1024 buffers
- Refactor and fix bugs in parallels's image check functionality
- Add an option to the qcow2 driver to retain (qcow2-level) allocations
  on discard requests from the guest (while still forwarding the discard
  to the lower level and marking the range as zero)

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEEy2LXoO44KeRfAE00ofpA0JgBnN8FAmR+AT4SHGhyZWl0ekBy
# ZWRoYXQuY29tAAoJEKH6QNCYAZzfnboQAKD6YrreZLoseomRfqOAoApSf6yOdcHk
# 6kfsvzwzjosomsF1Pkzm4851vX5PyDqTdeu0iViM+pxanVO1b494q1P4VcAERqMB
# iZVs68R6M0l6HV9btWFGm+ibHJf4FapdntkIdwog1ka5TIhw5oDWCVNLigjhIoRv
# sM37Bgf14kC3sFTR++0HESsyU1eUP5gJjwJbPZ2IgJBmzYay0is1z5nHA/3VUswu
# 8dKnGQDsv62EtlK7PK8cU2BhLOeNi6Wr3bAb6Wf2QLB5e0qRb7oAkqNx5/UcTznk
# a3XMC1aiWhYvM/+DaYIpQUcIPgA8xQ1KHKeD6WjbGfLgZBqseX0aGWMByUsiY8Bo
# +BPIBnUDrbiPnAKB/XLQfnzlE+s7121/JpEbB7AkZqVFRGuw8Wur4tbc2fzvy8Pw
# x/uQfv3ZPi/2Lf6u7hv/TVHubXi8jucVgx3Ubu5Jeo3901S4/KOQBQ4BQ/GYIGQX
# 38ijSROcEd0eQJ1mTKPEctouxjSZCghNSbrn9DfsL1V3VWqWNKKGCU3hM+RQ1SJT
# 688qvnyYt8QZfTsiDSHR/GfKsufG0DkoqE7c9IhSEPohecAH8Rrc3HcLut7fuwD2
# gCFQhm68CPwwRmBjPCY6Zi1RDzeOyFBSWN31T6t0yTb4OHJ/3/cSZVBJtwwkOVbx
# zwabHDNdY5Kw
# =GuoL
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 05 Jun 2023 08:37:34 AM PDT
# gpg:                using RSA key CB62D7A0EE3829E45F004D34A1FA40D098019CDF
# gpg:                issuer "hreitz@redhat.com"
# gpg: Good signature from "Hanna Reitz <hreitz@redhat.com>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: CB62 D7A0 EE38 29E4 5F00  4D34 A1FA 40D0 9801 9CDF

* tag 'pull-block-2023-06-05' of https://gitlab.com/hreitz/qemu:
  qcow2: add discard-no-unref option
  parallels: Incorrect condition in out-of-image check
  parallels: Replace qemu_co_mutex_lock by WITH_QEMU_LOCK_GUARD
  parallels: Move statistic collection to a separate function
  parallels: Move check of leaks to a separate function
  parallels: Fix statistics calculation
  parallels: Move check of cluster outside image to a separate function
  parallels: Move check of unclean image to a separate function
  parallels: Use generic infrastructure for BAT writing in parallels_co_check()
  parallels: create parallels_set_bat_entry_helper() to assign BAT value
  parallels: Fix image_end_offset and data_end after out-of-image check
  parallels: Fix high_off calculation in parallels_co_check()
  parallels: Out of image offset in BAT leads to image inflation
  iotests/iov-padding: New test
  util/iov: Remove qemu_iovec_init_extended()
  block: Collapse padded I/O vecs exceeding IOV_MAX
  util/iov: Make qiov_slice() public

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/afa351fe36d4...b52daaf2c868



reply via email to

[Prev in Thread] Current Thread [Next in Thread]