Re: Kernel 2.6.8.1: swap storm of death - nr_requests > 1024 on swap partition

William Lee Irwin III
2004-08-29T22:17:57Z

Jens Axboe <axboe@suse.de> wrote:
>> Why you do see a difference is that when ->max_queued isn't valid, you
>> end up block a lot more in get_request_wait() because cfq_may_queue will
>> disallow you to queue a lot more than with the patch. Since other io
>> schedulers don't have these sort of checks, they behave like CFQ does
>> with the bug in blk_init_queue() fixed.

On Sun, Aug 29, 2004 at 01:59:17PM -0700, Andrew Morton wrote:
> The changlog wasn't that detailed ;)
> But yes, it's the large nr_requests which is tripping up swapout. I'm
> assuming that when a process exits with its anonymous memory still under
> swap I/O we're forgetting to actually free the pages when the I/O
> completes. So we end up with a ton of zero-ref swapcache pages on the LRU.
> I assume. Something odd's happening, that's for sure.

Maybe we need to be checking for this in end_swap_bio_write() or
rotate_reclaimable_page()?

-- wli