diff options
| author | Andrew Morton <akpm@digeo.com> | 2002-10-31 04:09:37 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-10-31 04:09:37 -0800 |
| commit | f9a316fa9099053a299851762aedbf12881cff42 (patch) | |
| tree | 13c602e1b34dfdd5af79dc473ab4c5f814016835 /include/linux/cache.h | |
| parent | 1bbb1949d7e25c69ecda368cc0b8b2e4e893e5ce (diff) | |
[PATCH] strip pagecache from to-be-reaped inodes
With large highmem machines and many small cached files it is possible
to encounter ZONE_NORMAL allocation failures. This can be demonstrated
with a large number of one-byte files on a 7G machine.
All lowmem is filled with icache and all those inodes have a small
amount of highmem pagecache which makes them unfreeable.
The patch strips the pagecache from inodes as they come off the tail of
the inode_unused list.
I play tricks in there peeking at the head of the inode_unused list to
pick up the inode again after running iput(). The alternatives seemed
to involve more widespread changes.
Or running invalidate_inode_pages() under inode_lock which would be a
bad thing from a scheduling latency and lock contention point of view.
Diffstat (limited to 'include/linux/cache.h')
0 files changed, 0 insertions, 0 deletions
