diff options
| author | Andrew Morton <akpm@zip.com.au> | 2002-05-27 05:14:47 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-05-27 05:14:47 -0700 |
| commit | ce677ce203cdb7bf92e0c1babcd2322446bb735e (patch) | |
| tree | 54064ce3ff8db4c3b8a48d2e6dfafba1898088fc /include | |
| parent | 9a0bd0e3d5b40e06ae1bc939117d9598bd4af6ba (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.h | 2 | ||||
| -rw-r--r-- | include/linux/swap.h | 10 |
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; |
