qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] qemu 2.0, deadlock in block-commit


From: Kevin Wolf
Subject: Re: [Qemu-devel] qemu 2.0, deadlock in block-commit
Date: Fri, 23 May 2014 14:29:06 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Am 23.05.2014 um 11:25 hat Marcin Gibuła geschrieben:
> On 23.05.2014 10:19, Paolo Bonzini wrote:
> >Il 22/05/2014 23:05, Marcin Gibuła ha scritto:
> >>Some more info.
> >>VM was doing lot of write IO during this test.
> >
> >QEMU is waiting for librados to complete I/O.  Can you reproduce it with
> >a different driver?
> 
> Hi,
> 
> I've reproduced it without RBD. Backtrace below:
> [...]

I see that you have a mix of aio=native and aio=threads. I can't say
much about the aio=native disks (perhaps try to reproduce without
them?), but there are definitely no worker threads for the other disks
that bdrv_drain_all() would have to wait for.

bdrv_requests_pending(), called by bdrv_requests_pending_all(), is the
function that determines for each of the disks in your VM if it still
has requests in flight that need to be completed. This function must
have returned true even though there is nothing to wait for.

Can you check which of its conditions led to this behaviour, and for
which disk it did? Either by setting a breakpoint there and
singlestepping through the function the next time it is called (if the
poll even has a timeout), or by inspecting the conditions manually in
gdb.

Kevin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]