[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode
From: |
Christian Borntraeger |
Subject: |
Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode |
Date: |
Thu, 10 Mar 2016 10:40:17 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
On 03/10/2016 10:03 AM, Christian Borntraeger wrote:
> On 03/10/2016 02:51 AM, Fam Zheng wrote:
> [...]
>> The aio_poll() inside "blk_set_aio_context(s->conf->conf.blk, s->ctx)" looks
>> suspicious:
>>
>> main thread iothread
>> ----------------------------------------------------------------------------
>> virtio_blk_handle_output()
>> virtio_blk_data_plane_start()
>> vblk->dataplane_started = true;
>> blk_set_aio_context()
>> bdrv_set_aio_context()
>> bdrv_drain()
>> aio_poll()
>> <snip...>
>> virtio_blk_handle_output()
>> /* s->dataplane_started is true */
>> !!! -> virtio_blk_handle_request()
>> event_notifier_set(ioeventfd)
>> aio_poll()
>>
>> virtio_blk_handle_request()
>>
>> Christian, could you try the followed patch? The aio_poll above is replaced
>> with a "limited aio_poll" that doesn't disptach ioeventfd.
>>
>> (Note: perhaps moving "vblk->dataplane_started = true;" after
>> blk_set_aio_context() also *works around* this.)
>>
>> ---
>>
>> diff --git a/block.c b/block.c
>> index ba24b8e..e37e8f7 100644
>> --- a/block.c
>> +++ b/block.c
>> @@ -4093,7 +4093,9 @@ void bdrv_attach_aio_context(BlockDriverState *bs,
>>
>> void bdrv_set_aio_context(BlockDriverState *bs, AioContext *new_context)
>> {
>> - bdrv_drain(bs); /* ensure there are no in-flight requests */
>> + /* ensure there are no in-flight requests */
>> + bdrv_drained_begin(bs);
>> + bdrv_drained_end(bs);
>>
>> bdrv_detach_aio_context(bs);
>>
>
> That seems to do the trick.
Or not. Crashed again :-(
here is a trace with debugging enabled. The opaque value is zero, which is not
good.
#0 0x0000000010329f98 in bdrv_co_do_rw (opaque=0x0) at block/io.c:2170
#1 0x00000000103b33a2 in coroutine_trampoline (i0=1023, i1=1946159824) at
qemu/util/coroutine-ucontext.c:79
#2 0x000003ff7d9d150a in __makecontext_ret () from /lib64/libc.so.6
Still no idea why.
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Christian Borntraeger, 2016/03/09
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Paolo Bonzini, 2016/03/09
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Christian Borntraeger, 2016/03/09
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Paolo Bonzini, 2016/03/09
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Fam Zheng, 2016/03/09
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Christian Borntraeger, 2016/03/10
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode,
Christian Borntraeger <=
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Paolo Bonzini, 2016/03/11
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, tu bo, 2016/03/14
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Fam Zheng, 2016/03/15
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Cornelia Huck, 2016/03/15
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Paolo Bonzini, 2016/03/15
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, Fam Zheng, 2016/03/15
- Re: [Qemu-devel] [PATCH 5/8] virtio-blk: fix "disabled data plane" mode, tu bo, 2016/03/16