[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v4] throttle-groups: drain before detaching Thro
From: |
Alberto Garcia |
Subject: |
Re: [Qemu-block] [PATCH v4] throttle-groups: drain before detaching ThrottleState |
Date: |
Mon, 13 Nov 2017 11:00:10 +0100 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) |
On Fri 10 Nov 2017 04:19:34 PM CET, Stefan Hajnoczi wrote:
> I/O requests hang after stop/cont commands at least since QEMU 2.10.0
> with -drive iops=100:
>
> (guest)$ dd if=/dev/zero of=/dev/vdb oflag=direct count=1000
> (qemu) stop
> (qemu) cont
> ...I/O is stuck...
>
> This happens because blk_set_aio_context() detaches the ThrottleState
> while requests may still be in flight:
>
> if (tgm->throttle_state) {
> throttle_group_detach_aio_context(tgm);
> throttle_group_attach_aio_context(tgm, new_context);
> }
>
> This patch encloses the detach/attach calls in a drained region so no
> I/O request is left hanging. Also add assertions so we don't make the
> same mistake again in the future.
>
> Reported-by: Yongxue Hong <address@hidden>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Berto