[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 4/4] blockjob: reimplement block_job_sleep_ns to
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-block] [PATCH 4/4] blockjob: reimplement block_job_sleep_ns to allow cancellation |
Date: |
Wed, 29 Nov 2017 14:07:37 +0000 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
On Wed, Nov 29, 2017 at 11:25:13AM +0100, Paolo Bonzini wrote:
> This reverts the effects of commit 4afeffc857 ("blockjob: do not allow
> coroutine double entry or entry-after-completion", 2017-11-21)
>
> This fixed the symptom of a bug rather than the root cause. Canceling the
> wait on a sleeping blockjob coroutine is generally fine, we just need to
> make it work correctly across AioContexts. To do so, use a QEMUTimer
> that calls block_job_enter. Use a mutex to ensure that block_job_enter
> synchronizes correctly with block_job_sleep_ns.
>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> blockjob.c | 57
> +++++++++++++++++++++++++++++++++++---------
> include/block/blockjob.h | 5 +++-
> include/block/blockjob_int.h | 4 ++--
> 3 files changed, 52 insertions(+), 14 deletions(-)
Reviewed-by: Stefan Hajnoczi <address@hidden>
signature.asc
Description: PGP signature