summaryrefslogtreecommitdiff
path: root/include/linux/cache.h
diff options
context:
space:
mode:
authorAndrew Morton <akpm@zip.com.au>2002-08-14 21:20:48 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-08-14 21:20:48 -0700
commit3aa1dc772547672e6ff453117d169c47a5a7cbc5 (patch)
tree07a44b9fc0650f1e15ee3a57ee35ec66a826f337 /include/linux/cache.h
parent6a95284048359fb4e1c96e02c6be0be9bdc71d6c (diff)
[PATCH] multithread page reclaim
This patch multithreads the main page reclaim function, shrink_cache(). This function used to run under pagemap_lru_lock. Instead, we grab that lock, put 32 pages from the LRU into a private list, drop the pagemap_lru_lock and then proceed to attempt to free those pages. Any pages which were succesfully reclaimed are batch-freed. Pages which were not reclaimed are re-added to the LRU. This patch reduces pagemap_lru_lock contention on the 4-way by a factor of thirty. The shrink_cache() code has been simplified somewhat. refill_inactive() was being called too often - often just to process two or three pages. Fiddled with that so it processes pages at the same rate, but works on 32 pages at a time. Added a couple of mark_page_accessed() calls into mm/memory.c from 2.4. They seem appropriate. Change the shrink_caches() logic so that it will still trickle through the active list (via refill_inactive) even if the inactive list is much larger than the active list.
Diffstat (limited to 'include/linux/cache.h')
0 files changed, 0 insertions, 0 deletions