On Wed, Nov 29, 2017 at 11:25:09AM +0100, Paolo Bonzini wrote:
> In order to avoid reentering a scheduled coroutine this series uses
> a QEMUTimer outside co_aio_sleep_ns. The timer callback just calls
> block_job_enter, and can be easily cancelled with timer_del.
>
> This fixes the outstanding issues with block jobs, without reverting
> the new checks that Jeff added.
>
> I have not run the full qemu-iotests suite, but the main affected
> tests (030, 041, 055, 097, 176, 200) work fine.
>
> Paolo
>
> Kevin Wolf (1):
> block: Expect graph changes in bdrv_parent_drained_begin/end
>
> Paolo Bonzini (3):
> blockjob: remove clock argument from block_job_sleep_ns
> blockjob: introduce block_job_do_yield
> blockjob: reimplement block_job_sleep_ns to allow cancellation
>
> block/backup.c | 4 +--
> block/commit.c | 2 +-
> block/io.c | 8 ++---
> block/mirror.c | 6 ++--
> block/stream.c | 2 +-
> blockjob.c | 76 ++++++++++++++++++++++++++++++++++----------
> include/block/blockjob.h | 5 ++-
> include/block/blockjob_int.h | 7 ++--
> tests/test-blockjob-txn.c | 2 +-
> 9 files changed, 79 insertions(+), 33 deletions(-)
>
> --
> 2.14.3
>
For the series:
Tested-By: Jeff Cody <jcody@redhat.com>