[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Question: an IO hang problem
From: |
sochin . jiang |
Subject: |
[Qemu-devel] 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.
- [Qemu-devel] Question: an IO hang problem,
sochin . jiang <=