Re: [RFC] Reproducible OOM with partial workaround

From: Andrew Morton
Date: Fri Jan 11 2013 - 02:58:25 EST


On Fri, 11 Jan 2013 12:46:15 +1100 paul.szabo@xxxxxxxxxxxxx wrote:

> > ... I don't believe 64GB of RAM has _ever_ been booted on a 32-bit
> > kernel without either violating the ABI (3GB/1GB split) or doing
> > something that never got merged upstream ...
>
> Sorry to be so contradictory:
>
> psz@como:~$ uname -a
> Linux como.maths.usyd.edu.au 3.2.32-pk06.10-t01-i386 #1 SMP Sat Jan 5 18:34:25 EST 2013 i686 GNU/Linux
> psz@como:~$ free -l
> total used free shared buffers cached
> Mem: 64446900 4729292 59717608 0 15972 480520
> Low: 375836 304400 71436
> High: 64071064 4424892 59646172
> -/+ buffers/cache: 4232800 60214100
> Swap: 134217724 0 134217724
> psz@como:~$
>
> (though I would not know about violations).
>
> But OK, I take your point that I should move with the times.

Check /proc/slabinfo, see if all your lowmem got eaten up by buffer_heads.

If so, you *may* be able to work around this by setting
/proc/sys/vm/dirty_ratio really low, so the system keeps a minimum
amount of dirty pagecache around. Then, with luck, if we haven't
broken the buffer_heads_over_limit logic it in the past decade (we
probably have), the VM should be able to reclaim those buffer_heads.

Alternatively, use a filesystem which doesn't attach buffer_heads to
dirty pages. xfs or btrfs, perhaps.

--
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/