summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Morton <akpm@zip.com.au>2002-05-27 05:14:47 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-05-27 05:14:47 -0700
commitce677ce203cdb7bf92e0c1babcd2322446bb735e (patch)
tree54064ce3ff8db4c3b8a48d2e6dfafba1898088fc /include
parent9a0bd0e3d5b40e06ae1bc939117d9598bd4af6ba (diff)
[PATCH] move nr_active and nr_inactive into per-CPU page
It might reduce pagemap_lru_lock hold times a little, and is more consistent. I think all global page accounting is now inside page_states[].
Diffstat (limited to 'include')
-rw-r--r--include/linux/page-flags.h2
-rw-r--r--include/linux/swap.h10
2 files changed, 6 insertions, 6 deletions
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 23d6e6208432..93a6f27cb454 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -73,6 +73,8 @@ extern struct page_state {
unsigned long nr_dirty;
unsigned long nr_writeback;
unsigned long nr_pagecache;
+ unsigned long nr_active; /* on active_list LRU */
+ unsigned long nr_inactive; /* on inactive_list LRU */
} ____cacheline_aligned_in_smp page_states[NR_CPUS];
extern void get_page_state(struct page_state *ret);
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 3d87e4334851..7e20b3016c7f 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -102,8 +102,6 @@ extern unsigned long totalhigh_pages;
extern unsigned int nr_free_pages(void);
extern unsigned int nr_free_buffer_pages(void);
extern unsigned int nr_free_pagecache_pages(void);
-extern int nr_active_pages;
-extern int nr_inactive_pages;
extern void __remove_inode_page(struct page *);
/* Incomplete types for prototype declarations: */
@@ -191,27 +189,27 @@ do { \
DEBUG_LRU_PAGE(page); \
SetPageActive(page); \
list_add(&(page)->lru, &active_list); \
- nr_active_pages++; \
+ inc_page_state(nr_active); \
} while (0)
#define add_page_to_inactive_list(page) \
do { \
DEBUG_LRU_PAGE(page); \
list_add(&(page)->lru, &inactive_list); \
- nr_inactive_pages++; \
+ inc_page_state(nr_inactive); \
} while (0)
#define del_page_from_active_list(page) \
do { \
list_del(&(page)->lru); \
ClearPageActive(page); \
- nr_active_pages--; \
+ dec_page_state(nr_active); \
} while (0)
#define del_page_from_inactive_list(page) \
do { \
list_del(&(page)->lru); \
- nr_inactive_pages--; \
+ dec_page_state(nr_inactive); \
} while (0)
extern spinlock_t swaplock;