diff options
| author | Andrew Morton <akpm@zip.com.au> | 2002-08-14 21:20:48 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-08-14 21:20:48 -0700 |
| commit | 3aa1dc772547672e6ff453117d169c47a5a7cbc5 (patch) | |
| tree | 07a44b9fc0650f1e15ee3a57ee35ec66a826f337 /include/linux/msg.h | |
| parent | 6a95284048359fb4e1c96e02c6be0be9bdc71d6c (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/msg.h')
0 files changed, 0 insertions, 0 deletions
