On Fri, 05 Oct 2007 02:12:30 +0200 Miklos Szeredi <miklos@szeredi.hu> wrote:
fuse is trying to do something which page reclaim was not designed for.
Stuff broke.
Well yes. But we need to work out how, without re-breaking the thing which
throttle_vm_writeout() fixed.
Bear in mind that the same problem will occur for the 16MB ZONE_DMA, and
we cannot limit the system-wide dirty-memory threshold to 12MB.
iow, throttle_vm_writeout() needs to become zone-aware. Then it only
throttles when, say, 80% of ZONE_FOO is under writeback.
Except I don't think that'll fix the problem 100%: if your fuse kernel
component somehow manages to put 80% of ZONE_FOO under writeback (and
remmeber this might be only 12MB on a 16GB machine) then we get stuck again
- the fuse server process (is that the correct terminology, btw?) ends up
waiting upon itself.
I'll think about it a bit.
-