Re: [PATCH][1/2] adjust dirty threshold for lowmem-only mappings
From: Sami Farin
Date: Mon Dec 20 2004 - 13:03:20 EST
On Mon, Dec 20, 2004 at 10:46:48AM -0600, Robert_Hentosh@xxxxxxxx wrote:
> > On Mon, 20 Dec 2004, Rik van Riel wrote:
> >> Simply running "dd if=/dev/zero of=/dev/hd<one you can miss>"
> >> will result in OOM kills, with the dirty pagecache
> >> completely filling up lowmem. This patch is part 1 to
> >> fixing that problem.
> > What I forgot to say is that in order to trigger this OOM
> > Kill the dirty_limit of 40% needs to be more memory than
> > what fits in low memory. So this will work on x86 with
> > 4GB RAM, since the dirty_limit is 1.6GB, but the block
> > device cache cannot grow that big because it is restricted
> > to low memory.
> > This has the effect of all low memory being tied up in
> > Dirty page cache and userspace try_to_free_pages() skipping
> > the writeout of these pages because the block device is
> > congested.
> I am just confirming that this is a real problem. The problem
> more frequently shows up with block sizes above 4k on the
> dd and also showed up on some platforms with just a mke2fs
> on a slower device such as a USB hard drive.
> Rik's patch has solved the issue and has been running under
> stress (via ctcs) over the weekend without failure.
Rik's patch was broken (word-wrap by pine), but I patched
manually. However, I have tglx-oom-final patch which moved
out_of_memory call from vmscan.c:try_to_free_pages()
Basically, (sc.nr_congested < SWAP_CLUSTER_MAX) check is missing.
So, what's the best way to combine these two patches?
If you use mutt, the patch can be found with command
from your LKML mailbox.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/