Messages in this thread Patch in this message | | | From | Peter Zijlstra <> | Subject | [PATCH 16/34] mm: page-replace-init.patch | Date | Wed, 22 Mar 2006 23:34:20 +0100 |
| |
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Move initialization of the replacement policy's variables into the implementation.
API:
initialize the implementation's per zone variables
void page_replace_init_zone(struct zone *);
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
---
include/linux/mm_page_replace.h | 2 ++ init/main.c | 2 ++ mm/useonce.c | 15 +++++++++++++++ mm/page_alloc.c | 8 ++------ 4 files changed, 21 insertions(+), 6 deletions(-)
Index: linux-2.6/include/linux/mm_page_replace.h =================================================================== --- linux-2.6.orig/include/linux/mm_page_replace.h 2006-03-13 20:37:39.000000000 +0100 +++ linux-2.6/include/linux/mm_page_replace.h 2006-03-13 20:37:40.000000000 +0100 @@ -67,6 +67,8 @@ struct scan_control { #define prefetchw_prev_lru_page(_page, _base, _field) do { } while (0) #endif +extern void page_replace_init(void); +extern void page_replace_init_zone(struct zone *); /* void page_replace_hint_active(struct page *); */ /* void page_replace_hint_use_once(struct page *); */ extern void fastcall page_replace_add(struct page *); Index: linux-2.6/mm/useonce.c =================================================================== --- linux-2.6.orig/mm/useonce.c 2006-03-13 20:37:38.000000000 +0100 +++ linux-2.6/mm/useonce.c 2006-03-13 20:37:40.000000000 +0100 @@ -6,6 +6,21 @@ #include <linux/buffer_head.h> /* for try_to_release_page(), buffer_heads_over_limit */ +void __init page_replace_init(void) +{ + /* empty hook */ +} + +void __init page_replace_init_zone(struct zone *zone) +{ + INIT_LIST_HEAD(&zone->active_list); + INIT_LIST_HEAD(&zone->inactive_list); + zone->nr_scan_active = 0; + zone->nr_scan_inactive = 0; + zone->nr_active = 0; + zone->nr_inactive = 0; +} + static inline void add_page_to_inactive_list(struct zone *zone, struct page *page) { Index: linux-2.6/mm/page_alloc.c =================================================================== --- linux-2.6.orig/mm/page_alloc.c 2006-03-13 20:37:05.000000000 +0100 +++ linux-2.6/mm/page_alloc.c 2006-03-13 20:37:40.000000000 +0100 @@ -37,6 +37,7 @@ #include <linux/nodemask.h> #include <linux/vmalloc.h> #include <linux/mempolicy.h> +#include <linux/mm_page_replace.h> #include <asm/tlbflush.h> #include "internal.h" @@ -2075,12 +2076,7 @@ static void __init free_area_init_core(s zone->temp_priority = zone->prev_priority = DEF_PRIORITY; zone_pcp_init(zone); - INIT_LIST_HEAD(&zone->active_list); - INIT_LIST_HEAD(&zone->inactive_list); - zone->nr_scan_active = 0; - zone->nr_scan_inactive = 0; - zone->nr_active = 0; - zone->nr_inactive = 0; + page_replace_init_zone(zone); atomic_set(&zone->reclaim_in_progress, 0); if (!size) continue; Index: linux-2.6/init/main.c =================================================================== --- linux-2.6.orig/init/main.c 2006-03-13 20:37:05.000000000 +0100 +++ linux-2.6/init/main.c 2006-03-13 20:37:40.000000000 +0100 @@ -47,6 +47,7 @@ #include <linux/rmap.h> #include <linux/mempolicy.h> #include <linux/key.h> +#include <linux/mm_page_replace.h> #include <asm/io.h> #include <asm/bugs.h> @@ -507,6 +508,7 @@ asmlinkage void __init start_kernel(void #endif vfs_caches_init_early(); cpuset_init_early(); + page_replace_init(); mem_init(); kmem_cache_init(); setup_per_cpu_pageset(); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |