summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-06-23 18:53:40 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-23 18:53:40 -0700
commit2332dc7870b6f40eff03df88cbb03f4ffddbd086 (patch)
tree0ef0bd9ce2c1da83ca56ff7ba32d80b5abec1ce8 /include/linux
parentacba6041ff3f5dd7b4c88e012530db7474e3cdb8 (diff)
[PATCH] vmscan.c scan rate fixes
We've been futzing with the scan rates of the inactive and active lists far too much, and it's still not right (Anton reports interrupt-off times of over a second). - We have this logic in there from 2.4.early (at least) which tries to keep the inactive list 1/3rd the size of the active list. Or something. I really cannot see any logic behind this, so toss it out and change the arithmetic in there so that all pages on both lists have equal scan rates. - Chunk the work up so we never hold interrupts off for more that 32 pages worth of scanning. - Make the per-zone scan-count accumulators unsigned long rather than atomic_t. Mainly because atomic_t's could conceivably overflow, but also because access to these counters is racy-by-design anyway. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mmzone.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 373a13ba6f3f..2f41b635580b 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -118,8 +118,8 @@ struct zone {
spinlock_t lru_lock;
struct list_head active_list;
struct list_head inactive_list;
- atomic_t nr_scan_active;
- atomic_t nr_scan_inactive;
+ unsigned long nr_scan_active;
+ unsigned long nr_scan_inactive;
unsigned long nr_active;
unsigned long nr_inactive;
int all_unreclaimable; /* All pages pinned */