linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Rik van Riel <riel@redhat.com>
To: torvalds@osdl.org
Cc: linux-mm@kvack.org, a.p.zijlstra@chello.nl
Subject: [RFC] pageout IO problem and possible solution
Date: Mon, 17 Jul 2006 21:30:23 -0400	[thread overview]
Message-ID: <44BC39AF.7070600@redhat.com> (raw)

Something that I forgot during the VM summit yesterday.

One of the problems that network block devices and network swap can
have is that the VM can end up submitting too much I/O at once for
swapout.  This, in turn, could leave not enough free memory to finish
the IO, leaving the system stuck.

A related problem can happen with local disk subsystems, where we
submit a gazillion pages for writeout simultaneously and end up
causing horrible latency problems...

There are a number of solutions possible in the 2.6 kernel.

The first one would be to limit the amount of writes in progress
through the block layer ->congested test, but allowing less I/O
in flight if we are doing pageout and/or memory is low.

The second one would be to introduce the inactive_laundry list
from 2.4-rmap.  This eats a bit from the already scarce page
flags though.

Either of these approaches should work I suspect, as long as we
also throttle kswapd when there is too much I/O in flight.  I am
not sure the current kernel does this, or has an exception for
kswapd.

I am not sure what the threshold for I/O in flight should be
though.

Maybe let there be as many pages in flight as we have (free +
easily reclaimable free) pages around, to reduce the chance of
a deadlock to something really really low?

Maybe that is not high enough to achieve the best throughput
on some high-end I/O subsystems?

Any ideas?


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

                 reply	other threads:[~2006-07-18  1:30 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44BC39AF.7070600@redhat.com \
    --to=riel@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=linux-mm@kvack.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox