[PATCH RFC 12/15] mm: optimize books in update_page_reclaim_stat()
From: Konstantin Khlebnikov <hidden>
Date: 2012-02-15 22:57:59
Also in:
lkml
Subsystem:
memory management, memory management - mglru (multi-gen lru), memory management - swap, the rest · Maintainers:
Andrew Morton, Chris Li, Kairui Song, Linus Torvalds
Push book pointer into update_page_reclaim_stat() Signed-off-by: Konstantin Khlebnikov <redacted> --- mm/swap.c | 18 ++++++------------ 1 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/mm/swap.c b/mm/swap.c
index 677b529..e57c4c6 100644
--- a/mm/swap.c
+++ b/mm/swap.c@@ -267,12 +267,10 @@ void rotate_reclaimable_page(struct page *page) } } -static void update_page_reclaim_stat(struct zone *zone, struct page *page, +static void update_page_reclaim_stat(struct book *book, struct page *page, int file, int rotated) { - struct zone_reclaim_stat *reclaim_stat; - - reclaim_stat = &page_book(page)->reclaim_stat; + struct zone_reclaim_stat *reclaim_stat = &book->reclaim_stat; reclaim_stat->recent_scanned[file]++; if (rotated)
@@ -281,8 +279,6 @@ static void update_page_reclaim_stat(struct zone *zone, struct page *page, static void __activate_page(struct page *page, void *arg) { - struct zone *zone = page_zone(page); - if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) { int file = page_is_file_cache(page); int lru = page_lru_base_type(page);
@@ -295,7 +291,7 @@ static void __activate_page(struct page *page, void *arg) add_page_to_lru_list(book, page, lru); __count_vm_event(PGACTIVATE); - update_page_reclaim_stat(zone, page, file, 1); + update_page_reclaim_stat(book, page, file, 1); } }
@@ -432,7 +428,6 @@ static void lru_deactivate_fn(struct page *page, void *arg) { int lru, file; bool active; - struct zone *zone = page_zone(page); struct book *book; if (!PageLRU(page))
@@ -473,7 +468,7 @@ static void lru_deactivate_fn(struct page *page, void *arg) if (active) __count_vm_event(PGDEACTIVATE); - update_page_reclaim_stat(zone, page, file, 0); + update_page_reclaim_stat(book, page, file, 0); } /*
@@ -650,7 +645,7 @@ void lru_add_page_tail(struct zone* zone, active = 0; lru = LRU_INACTIVE_ANON; } - update_page_reclaim_stat(zone, page_tail, file, active); + update_page_reclaim_stat(book, page_tail, file, active); } else { SetPageUnevictable(page_tail); lru = LRU_UNEVICTABLE;
@@ -677,7 +672,6 @@ void lru_add_page_tail(struct zone* zone, static void __pagevec_lru_add_fn(struct page *page, void *arg) { enum lru_list lru = (enum lru_list)arg; - struct zone *zone = page_zone(page); struct book *book = page_book(page); int file = is_file_lru(lru); int active = is_active_lru(lru);
@@ -689,7 +683,7 @@ static void __pagevec_lru_add_fn(struct page *page, void *arg) SetPageLRU(page); if (active) SetPageActive(page); - update_page_reclaim_stat(zone, page, file, active); + update_page_reclaim_stat(book, page, file, active); add_page_to_lru_list(book, page, lru); } --
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>