This patch series renames bdrv_co_drain to bdrv_co_drain_begin and adds a new
bdrv_co_drain_end callback to match bdrv_drained_begin/end and
drained_begin/end of BdrvChild. This is needed because the throttle driver
(block/throttle.c) needs a way to mark the end of the drain in order to toggle
io_limits_disabled correctly.
Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr>
"block/throttle-groups.c: allocate RestartData on the heap"
Which fixes a coroutine crash in block/throttle-groups.c
v3:
fixed commit message typo in first patch [Fam]
rephrased doc comment based on mailing discussion
v2:
add doc for callbacks and change order of request polling for completion
[Stefan]
Manos Pitsidianakis (3):
block: add bdrv_co_drain_end callback
block: rename bdrv_co_drain to bdrv_co_drain_begin
block/throttle.c: add bdrv_co_drain_begin/end callbacks
include/block/block_int.h | 13 ++++++++++---
block/io.c | 48 +++++++++++++++++++++++++++++++++--------------
block/qed.c | 6 +++---
block/throttle.c | 18 ++++++++++++++++++
4 files changed, 65 insertions(+), 20 deletions(-)
--
2.11.0
On Sat, Sep 23, 2017 at 02:14:08PM +0300, Manos Pitsidianakis wrote: > This patch series renames bdrv_co_drain to bdrv_co_drain_begin and adds a new > bdrv_co_drain_end callback to match bdrv_drained_begin/end and > drained_begin/end of BdrvChild. This is needed because the throttle driver > (block/throttle.c) needs a way to mark the end of the drain in order to toggle > io_limits_disabled correctly. > > Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr> > "block/throttle-groups.c: allocate RestartData on the heap" > Which fixes a coroutine crash in block/throttle-groups.c > > v3: > fixed commit message typo in first patch [Fam] > rephrased doc comment based on mailing discussion > v2: > add doc for callbacks and change order of request polling for completion > [Stefan] > > Manos Pitsidianakis (3): > block: add bdrv_co_drain_end callback > block: rename bdrv_co_drain to bdrv_co_drain_begin > block/throttle.c: add bdrv_co_drain_begin/end callbacks > > include/block/block_int.h | 13 ++++++++++--- > block/io.c | 48 +++++++++++++++++++++++++++++++++-------------- > block/qed.c | 6 +++--- > block/throttle.c | 18 ++++++++++++++++++ > 4 files changed, 65 insertions(+), 20 deletions(-) > > -- > 2.11.0 > Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan
On Sat, Sep 23, 2017 at 02:14:08PM +0300, Manos Pitsidianakis wrote:
> This patch series renames bdrv_co_drain to bdrv_co_drain_begin and adds a new
> bdrv_co_drain_end callback to match bdrv_drained_begin/end and
> drained_begin/end of BdrvChild. This is needed because the throttle driver
> (block/throttle.c) needs a way to mark the end of the drain in order to toggle
> io_limits_disabled correctly.
>
> Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr>
> "block/throttle-groups.c: allocate RestartData on the heap"
> Which fixes a coroutine crash in block/throttle-groups.c
>
> v3:
> fixed commit message typo in first patch [Fam]
> rephrased doc comment based on mailing discussion
> v2:
> add doc for callbacks and change order of request polling for completion
> [Stefan]
>
> Manos Pitsidianakis (3):
> block: add bdrv_co_drain_end callback
> block: rename bdrv_co_drain to bdrv_co_drain_begin
> block/throttle.c: add bdrv_co_drain_begin/end callbacks
>
> include/block/block_int.h | 13 ++++++++++---
> block/io.c | 48 +++++++++++++++++++++++++++++++++--------------
> block/qed.c | 6 +++---
> block/throttle.c | 18 ++++++++++++++++++
> 4 files changed, 65 insertions(+), 20 deletions(-)
Oops, this seems to cause a qemu-iotests failure. Please take a look:
$ ./check -qcow2 184
184 0s ... - output mismatch (see 184.out.bad)
--- /home/stefanha/qemu/tests/qemu-iotests/184.out 2017-09-19 14:51:46.673854437 +0100
+++ 184.out.bad 2017-09-26 11:13:06.946610239 +0100
@@ -142,6 +142,9 @@
"guest": false
}
}
+./common.config: line 118: 9196 Segmentation fault (core dumped) ( if [ -n "${QEMU_NEED_PID}" ]; then
+ echo $BASHPID > "${QEMU_TEST_DIR}/qemu-${_QEMU_HANDLE}.pid";
+fi; exec "$QEMU_PROG" $QEMU_OPTIONS "$@" )
On Tue, Sep 26, 2017 at 12:00:24PM +0100, Stefan Hajnoczi wrote:
>On Sat, Sep 23, 2017 at 02:14:08PM +0300, Manos Pitsidianakis wrote:
>> This patch series renames bdrv_co_drain to bdrv_co_drain_begin and adds a new
>> bdrv_co_drain_end callback to match bdrv_drained_begin/end and
>> drained_begin/end of BdrvChild. This is needed because the throttle driver
>> (block/throttle.c) needs a way to mark the end of the drain in order to toggle
>> io_limits_disabled correctly.
>>
>> Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr>
>> "block/throttle-groups.c: allocate RestartData on the heap"
>> Which fixes a coroutine crash in block/throttle-groups.c
>>
>> v3:
>> fixed commit message typo in first patch [Fam]
>> rephrased doc comment based on mailing discussion
>> v2:
>> add doc for callbacks and change order of request polling for completion
>> [Stefan]
>>
>> Manos Pitsidianakis (3):
>> block: add bdrv_co_drain_end callback
>> block: rename bdrv_co_drain to bdrv_co_drain_begin
>> block/throttle.c: add bdrv_co_drain_begin/end callbacks
>>
>> include/block/block_int.h | 13 ++++++++++---
>> block/io.c | 48 +++++++++++++++++++++++++++++++++--------------
>> block/qed.c | 6 +++---
>> block/throttle.c | 18 ++++++++++++++++++
>> 4 files changed, 65 insertions(+), 20 deletions(-)
>
>Oops, this seems to cause a qemu-iotests failure. Please take a look:
>
>$ ./check -qcow2 184
>184 0s ... - output mismatch (see 184.out.bad)
>--- /home/stefanha/qemu/tests/qemu-iotests/184.out 2017-09-19 14:51:46.673854437 +0100
>+++ 184.out.bad 2017-09-26 11:13:06.946610239 +0100
>@@ -142,6 +142,9 @@
> "guest": false
> }
> }
>+./common.config: line 118: 9196 Segmentation fault (core dumped) ( if [ -n "${QEMU_NEED_PID}" ]; then
>+ echo $BASHPID > "${QEMU_TEST_DIR}/qemu-${_QEMU_HANDLE}.pid";
>+fi; exec "$QEMU_PROG" $QEMU_OPTIONS "$@" )
>
Hey Stefan,
This is fixed in
>> Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr>
>> "block/throttle-groups.c: allocate RestartData on the heap"
>> Which fixes a coroutine crash in block/throttle-groups.c
Which I sent before this series and is in Kevin's branch.
Am 26.09.2017 um 14:44 hat Manos Pitsidianakis geschrieben:
> On Tue, Sep 26, 2017 at 12:00:24PM +0100, Stefan Hajnoczi wrote:
> > On Sat, Sep 23, 2017 at 02:14:08PM +0300, Manos Pitsidianakis wrote:
> > > This patch series renames bdrv_co_drain to bdrv_co_drain_begin and adds a new
> > > bdrv_co_drain_end callback to match bdrv_drained_begin/end and
> > > drained_begin/end of BdrvChild. This is needed because the throttle driver
> > > (block/throttle.c) needs a way to mark the end of the drain in order to toggle
> > > io_limits_disabled correctly.
> > >
> > > Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr>
> > > "block/throttle-groups.c: allocate RestartData on the heap"
> > > Which fixes a coroutine crash in block/throttle-groups.c
> > >
> > > v3:
> > > fixed commit message typo in first patch [Fam]
> > > rephrased doc comment based on mailing discussion
> > > v2:
> > > add doc for callbacks and change order of request polling for completion
> > > [Stefan]
> > >
> > > Manos Pitsidianakis (3):
> > > block: add bdrv_co_drain_end callback
> > > block: rename bdrv_co_drain to bdrv_co_drain_begin
> > > block/throttle.c: add bdrv_co_drain_begin/end callbacks
> > >
> > > include/block/block_int.h | 13 ++++++++++---
> > > block/io.c | 48 +++++++++++++++++++++++++++++++++--------------
> > > block/qed.c | 6 +++---
> > > block/throttle.c | 18 ++++++++++++++++++
> > > 4 files changed, 65 insertions(+), 20 deletions(-)
> >
> > Oops, this seems to cause a qemu-iotests failure. Please take a look:
> >
> > $ ./check -qcow2 184
> > 184 0s ... - output mismatch (see 184.out.bad)
> > --- /home/stefanha/qemu/tests/qemu-iotests/184.out 2017-09-19 14:51:46.673854437 +0100
> > +++ 184.out.bad 2017-09-26 11:13:06.946610239 +0100
> > @@ -142,6 +142,9 @@
> > "guest": false
> > }
> > }
> > +./common.config: line 118: 9196 Segmentation fault (core dumped) ( if [ -n "${QEMU_NEED_PID}" ]; then
> > + echo $BASHPID > "${QEMU_TEST_DIR}/qemu-${_QEMU_HANDLE}.pid";
> > +fi; exec "$QEMU_PROG" $QEMU_OPTIONS "$@" )
> >
>
> Hey Stefan,
>
> This is fixed in
> > > Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr>
> > > "block/throttle-groups.c: allocate RestartData on the heap"
> > > Which fixes a coroutine crash in block/throttle-groups.c
>
> Which I sent before this series and is in Kevin's branch.
Stefan, the fix is in master by now, so you can stage this series again.
(Or I can take it, if you prefer.)
Kevin
On Sat, Sep 23, 2017 at 02:14:08PM +0300, Manos Pitsidianakis wrote: > This patch series renames bdrv_co_drain to bdrv_co_drain_begin and adds a new > bdrv_co_drain_end callback to match bdrv_drained_begin/end and > drained_begin/end of BdrvChild. This is needed because the throttle driver > (block/throttle.c) needs a way to mark the end of the drain in order to toggle > io_limits_disabled correctly. > > Based-on: <20170918202529.28379-1-el13635@mail.ntua.gr> > "block/throttle-groups.c: allocate RestartData on the heap" > Which fixes a coroutine crash in block/throttle-groups.c > > v3: > fixed commit message typo in first patch [Fam] > rephrased doc comment based on mailing discussion > v2: > add doc for callbacks and change order of request polling for completion > [Stefan] > > Manos Pitsidianakis (3): > block: add bdrv_co_drain_end callback > block: rename bdrv_co_drain to bdrv_co_drain_begin > block/throttle.c: add bdrv_co_drain_begin/end callbacks > > include/block/block_int.h | 13 ++++++++++--- > block/io.c | 48 +++++++++++++++++++++++++++++++++-------------- > block/qed.c | 6 +++--- > block/throttle.c | 18 ++++++++++++++++++ > 4 files changed, 65 insertions(+), 20 deletions(-) > > -- > 2.11.0 > > Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan
© 2016 - 2026 Red Hat, Inc.