Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:
I suspect something might still be broken. It may take a few
days of continuous testing to trigger the bug, though ...
It is possible to be those blk_congestion_wait paths, because
the queue simply won't be congested. So doing io_schedule_timeout
might help.
If the queue is not congested, blk_congestion_wait() will still sleep. See
freed_request().
I wonder if reducing the size of the write queue in CFQ would help
too? IIRC, it only really wants a huge read queue.
Surely it will help - but we need to be able to handle the situation
because memory can still become full of PageWriteback pages if there are
many disks.