|
From: | sochin . jiang |
Subject: | [Qemu-block] Question: an IO hang problem |
Date: | Tue, 13 Mar 2018 17:38:09 +0800 |
User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
Hi, guys, Recently, I encountered an IO hang problem in occasion which I cannot reproduce it now. I analyzed this problem carefully, the critical stack is as
following:
After reading the codes in linux-aio.c(see ioq_submit() function), I found two situations could lead us here. 1) no AIOs are in flight(s->ioq.in_flight is 0) and another
call to io_submit returns -EAGAIN 2) no AIOs are in flight(s->ioq.in_flight is 0) and
s->io_q.pending IOs reach to MAX_EVENTS at once In both the two situations above, the do{...}while loop breaks out and set s->io_q.blocked true. After that, AIO completion callback will never be called, ioq_submit() either, all pended requests will hang.
Is there a proper way we can fix this while do not affect(stuck) the guest ? Hope for a reply, thanks.
Sochin.
|
[Prev in Thread] | Current Thread | [Next in Thread] |