Re: [PATCH][1/2] adjust dirty threshold for lowmem-only mappings

William Lee Irwin III
2004-12-26T03:08:09Z

On Sat, Dec 25, 2004 at 11:07:10AM -0800, William Lee Irwin III wrote:
>> Lifting the artificial lowmem restrictions on blockdev mappings
>> (thereby nuking mapping->gfp_mask altogether) would resolve a number of
>> problems, not that anything making that much sense could ever happen.

On Sat, Dec 25, 2004 at 09:03:49PM +0100, Andrea Arcangeli wrote:
> I recall that such restriction is needed only for the buffercache, or
> you'd need to change _all_ the fs to kmap before accessing metadata
> (this is partly already happening for the dir in pagecache, but not for
> everything else).
> Whatever the problem is (assuming there's really a problem in the write
> throttling) it isn't going away by eliminating that restriction. Just
> think booting with mem=800M, it would run into the same issue that
> happens right now with the artificial limitation and >=1G of ram.
> 2.4 has the same limitation and it has no problem with write throttling
> (and from my part 2.6 is working fine too with the 4 patches I posted,
> it's not me being able to reproduce it).

The problem as posed is that the dirty memory limits are global, but
ZONE_NORMAL can be overwhelmed by dirty memory. bdev pagecache is as
surely subject to the zone limits as all others, but overwhelms them
and is not pressured because globally the thresholds are not tripped.

The sheer idiocy of physical placement restrictions imposed on behalf
of software is merely what's being exploited to artificially create
such a situation for a testcase and what users are tripping over daily.

-- wli