* [PULL 0/4] Block layer patches
@ 2025-11-25 16:16 Kevin Wolf
2025-11-25 16:16 ` [PULL 1/4] block-backend: Fix race when resuming queued requests Kevin Wolf
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Kevin Wolf @ 2025-11-25 16:16 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, richard.henderson, qemu-devel
The following changes since commit de074358e99b8eb5076d3efa267e44c292c90e3e:
Merge tag 'pull-target-arm-20251124' of https://gitlab.com/pm215/qemu into staging (2025-11-24 09:03:12 -0800)
are available in the Git repository at:
https://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to 59a1cf0cd31597d2f6e2c18dc400a1de8427d47d:
iotests: add Linux loop device image creation test (2025-11-25 15:26:22 +0100)
----------------------------------------------------------------
Block layer patches
- Image creation: Honour pwrite_zeroes_alignment for zeroing first sector
- block-backend: Fix race (causing a crash) when resuming queued requests
----------------------------------------------------------------
Kevin Wolf (1):
block-backend: Fix race when resuming queued requests
Stefan Hajnoczi (3):
file-posix: populate pwrite_zeroes_alignment
block: use pwrite_zeroes_alignment when writing first sector
iotests: add Linux loop device image creation test
include/system/block-backend-io.h | 1 +
block.c | 3 +-
block/block-backend.c | 19 +++++++--
block/file-posix.c | 16 ++++++++
tests/qemu-iotests/tests/loop-create-file | 59 +++++++++++++++++++++++++++
tests/qemu-iotests/tests/loop-create-file.out | 8 ++++
6 files changed, 102 insertions(+), 4 deletions(-)
create mode 100755 tests/qemu-iotests/tests/loop-create-file
create mode 100644 tests/qemu-iotests/tests/loop-create-file.out
^ permalink raw reply [flat|nested] 15+ messages in thread* [PULL 1/4] block-backend: Fix race when resuming queued requests
2025-11-25 16:16 [PULL 0/4] Block layer patches Kevin Wolf
@ 2025-11-25 16:16 ` Kevin Wolf
2025-11-25 16:16 ` [PULL 2/4] file-posix: populate pwrite_zeroes_alignment Kevin Wolf
` (3 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: Kevin Wolf @ 2025-11-25 16:16 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, richard.henderson, qemu-devel
When new requests arrive at a BlockBackend that is currently drained,
these requests are queued until the drain section ends.
There is a race window between blk_root_drained_end() waking up a queued
request in an iothread from the main thread and blk_wait_while_drained()
actually being woken up in the iothread and calling blk_inc_in_flight().
If the BlockBackend is drained again during this window, drain won't
wait for this request and it will sneak in when the BlockBackend is
already supposed to be quiesced. This causes assertion failures in
bdrv_drain_all_begin() and can have other unintended consequences.
Fix this by increasing the in_flight counter immediately when scheduling
the request to be resumed so that the next drain will wait for it to
complete.
Cc: qemu-stable@nongnu.org
Reported-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-ID: <20251119172720.135424-1-kwolf@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Tested-by: Andrey Drobyshev <andrey.drobyshev@virtuozzo.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/block-backend.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/block/block-backend.c b/block/block-backend.c
index f8d6ba65c1..d6df369188 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -1318,9 +1318,9 @@ static void coroutine_fn blk_wait_while_drained(BlockBackend *blk)
* section.
*/
qemu_mutex_lock(&blk->queued_requests_lock);
+ /* blk_root_drained_end() has the corresponding blk_inc_in_flight() */
blk_dec_in_flight(blk);
qemu_co_queue_wait(&blk->queued_requests, &blk->queued_requests_lock);
- blk_inc_in_flight(blk);
qemu_mutex_unlock(&blk->queued_requests_lock);
}
}
@@ -2767,9 +2767,11 @@ static void blk_root_drained_end(BdrvChild *child)
blk->dev_ops->drained_end(blk->dev_opaque);
}
qemu_mutex_lock(&blk->queued_requests_lock);
- while (qemu_co_enter_next(&blk->queued_requests,
- &blk->queued_requests_lock)) {
+ while (!qemu_co_queue_empty(&blk->queued_requests)) {
/* Resume all queued requests */
+ blk_inc_in_flight(blk);
+ qemu_co_enter_next(&blk->queued_requests,
+ &blk->queued_requests_lock);
}
qemu_mutex_unlock(&blk->queued_requests_lock);
}
--
2.51.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* [PULL 2/4] file-posix: populate pwrite_zeroes_alignment
2025-11-25 16:16 [PULL 0/4] Block layer patches Kevin Wolf
2025-11-25 16:16 ` [PULL 1/4] block-backend: Fix race when resuming queued requests Kevin Wolf
@ 2025-11-25 16:16 ` Kevin Wolf
2025-11-25 16:16 ` [PULL 3/4] block: use pwrite_zeroes_alignment when writing first sector Kevin Wolf
` (2 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: Kevin Wolf @ 2025-11-25 16:16 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, richard.henderson, qemu-devel
From: Stefan Hajnoczi <stefanha@redhat.com>
Linux block devices require write zeroes alignment whereas files do not.
It may come as a surprise that block devices opened in buffered I/O mode
require the alignment for write zeroes requests although normal
read/write requests do not.
Therefore it is necessary to populate the pwrite_zeroes_alignment field.
Cc: qemu-stable@nongnu.org
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20251007141700.71891-2-stefanha@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/file-posix.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/block/file-posix.c b/block/file-posix.c
index 12d12970fa..c9e367a222 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -1611,6 +1611,22 @@ static void raw_refresh_limits(BlockDriverState *bs, Error **errp)
bs->bl.pdiscard_alignment = dalign;
}
+
+#ifdef __linux__
+ /*
+ * Linux requires logical block size alignment for write zeroes even
+ * when normal reads/writes do not require alignment.
+ */
+ if (!s->needs_alignment) {
+ ret = probe_logical_blocksize(s->fd,
+ &bs->bl.pwrite_zeroes_alignment);
+ if (ret < 0) {
+ error_setg_errno(errp, -ret,
+ "Failed to probe logical block size");
+ return;
+ }
+ }
+#endif /* __linux__ */
}
raw_refresh_zoned_limits(bs, &st, errp);
--
2.51.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* [PULL 3/4] block: use pwrite_zeroes_alignment when writing first sector
2025-11-25 16:16 [PULL 0/4] Block layer patches Kevin Wolf
2025-11-25 16:16 ` [PULL 1/4] block-backend: Fix race when resuming queued requests Kevin Wolf
2025-11-25 16:16 ` [PULL 2/4] file-posix: populate pwrite_zeroes_alignment Kevin Wolf
@ 2025-11-25 16:16 ` Kevin Wolf
2025-11-25 16:16 ` [PULL 4/4] iotests: add Linux loop device image creation test Kevin Wolf
2025-11-25 19:29 ` [PULL 0/4] Block layer patches Richard Henderson
4 siblings, 0 replies; 15+ messages in thread
From: Kevin Wolf @ 2025-11-25 16:16 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, richard.henderson, qemu-devel
From: Stefan Hajnoczi <stefanha@redhat.com>
Since commit 5634622bcb33 ("file-posix: allow BLKZEROOUT with -t
writeback"), qemu-img create errors out on a Linux loop block device
with a 4 KB sector size:
# dd if=/dev/zero of=blockfile bs=1M count=1024
# losetup --sector-size 4096 /dev/loop0 blockfile
# qemu-img create -f raw /dev/loop0 1G
Formatting '/dev/loop0', fmt=raw size=1073741824
qemu-img: /dev/loop0: Failed to clear the new image's first sector: Invalid argument
Use the pwrite_zeroes_alignment block limit to avoid misaligned
fallocate(2) or ioctl(BLKZEROOUT) in the block/file-posix.c block
driver.
Cc: qemu-stable@nongnu.org
Fixes: 5634622bcb33 ("file-posix: allow BLKZEROOUT with -t writeback")
Reported-by: Jean-Louis Dupond <jean-louis@dupond.be>
Buglink: https://gitlab.com/qemu-project/qemu/-/issues/3127
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20251007141700.71891-3-stefanha@redhat.com>
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
include/system/block-backend-io.h | 1 +
block.c | 3 ++-
block/block-backend.c | 11 +++++++++++
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/include/system/block-backend-io.h b/include/system/block-backend-io.h
index ba8dfcc7d0..6d5ac476fc 100644
--- a/include/system/block-backend-io.h
+++ b/include/system/block-backend-io.h
@@ -116,6 +116,7 @@ BlockAIOCB *blk_abort_aio_request(BlockBackend *blk,
void *opaque, int ret);
uint32_t blk_get_request_alignment(BlockBackend *blk);
+uint32_t blk_get_pwrite_zeroes_alignment(BlockBackend *blk);
uint32_t blk_get_max_transfer(BlockBackend *blk);
uint64_t blk_get_max_hw_transfer(BlockBackend *blk);
diff --git a/block.c b/block.c
index 4f1581cedf..48a17f393c 100644
--- a/block.c
+++ b/block.c
@@ -606,12 +606,13 @@ create_file_fallback_zero_first_sector(BlockBackend *blk,
int64_t current_size,
Error **errp)
{
+ uint32_t alignment = blk_get_pwrite_zeroes_alignment(blk);
int64_t bytes_to_clear;
int ret;
GLOBAL_STATE_CODE();
- bytes_to_clear = MIN(current_size, BDRV_SECTOR_SIZE);
+ bytes_to_clear = MIN(current_size, MAX(BDRV_SECTOR_SIZE, alignment));
if (bytes_to_clear) {
ret = blk_co_pwrite_zeroes(blk, 0, bytes_to_clear, BDRV_REQ_MAY_UNMAP);
if (ret < 0) {
diff --git a/block/block-backend.c b/block/block-backend.c
index d6df369188..98315d4470 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -2305,6 +2305,17 @@ uint32_t blk_get_request_alignment(BlockBackend *blk)
return bs ? bs->bl.request_alignment : BDRV_SECTOR_SIZE;
}
+/* Returns the optimal write zeroes alignment, in bytes; guaranteed nonzero */
+uint32_t blk_get_pwrite_zeroes_alignment(BlockBackend *blk)
+{
+ BlockDriverState *bs = blk_bs(blk);
+ IO_CODE();
+ if (!bs) {
+ return BDRV_SECTOR_SIZE;
+ }
+ return bs->bl.pwrite_zeroes_alignment ?: bs->bl.request_alignment;
+}
+
/* Returns the maximum hardware transfer length, in bytes; guaranteed nonzero */
uint64_t blk_get_max_hw_transfer(BlockBackend *blk)
{
--
2.51.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* [PULL 4/4] iotests: add Linux loop device image creation test
2025-11-25 16:16 [PULL 0/4] Block layer patches Kevin Wolf
` (2 preceding siblings ...)
2025-11-25 16:16 ` [PULL 3/4] block: use pwrite_zeroes_alignment when writing first sector Kevin Wolf
@ 2025-11-25 16:16 ` Kevin Wolf
2025-11-25 19:29 ` [PULL 0/4] Block layer patches Richard Henderson
4 siblings, 0 replies; 15+ messages in thread
From: Kevin Wolf @ 2025-11-25 16:16 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, richard.henderson, qemu-devel
From: Stefan Hajnoczi <stefanha@redhat.com>
This qemu-iotests test case is based on the reproducer that Jean-Louis
Dupond <jean-louis@dupond.be> shared in
https://gitlab.com/qemu-project/qemu/-/issues/3127.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20251007141700.71891-4-stefanha@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Tested-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/tests/loop-create-file | 59 +++++++++++++++++++
tests/qemu-iotests/tests/loop-create-file.out | 8 +++
2 files changed, 67 insertions(+)
create mode 100755 tests/qemu-iotests/tests/loop-create-file
create mode 100644 tests/qemu-iotests/tests/loop-create-file.out
diff --git a/tests/qemu-iotests/tests/loop-create-file b/tests/qemu-iotests/tests/loop-create-file
new file mode 100755
index 0000000000..5ec75b046b
--- /dev/null
+++ b/tests/qemu-iotests/tests/loop-create-file
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+# group: quick
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# Copyright Red Hat, Inc.
+#
+# Test Linux loop device image creation
+#
+# This test verifies #3127 "qemu-img create fails on loop device with sector size 4096"
+# https://gitlab.com/qemu-project/qemu/-/issues/3127
+
+seq="$(basename $0)"
+echo "QA output created by $seq"
+
+status=1 # failure is the default!
+
+_cleanup() {
+ if [ -n "$loopdev" ]; then
+ sudo losetup --detach "$loopdev"
+ fi
+
+ _cleanup_test_img
+}
+
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+cd ..
+. ./common.rc
+. ./common.filter
+
+_supported_fmt raw
+_supported_proto file
+_supported_os Linux
+
+if ! sudo -n losetup &>/dev/null; then
+ _notrun "sudo losetup not available"
+fi
+
+echo
+echo "=== Create image on a 4 KB sector size loop device ==="
+echo
+
+_make_test_img -f $IMGFMT 1M
+
+loopdev=$(sudo losetup --sector-size 4096 --find --show "$TEST_IMG")
+if [ -z "$loopdev" ]; then
+ _fail
+fi
+
+sudo $QEMU_IMG_PROG create -f raw "$loopdev" 1M | \
+ sed -e "s#/dev/loop[0-9]\\+#LOOPDEV#g"
+
+# success, all done
+echo
+echo '*** done'
+rm -f $seq.full
+status=0
diff --git a/tests/qemu-iotests/tests/loop-create-file.out b/tests/qemu-iotests/tests/loop-create-file.out
new file mode 100644
index 0000000000..32d4155695
--- /dev/null
+++ b/tests/qemu-iotests/tests/loop-create-file.out
@@ -0,0 +1,8 @@
+QA output created by loop-create-file
+
+=== Create image on a 4 KB sector size loop device ===
+
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576
+Formatting 'LOOPDEV', fmt=raw size=1048576
+
+*** done
--
2.51.1
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PULL 0/4] Block layer patches
2025-11-25 16:16 [PULL 0/4] Block layer patches Kevin Wolf
` (3 preceding siblings ...)
2025-11-25 16:16 ` [PULL 4/4] iotests: add Linux loop device image creation test Kevin Wolf
@ 2025-11-25 19:29 ` Richard Henderson
4 siblings, 0 replies; 15+ messages in thread
From: Richard Henderson @ 2025-11-25 19:29 UTC (permalink / raw)
To: Kevin Wolf, qemu-block; +Cc: qemu-devel
On 11/25/25 08:16, Kevin Wolf wrote:
> The following changes since commit de074358e99b8eb5076d3efa267e44c292c90e3e:
>
> Merge tag 'pull-target-arm-20251124' ofhttps://gitlab.com/pm215/qemu into staging (2025-11-24 09:03:12 -0800)
>
> are available in the Git repository at:
>
> https://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 59a1cf0cd31597d2f6e2c18dc400a1de8427d47d:
>
> iotests: add Linux loop device image creation test (2025-11-25 15:26:22 +0100)
>
> ----------------------------------------------------------------
> Block layer patches
>
> - Image creation: Honour pwrite_zeroes_alignment for zeroing first sector
> - block-backend: Fix race (causing a crash) when resuming queued requests
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/10.2 as appropriate.
r~
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PULL 0/4] Block layer patches
@ 2025-04-25 17:52 Kevin Wolf
2025-04-28 17:56 ` Stefan Hajnoczi
0 siblings, 1 reply; 15+ messages in thread
From: Kevin Wolf @ 2025-04-25 17:52 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, qemu-devel
The following changes since commit 019fbfa4bcd2d3a835c241295e22ab2b5b56129b:
Merge tag 'pull-misc-2025-04-24' of https://repo.or.cz/qemu/armbru into staging (2025-04-24 13:44:57 -0400)
are available in the Git repository at:
https://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to 2b689db0bedd24eda8b491cb1fcfb015dfec5a31:
qemu-img: improve queue depth validation in img_bench (2025-04-25 18:09:04 +0200)
----------------------------------------------------------------
Block layer patches
- Discard alignment fixes
- Remove unused callback .bdrv_aio_pdiscard()
- qemu-img bench: Input validation fix
----------------------------------------------------------------
Denis Rastyogin (1):
qemu-img: improve queue depth validation in img_bench
Stefan Hajnoczi (2):
file-posix: probe discard alignment on Linux block devices
block/io: skip head/tail requests on EINVAL
Sunny Zhu (1):
block: Remove unused callback function *bdrv_aio_pdiscard
include/block/block_int-common.h | 4 ---
block/file-posix.c | 67 +++++++++++++++++++++++++++++++++++++++-
block/io.c | 35 +++++++--------------
qemu-img.c | 2 +-
4 files changed, 79 insertions(+), 29 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread* [PULL 0/4] Block layer patches
@ 2025-04-08 13:00 Kevin Wolf
2025-04-09 8:31 ` Stefan Hajnoczi
0 siblings, 1 reply; 15+ messages in thread
From: Kevin Wolf @ 2025-04-08 13:00 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, qemu-devel
The following changes since commit dfaecc04c46d298e9ee81bd0ca96d8754f1c27ed:
Merge tag 'pull-riscv-to-apply-20250407-1' of https://github.com/alistair23/qemu into staging (2025-04-07 09:18:33 -0400)
are available in the Git repository at:
https://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to f8222bfba3409a3ce09c191941127a8cf2c7e623:
test-bdrv-drain: Fix data races (2025-04-08 15:00:01 +0200)
----------------------------------------------------------------
Block layer patches
- scsi-disk: Apply error policy for host_status errors again
- qcow2: Fix qemu-img info crash with missing crypto header
- qemu-img bench: Fix division by zero for zero-sized images
- test-bdrv-drain: Fix data races
----------------------------------------------------------------
Denis Rastyogin (1):
qemu-img: fix division by zero in bench_cb() for zero-sized images
Kevin Wolf (2):
qcow2: Don't crash qemu-img info with missing crypto header
scsi-disk: Apply error policy for host_status errors again
Vitalii Mordan (1):
test-bdrv-drain: Fix data races
include/qemu/job.h | 3 ++
block/qcow2.c | 4 +-
hw/scsi/scsi-disk.c | 39 +++++++++-----
job.c | 6 +++
qemu-img.c | 6 ++-
tests/unit/test-bdrv-drain.c | 32 +++++++-----
tests/qemu-iotests/tests/qcow2-encryption | 75 +++++++++++++++++++++++++++
tests/qemu-iotests/tests/qcow2-encryption.out | 32 ++++++++++++
8 files changed, 167 insertions(+), 30 deletions(-)
create mode 100755 tests/qemu-iotests/tests/qcow2-encryption
create mode 100644 tests/qemu-iotests/tests/qcow2-encryption.out
^ permalink raw reply [flat|nested] 15+ messages in thread* [PULL 0/4] Block layer patches
@ 2023-11-28 14:09 Kevin Wolf
0 siblings, 0 replies; 15+ messages in thread
From: Kevin Wolf @ 2023-11-28 14:09 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, stefanha, qemu-devel
The following changes since commit e867b01cd6658a64c16052117dbb18093a2f9772:
Merge tag 'qga-pull-2023-11-25' of https://github.com/kostyanf14/qemu into staging (2023-11-27 08:59:00 -0500)
are available in the Git repository at:
https://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to 6e081324facf9aeece9c286774bab5af3b8d6099:
ide/via: Fix BAR4 value in legacy mode (2023-11-28 14:56:32 +0100)
----------------------------------------------------------------
Block layer patches
- ide/via: Fix BAR4 value in legacy mode
- export/vhost-user-blk: Fix consecutive drains
- vmdk: Don't corrupt desc file in vmdk_write_cid
- iotests: fix default machine type detection
----------------------------------------------------------------
Andrey Drobyshev (1):
iotests: fix default machine type detection
BALATON Zoltan (1):
ide/via: Fix BAR4 value in legacy mode
Fam Zheng (1):
vmdk: Don't corrupt desc file in vmdk_write_cid
Kevin Wolf (1):
export/vhost-user-blk: Fix consecutive drains
include/qemu/vhost-user-server.h | 1 +
block/export/vhost-user-blk-server.c | 9 +++++++--
block/vmdk.c | 28 ++++++++++++++++++--------
hw/ide/via.c | 17 ++++++++++------
util/vhost-user-server.c | 39 ++++++++++++++++++++++++++++--------
tests/qemu-iotests/testenv.py | 2 +-
tests/qemu-iotests/059 | 2 ++
tests/qemu-iotests/059.out | 4 ++++
8 files changed, 77 insertions(+), 25 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread* [PULL 0/4] Block layer patches
@ 2023-03-28 12:35 Kevin Wolf
2023-03-28 19:42 ` Peter Maydell
0 siblings, 1 reply; 15+ messages in thread
From: Kevin Wolf @ 2023-03-28 12:35 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
The following changes since commit e3debd5e7d0ce031356024878a0a18b9d109354a:
Merge tag 'pull-request-2023-03-24' of https://gitlab.com/thuth/qemu into staging (2023-03-24 16:08:46 +0000)
are available in the Git repository at:
https://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to d8fbf9aa85aed64450907580a1d70583f097e9df:
block/export: Fix graph locking in blk_get_geometry() call (2023-03-27 15:16:05 +0200)
----------------------------------------------------------------
Block layer patches
- aio-posix: Fix race during epoll upgrade
- vhost-user-blk/VDUSE export: Fix a potential deadlock and an assertion
failure when the export runs in an iothread
- NBD server: Push pending frames after sending reply to fix performance
especially when used with TLS
----------------------------------------------------------------
Florian Westphal (1):
nbd/server: push pending frames after sending reply
Kevin Wolf (1):
block/export: Fix graph locking in blk_get_geometry() call
Stefan Hajnoczi (2):
block/export: only acquire AioContext once for vhost_user_server_stop()
aio-posix: fix race between epoll upgrade and aio_set_fd_handler()
include/block/block-io.h | 4 +++-
include/sysemu/block-backend-io.h | 5 ++++-
block.c | 5 +++--
block/block-backend.c | 7 +++++--
block/export/virtio-blk-handler.c | 7 ++++---
nbd/server.c | 3 +++
util/fdmon-epoll.c | 25 ++++++++++++++++++-------
util/vhost-user-server.c | 5 +----
8 files changed, 41 insertions(+), 20 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PULL 0/4] Block layer patches
2023-03-28 12:35 Kevin Wolf
@ 2023-03-28 19:42 ` Peter Maydell
0 siblings, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2023-03-28 19:42 UTC (permalink / raw)
To: Kevin Wolf; +Cc: qemu-block, qemu-devel
On Tue, 28 Mar 2023 at 13:35, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit e3debd5e7d0ce031356024878a0a18b9d109354a:
>
> Merge tag 'pull-request-2023-03-24' of https://gitlab.com/thuth/qemu into staging (2023-03-24 16:08:46 +0000)
>
> are available in the Git repository at:
>
> https://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to d8fbf9aa85aed64450907580a1d70583f097e9df:
>
> block/export: Fix graph locking in blk_get_geometry() call (2023-03-27 15:16:05 +0200)
>
> ----------------------------------------------------------------
> Block layer patches
>
> - aio-posix: Fix race during epoll upgrade
> - vhost-user-blk/VDUSE export: Fix a potential deadlock and an assertion
> failure when the export runs in an iothread
> - NBD server: Push pending frames after sending reply to fix performance
> especially when used with TLS
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/8.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PULL 0/4] Block layer patches
@ 2019-09-20 16:20 Kevin Wolf
2019-09-23 9:49 ` Peter Maydell
0 siblings, 1 reply; 15+ messages in thread
From: Kevin Wolf @ 2019-09-20 16:20 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, peter.maydell, qemu-devel
The following changes since commit 521db80318d6c749a6f6c5a65a68397af9e3ef16:
Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-09-16' into staging (2019-09-16 15:25:55 +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 d2c8c09fca9210d0f2399c8d570086a4a66bd22e:
iotests: Remove Python 2 compatibility code (2019-09-20 17:58:51 +0200)
----------------------------------------------------------------
Block layer patches:
- Fix internal snapshots with typical -blockdev setups
- iotests: Require Python 3.6 or later
----------------------------------------------------------------
Kevin Wolf (4):
block/snapshot: Restrict set of snapshot nodes
iotests: Test internal snapshots with -blockdev
iotests: Require Python 3.6 or later
iotests: Remove Python 2 compatibility code
block/snapshot.c | 26 +++--
tests/qemu-iotests/044 | 3 -
tests/qemu-iotests/163 | 3 -
tests/qemu-iotests/267 | 168 ++++++++++++++++++++++++++++
tests/qemu-iotests/267.out | 182 +++++++++++++++++++++++++++++++
tests/qemu-iotests/check | 13 ++-
tests/qemu-iotests/common.filter | 5 +-
tests/qemu-iotests/group | 1 +
tests/qemu-iotests/iotests.py | 13 +--
tests/qemu-iotests/nbd-fault-injector.py | 7 +-
10 files changed, 389 insertions(+), 32 deletions(-)
create mode 100755 tests/qemu-iotests/267
create mode 100644 tests/qemu-iotests/267.out
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PULL 0/4] Block layer patches
2019-09-20 16:20 Kevin Wolf
@ 2019-09-23 9:49 ` Peter Maydell
0 siblings, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2019-09-23 9:49 UTC (permalink / raw)
To: Kevin Wolf; +Cc: QEMU Developers, Qemu-block
On Fri, 20 Sep 2019 at 17:21, Kevin Wolf <kwolf@redhat.com> wrote:
>
> The following changes since commit 521db80318d6c749a6f6c5a65a68397af9e3ef16:
>
> Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2019-09-16' into staging (2019-09-16 15:25:55 +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 d2c8c09fca9210d0f2399c8d570086a4a66bd22e:
>
> iotests: Remove Python 2 compatibility code (2019-09-20 17:58:51 +0200)
>
> ----------------------------------------------------------------
> Block layer patches:
>
> - Fix internal snapshots with typical -blockdev setups
> - iotests: Require Python 3.6 or later
>
> ----------------------------------------------------------------
> Kevin Wolf (4):
> block/snapshot: Restrict set of snapshot nodes
> iotests: Test internal snapshots with -blockdev
> iotests: Require Python 3.6 or later
> iotests: Remove Python 2 compatibility code
Hi. This fails 'make check' on all the non-x86 Linux hosts:
iotests 267 fails on aarch32, ppc64, s390x, aarch64.
Sample output from the aarch32 run; others are similar
but the listed snapshot size differs.
TEST iotest-qcow2: 267 [fail]
QEMU --
"/home/peter.maydell/qemu/build/all-a32/tests/qemu-iotests/../../aarch64-softmmu/qemu-system-aarch64"
-nodefaults -display none
-machine virt,accel=qtest
QEMU_IMG --
"/home/peter.maydell/qemu/build/all-a32/tests/qemu-iotests/../../qemu-img"
QEMU_IO --
"/home/peter.maydell/qemu/build/all-a32/tests/qemu-iotests/../../qemu-io"
--cache writeback -f qcow2
QEMU_NBD --
"/home/peter.maydell/qemu/build/all-a32/tests/qemu-iotests/../../qemu-nbd"
IMGFMT -- qcow2 (compat=1.1)
IMGPROTO -- file
PLATFORM -- Linux/aarch64 mustang-maydell 4.15.0-51-generic
TEST_DIR --
/home/peter.maydell/qemu/build/all-a32/tests/qemu-iotests/scratch
SOCKET_SCM_HELPER --
/home/peter.maydell/qemu/build/all-a32/tests/qemu-iotests/socket_scm_helper
--- /home/peter.maydell/qemu/tests/qemu-iotests/267.out 2019-09-20
17:54:40.127012142 +0000
+++ /home/peter.maydell/qemu/build/all-a32/tests/qemu-iotests/267.out.bad
2019-09-20 18:02:11.756586745 +0000
@@ -34,7 +34,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -45,7 +45,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 636 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 684 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -70,7 +70,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 636 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 684 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -95,7 +95,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -106,7 +106,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -120,7 +120,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -135,7 +135,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -146,14 +146,14 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
Internal snapshots on overlay:
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
-1 snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+1 snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
Internal snapshots on backing file:
=== -blockdev with NBD server on the backing file ===
@@ -167,7 +167,7 @@
(qemu) info snapshots
List of snapshots present on all disks:
ID TAG VM SIZE DATE VM CLOCK
--- snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+-- snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
(qemu) loadvm snap0
(qemu) quit
@@ -178,5 +178,5 @@
Internal snapshots on backing file:
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
-1 snap0 591 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
+1 snap0 640 KiB yyyy-mm-dd hh:mm:ss 00:00:00.000
*** done
Not run: 172 186 192 220
Failures: 267
Failed 1 of 104 iotests
thanks
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-11-25 19:30 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-25 16:16 [PULL 0/4] Block layer patches Kevin Wolf
2025-11-25 16:16 ` [PULL 1/4] block-backend: Fix race when resuming queued requests Kevin Wolf
2025-11-25 16:16 ` [PULL 2/4] file-posix: populate pwrite_zeroes_alignment Kevin Wolf
2025-11-25 16:16 ` [PULL 3/4] block: use pwrite_zeroes_alignment when writing first sector Kevin Wolf
2025-11-25 16:16 ` [PULL 4/4] iotests: add Linux loop device image creation test Kevin Wolf
2025-11-25 19:29 ` [PULL 0/4] Block layer patches Richard Henderson
-- strict thread matches above, loose matches on Subject: below --
2025-04-25 17:52 Kevin Wolf
2025-04-28 17:56 ` Stefan Hajnoczi
2025-04-08 13:00 Kevin Wolf
2025-04-09 8:31 ` Stefan Hajnoczi
2023-11-28 14:09 Kevin Wolf
2023-03-28 12:35 Kevin Wolf
2023-03-28 19:42 ` Peter Maydell
2019-09-20 16:20 Kevin Wolf
2019-09-23 9:49 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).