* [PULL v3 00/21] Block layer patches
@ 2023-05-19 17:18 Kevin Wolf
2023-05-19 18:48 ` Richard Henderson
2023-05-19 19:11 ` Richard Henderson
0 siblings, 2 replies; 7+ messages in thread
From: Kevin Wolf @ 2023-05-19 17:18 UTC (permalink / raw)
To: qemu-block; +Cc: kwolf, richard.henderson, qemu-devel
The following changes since commit d009607d08d22f91ca399b72828c6693855e7325:
Revert "arm/kvm: add support for MTE" (2023-05-19 08:01:15 -0700)
are available in the Git repository at:
https://repo.or.cz/qemu/kevin.git tags/for-upstream
for you to fetch changes up to 95fdd8db61848d31fde1d9b32da7f3f76babfa25:
iotests: Test commit with iothreads and ongoing I/O (2023-05-19 19:16:53 +0200)
----------------------------------------------------------------
Block layer patches
- qcow2 spec: Rename "zlib" compression to "deflate"
- Honour graph read lock even in the main thread + prerequisite fixes
- aio-posix: do not nest poll handlers (fixes infinite recursion)
- Refactor QMP blockdev transactions
- graph-lock: Disable locking for now
- iotests/245: Check if 'compress' driver is available
----------------------------------------------------------------
Akihiro Suda (1):
docs/interop/qcow2.txt: fix description about "zlib" clusters
Kevin Wolf (12):
block: Call .bdrv_co_create(_opts) unlocked
block/export: Fix null pointer dereference in error path
qcow2: Unlock the graph in qcow2_do_open() where necessary
qemu-img: Take graph lock more selectively
test-bdrv-drain: Take graph lock more selectively
test-bdrv-drain: Call bdrv_co_unref() in coroutine context
blockjob: Adhere to rate limit even when reentered early
graph-lock: Honour read locks even in the main thread
iotests/245: Check if 'compress' driver is available
graph-lock: Disable locking for now
nbd/server: Fix drained_poll to wake coroutine in right AioContext
iotests: Test commit with iothreads and ongoing I/O
Stefan Hajnoczi (2):
aio-posix: do not nest poll handlers
tested: add test for nested aio_poll() in poll handlers
Vladimir Sementsov-Ogievskiy (6):
blockdev: refactor transaction to use Transaction API
blockdev: transactions: rename some things
blockdev: qmp_transaction: refactor loop to classic for
blockdev: transaction: refactor handling transaction properties
blockdev: use state.bitmap in block-dirty-bitmap-add action
blockdev: qmp_transaction: drop extra generic layer
docs/interop/qcow2.txt | 10 +-
include/block/block-global-state.h | 8 +-
include/block/block_int-common.h | 4 +-
include/block/blockjob_int.h | 14 +-
include/io/channel.h | 10 +
block.c | 1 -
block/commit.c | 7 +-
block/create.c | 1 -
block/crypto.c | 25 +-
block/export/export.c | 6 +-
block/graph-lock.c | 34 +-
block/mirror.c | 23 +-
block/parallels.c | 6 +-
block/qcow.c | 6 +-
block/qcow2.c | 43 +-
block/qed.c | 6 +-
block/raw-format.c | 2 +-
block/stream.c | 7 +-
block/vdi.c | 11 +-
block/vhdx.c | 8 +-
block/vmdk.c | 27 +-
block/vpc.c | 6 +-
blockdev.c | 606 +++++++++------------
blockjob.c | 22 +-
io/channel.c | 33 +-
nbd/server.c | 3 +-
qemu-img.c | 5 +-
tests/unit/test-bdrv-drain.c | 6 +-
tests/unit/test-nested-aio-poll.c | 130 +++++
util/aio-posix.c | 11 +
tests/qemu-iotests/iotests.py | 4 +
tests/qemu-iotests/245 | 7 +-
tests/qemu-iotests/245.out | 9 +-
tests/qemu-iotests/tests/graph-changes-while-io | 56 +-
.../qemu-iotests/tests/graph-changes-while-io.out | 4 +-
tests/unit/meson.build | 5 +-
36 files changed, 664 insertions(+), 502 deletions(-)
create mode 100644 tests/unit/test-nested-aio-poll.c
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v3 00/21] Block layer patches
2023-05-19 17:18 [PULL v3 00/21] Block layer patches Kevin Wolf
@ 2023-05-19 18:48 ` Richard Henderson
2023-05-19 19:19 ` Kevin Wolf
2023-05-19 19:11 ` Richard Henderson
1 sibling, 1 reply; 7+ messages in thread
From: Richard Henderson @ 2023-05-19 18:48 UTC (permalink / raw)
To: Kevin Wolf, qemu-block; +Cc: qemu-devel
On 5/19/23 10:18, Kevin Wolf wrote:
> The following changes since commit d009607d08d22f91ca399b72828c6693855e7325:
>
> Revert "arm/kvm: add support for MTE" (2023-05-19 08:01:15 -0700)
>
> are available in the Git repository at:
>
> https://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 95fdd8db61848d31fde1d9b32da7f3f76babfa25:
>
> iotests: Test commit with iothreads and ongoing I/O (2023-05-19 19:16:53 +0200)
>
> ----------------------------------------------------------------
> Block layer patches
>
> - qcow2 spec: Rename "zlib" compression to "deflate"
> - Honour graph read lock even in the main thread + prerequisite fixes
> - aio-posix: do not nest poll handlers (fixes infinite recursion)
> - Refactor QMP blockdev transactions
> - graph-lock: Disable locking for now
> - iotests/245: Check if 'compress' driver is available
>
> ----------------------------------------------------------------
> Akihiro Suda (1):
> docs/interop/qcow2.txt: fix description about "zlib" clusters
>
> Kevin Wolf (12):
> block: Call .bdrv_co_create(_opts) unlocked
> block/export: Fix null pointer dereference in error path
> qcow2: Unlock the graph in qcow2_do_open() where necessary
> qemu-img: Take graph lock more selectively
> test-bdrv-drain: Take graph lock more selectively
> test-bdrv-drain: Call bdrv_co_unref() in coroutine context
> blockjob: Adhere to rate limit even when reentered early
> graph-lock: Honour read locks even in the main thread
> iotests/245: Check if 'compress' driver is available
> graph-lock: Disable locking for now
> nbd/server: Fix drained_poll to wake coroutine in right AioContext
> iotests: Test commit with iothreads and ongoing I/O
>
> Stefan Hajnoczi (2):
> aio-posix: do not nest poll handlers
> tested: add test for nested aio_poll() in poll handlers
>
> Vladimir Sementsov-Ogievskiy (6):
> blockdev: refactor transaction to use Transaction API
> blockdev: transactions: rename some things
> blockdev: qmp_transaction: refactor loop to classic for
> blockdev: transaction: refactor handling transaction properties
> blockdev: use state.bitmap in block-dirty-bitmap-add action
> blockdev: qmp_transaction: drop extra generic layer
Test failure:
https://gitlab.com/qemu-project/qemu/-/jobs/4317480370#L3347
194 fail [18:42:03] [18:42:05] 1.2s output mismatch
(see /builds/qemu-project/qemu/build/tests/qemu-iotests/scratch/raw-file-194/194.out.bad)
--- /builds/qemu-project/qemu/tests/qemu-iotests/194.out
+++ /builds/qemu-project/qemu/build/tests/qemu-iotests/scratch/raw-file-194/194.out.bad
@@ -14,7 +14,6 @@
{"return": {}}
{"data": {"status": "setup"}, "event": "MIGRATION", "timestamp": {"microseconds":
"USECS", "seconds": "SECS"}}
{"data": {"status": "active"}, "event": "MIGRATION", "timestamp": {"microseconds":
"USECS", "seconds": "SECS"}}
-{"data": {"status": "postcopy-active"}, "event": "MIGRATION", "timestamp":
{"microseconds": "USECS", "seconds": "SECS"}}
{"data": {"status": "completed"}, "event": "MIGRATION", "timestamp": {"microseconds":
"USECS", "seconds": "SECS"}}
Gracefully ending the `drive-mirror` job on source...
r~
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v3 00/21] Block layer patches
2023-05-19 17:18 [PULL v3 00/21] Block layer patches Kevin Wolf
2023-05-19 18:48 ` Richard Henderson
@ 2023-05-19 19:11 ` Richard Henderson
2023-05-22 7:45 ` Kevin Wolf
1 sibling, 1 reply; 7+ messages in thread
From: Richard Henderson @ 2023-05-19 19:11 UTC (permalink / raw)
To: Kevin Wolf, qemu-block; +Cc: qemu-devel
On 5/19/23 10:18, Kevin Wolf wrote:
> The following changes since commit d009607d08d22f91ca399b72828c6693855e7325:
>
> Revert "arm/kvm: add support for MTE" (2023-05-19 08:01:15 -0700)
>
> are available in the Git repository at:
>
> https://repo.or.cz/qemu/kevin.git tags/for-upstream
>
> for you to fetch changes up to 95fdd8db61848d31fde1d9b32da7f3f76babfa25:
>
> iotests: Test commit with iothreads and ongoing I/O (2023-05-19 19:16:53 +0200)
>
> ----------------------------------------------------------------
> Block layer patches
>
> - qcow2 spec: Rename "zlib" compression to "deflate"
> - Honour graph read lock even in the main thread + prerequisite fixes
> - aio-posix: do not nest poll handlers (fixes infinite recursion)
> - Refactor QMP blockdev transactions
> - graph-lock: Disable locking for now
> - iotests/245: Check if 'compress' driver is available
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/8.1 as appropriate.
Though there seem to be existing io errors in several different environments, they don't
seem to be caused by this patch set.
r~
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v3 00/21] Block layer patches
2023-05-19 18:48 ` Richard Henderson
@ 2023-05-19 19:19 ` Kevin Wolf
2023-05-19 20:55 ` Juan Quintela
0 siblings, 1 reply; 7+ messages in thread
From: Kevin Wolf @ 2023-05-19 19:19 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-block, qemu-devel, quintela
Am 19.05.2023 um 20:48 hat Richard Henderson geschrieben:
> On 5/19/23 10:18, Kevin Wolf wrote:
> > The following changes since commit d009607d08d22f91ca399b72828c6693855e7325:
> >
> > Revert "arm/kvm: add support for MTE" (2023-05-19 08:01:15 -0700)
> >
> > are available in the Git repository at:
> >
> > https://repo.or.cz/qemu/kevin.git tags/for-upstream
> >
> > for you to fetch changes up to 95fdd8db61848d31fde1d9b32da7f3f76babfa25:
> >
> > iotests: Test commit with iothreads and ongoing I/O (2023-05-19 19:16:53 +0200)
> >
> > ----------------------------------------------------------------
> > Block layer patches
> >
> > - qcow2 spec: Rename "zlib" compression to "deflate"
> > - Honour graph read lock even in the main thread + prerequisite fixes
> > - aio-posix: do not nest poll handlers (fixes infinite recursion)
> > - Refactor QMP blockdev transactions
> > - graph-lock: Disable locking for now
> > - iotests/245: Check if 'compress' driver is available
> >
> > ----------------------------------------------------------------
> > Akihiro Suda (1):
> > docs/interop/qcow2.txt: fix description about "zlib" clusters
> >
> > Kevin Wolf (12):
> > block: Call .bdrv_co_create(_opts) unlocked
> > block/export: Fix null pointer dereference in error path
> > qcow2: Unlock the graph in qcow2_do_open() where necessary
> > qemu-img: Take graph lock more selectively
> > test-bdrv-drain: Take graph lock more selectively
> > test-bdrv-drain: Call bdrv_co_unref() in coroutine context
> > blockjob: Adhere to rate limit even when reentered early
> > graph-lock: Honour read locks even in the main thread
> > iotests/245: Check if 'compress' driver is available
> > graph-lock: Disable locking for now
> > nbd/server: Fix drained_poll to wake coroutine in right AioContext
> > iotests: Test commit with iothreads and ongoing I/O
> >
> > Stefan Hajnoczi (2):
> > aio-posix: do not nest poll handlers
> > tested: add test for nested aio_poll() in poll handlers
> >
> > Vladimir Sementsov-Ogievskiy (6):
> > blockdev: refactor transaction to use Transaction API
> > blockdev: transactions: rename some things
> > blockdev: qmp_transaction: refactor loop to classic for
> > blockdev: transaction: refactor handling transaction properties
> > blockdev: use state.bitmap in block-dirty-bitmap-add action
> > blockdev: qmp_transaction: drop extra generic layer
>
> Test failure:
>
> https://gitlab.com/qemu-project/qemu/-/jobs/4317480370#L3347
>
> 194 fail [18:42:03] [18:42:05] 1.2s
> output mismatch (see /builds/qemu-project/qemu/build/tests/qemu-iotests/scratch/raw-file-194/194.out.bad)
> --- /builds/qemu-project/qemu/tests/qemu-iotests/194.out
> +++ /builds/qemu-project/qemu/build/tests/qemu-iotests/scratch/raw-file-194/194.out.bad
> @@ -14,7 +14,6 @@
> {"return": {}}
> {"data": {"status": "setup"}, "event": "MIGRATION", "timestamp":
> {"microseconds": "USECS", "seconds": "SECS"}}
> {"data": {"status": "active"}, "event": "MIGRATION", "timestamp":
> {"microseconds": "USECS", "seconds": "SECS"}}
> -{"data": {"status": "postcopy-active"}, "event": "MIGRATION", "timestamp":
> {"microseconds": "USECS", "seconds": "SECS"}}
> {"data": {"status": "completed"}, "event": "MIGRATION", "timestamp":
> {"microseconds": "USECS", "seconds": "SECS"}}
> Gracefully ending the `drive-mirror` job on source...
You got the same failure on mst's pull request, so this seems to be
unrelated to the pull request at least.
Maybe it is related to us using different test runners now and the test
isn't working right there?
I tried to reproduce locally with the same options as the disable-tcg CI
job uses, but it always passes. Juan, do you have an idea what it could
mean if on some CI system the "postcopy-active" event is missing?
Kevin
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v3 00/21] Block layer patches
2023-05-19 19:19 ` Kevin Wolf
@ 2023-05-19 20:55 ` Juan Quintela
0 siblings, 0 replies; 7+ messages in thread
From: Juan Quintela @ 2023-05-19 20:55 UTC (permalink / raw)
To: Kevin Wolf, Peter Xu; +Cc: Richard Henderson, qemu-block, qemu-devel
Kevin Wolf <kwolf@redhat.com> wrote:
> Am 19.05.2023 um 20:48 hat Richard Henderson geschrieben:
>> On 5/19/23 10:18, Kevin Wolf wrote:
>> > The following changes since commit d009607d08d22f91ca399b72828c6693855e7325:
[ Adding Peter Xu, he has worked on postcopy lately]
>> >
>> > Revert "arm/kvm: add support for MTE" (2023-05-19 08:01:15 -0700)
>> >
>> > are available in the Git repository at:
>> >
>> > https://repo.or.cz/qemu/kevin.git tags/for-upstream
>> >
>> > for you to fetch changes up to 95fdd8db61848d31fde1d9b32da7f3f76babfa25:
>> >
>> > iotests: Test commit with iothreads and ongoing I/O (2023-05-19 19:16:53 +0200)
>> >
>> > ----------------------------------------------------------------
>> > Block layer patches
>> >
>> > - qcow2 spec: Rename "zlib" compression to "deflate"
>> > - Honour graph read lock even in the main thread + prerequisite fixes
>> > - aio-posix: do not nest poll handlers (fixes infinite recursion)
>> > - Refactor QMP blockdev transactions
>> > - graph-lock: Disable locking for now
>> > - iotests/245: Check if 'compress' driver is available
>> >
>> > ----------------------------------------------------------------
>> > Akihiro Suda (1):
>> > docs/interop/qcow2.txt: fix description about "zlib" clusters
>> >
>> > Kevin Wolf (12):
>> > block: Call .bdrv_co_create(_opts) unlocked
>> > block/export: Fix null pointer dereference in error path
>> > qcow2: Unlock the graph in qcow2_do_open() where necessary
>> > qemu-img: Take graph lock more selectively
>> > test-bdrv-drain: Take graph lock more selectively
>> > test-bdrv-drain: Call bdrv_co_unref() in coroutine context
>> > blockjob: Adhere to rate limit even when reentered early
>> > graph-lock: Honour read locks even in the main thread
>> > iotests/245: Check if 'compress' driver is available
>> > graph-lock: Disable locking for now
>> > nbd/server: Fix drained_poll to wake coroutine in right AioContext
>> > iotests: Test commit with iothreads and ongoing I/O
>> >
>> > Stefan Hajnoczi (2):
>> > aio-posix: do not nest poll handlers
>> > tested: add test for nested aio_poll() in poll handlers
>> >
>> > Vladimir Sementsov-Ogievskiy (6):
>> > blockdev: refactor transaction to use Transaction API
>> > blockdev: transactions: rename some things
>> > blockdev: qmp_transaction: refactor loop to classic for
>> > blockdev: transaction: refactor handling transaction properties
>> > blockdev: use state.bitmap in block-dirty-bitmap-add action
>> > blockdev: qmp_transaction: drop extra generic layer
>>
>> Test failure:
>>
>> https://gitlab.com/qemu-project/qemu/-/jobs/4317480370#L3347
>>
>> 194 fail [18:42:03] [18:42:05] 1.2s
>> output mismatch (see /builds/qemu-project/qemu/build/tests/qemu-iotests/scratch/raw-file-194/194.out.bad)
>> --- /builds/qemu-project/qemu/tests/qemu-iotests/194.out
>> +++ /builds/qemu-project/qemu/build/tests/qemu-iotests/scratch/raw-file-194/194.out.bad
>> @@ -14,7 +14,6 @@
>> {"return": {}}
>> {"data": {"status": "setup"}, "event": "MIGRATION", "timestamp":
>> {"microseconds": "USECS", "seconds": "SECS"}}
>> {"data": {"status": "active"}, "event": "MIGRATION", "timestamp":
>> {"microseconds": "USECS", "seconds": "SECS"}}
>> -{"data": {"status": "postcopy-active"}, "event": "MIGRATION", "timestamp":
>> {"microseconds": "USECS", "seconds": "SECS"}}
>> {"data": {"status": "completed"}, "event": "MIGRATION", "timestamp":
>> {"microseconds": "USECS", "seconds": "SECS"}}
>> Gracefully ending the `drive-mirror` job on source...
>
> You got the same failure on mst's pull request, so this seems to be
> unrelated to the pull request at least.
>
> Maybe it is related to us using different test runners now and the test
> isn't working right there?
>
> I tried to reproduce locally with the same options as the disable-tcg CI
> job uses, but it always passes. Juan, do you have an idea what it could
> mean if on some CI system the "postcopy-active" event is missing?
The only thing that I can think by memory is that the machine go so fast
that we end migration on precopy and don't wait until postcopy. But
that is a wild guess, will try to take a look at the failure later.
> Kevin
Regards, Juan.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v3 00/21] Block layer patches
2023-05-19 19:11 ` Richard Henderson
@ 2023-05-22 7:45 ` Kevin Wolf
2023-05-22 16:04 ` Richard Henderson
0 siblings, 1 reply; 7+ messages in thread
From: Kevin Wolf @ 2023-05-22 7:45 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-block, qemu-devel
Am 19.05.2023 um 21:11 hat Richard Henderson geschrieben:
> On 5/19/23 10:18, Kevin Wolf wrote:
> > The following changes since commit d009607d08d22f91ca399b72828c6693855e7325:
> >
> > Revert "arm/kvm: add support for MTE" (2023-05-19 08:01:15 -0700)
> >
> > are available in the Git repository at:
> >
> > https://repo.or.cz/qemu/kevin.git tags/for-upstream
> >
> > for you to fetch changes up to 95fdd8db61848d31fde1d9b32da7f3f76babfa25:
> >
> > iotests: Test commit with iothreads and ongoing I/O (2023-05-19 19:16:53 +0200)
> >
> > ----------------------------------------------------------------
> > Block layer patches
> >
> > - qcow2 spec: Rename "zlib" compression to "deflate"
> > - Honour graph read lock even in the main thread + prerequisite fixes
> > - aio-posix: do not nest poll handlers (fixes infinite recursion)
> > - Refactor QMP blockdev transactions
> > - graph-lock: Disable locking for now
> > - iotests/245: Check if 'compress' driver is available
>
> Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/8.1 as
> appropriate.
Hm, I just pulled, and it doesn't seem to be actually there in master?
Kevin
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PULL v3 00/21] Block layer patches
2023-05-22 7:45 ` Kevin Wolf
@ 2023-05-22 16:04 ` Richard Henderson
0 siblings, 0 replies; 7+ messages in thread
From: Richard Henderson @ 2023-05-22 16:04 UTC (permalink / raw)
To: Kevin Wolf; +Cc: qemu-block, qemu-devel
On 5/22/23 00:45, Kevin Wolf wrote:
> Am 19.05.2023 um 21:11 hat Richard Henderson geschrieben:
>> On 5/19/23 10:18, Kevin Wolf wrote:
>>> The following changes since commit d009607d08d22f91ca399b72828c6693855e7325:
>>>
>>> Revert "arm/kvm: add support for MTE" (2023-05-19 08:01:15 -0700)
>>>
>>> are available in the Git repository at:
>>>
>>> https://repo.or.cz/qemu/kevin.git tags/for-upstream
>>>
>>> for you to fetch changes up to 95fdd8db61848d31fde1d9b32da7f3f76babfa25:
>>>
>>> iotests: Test commit with iothreads and ongoing I/O (2023-05-19 19:16:53 +0200)
>>>
>>> ----------------------------------------------------------------
>>> Block layer patches
>>>
>>> - qcow2 spec: Rename "zlib" compression to "deflate"
>>> - Honour graph read lock even in the main thread + prerequisite fixes
>>> - aio-posix: do not nest poll handlers (fixes infinite recursion)
>>> - Refactor QMP blockdev transactions
>>> - graph-lock: Disable locking for now
>>> - iotests/245: Check if 'compress' driver is available
>>
>> Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/8.1 as
>> appropriate.
>
> Hm, I just pulled, and it doesn't seem to be actually there in master?
I dunno what happened. Applied for real this time.
r~
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-05-22 16:05 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-19 17:18 [PULL v3 00/21] Block layer patches Kevin Wolf
2023-05-19 18:48 ` Richard Henderson
2023-05-19 19:19 ` Kevin Wolf
2023-05-19 20:55 ` Juan Quintela
2023-05-19 19:11 ` Richard Henderson
2023-05-22 7:45 ` Kevin Wolf
2023-05-22 16:04 ` Richard Henderson
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).