[PATCH 0/3 v2] mm: Batch page reclamation under shink_page_list

From: Tim Chen
Date: Mon Sep 10 2012 - 12:20:06 EST

This is the second version of the patch series. Thanks to Matthew Wilcox
for many valuable suggestions on improving the patches.

To do page reclamation in shrink_page_list function, there are two
locks taken on a page by page basis. One is the tree lock protecting
the radix tree of the page mapping and the other is the
mapping->i_mmap_mutex protecting the mapped
pages. I try to batch the operations on pages sharing the same lock
to reduce lock contentions. The first patch batch the operations protected by
tree lock while the second and third patch batch the operations protected by
the i_mmap_mutex.

I managed to get 14% throughput improvement when with a workload putting
heavy pressure of page cache by reading many large mmaped files
simultaneously on a 8 socket Westmere server.


Signed-off-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>

include/linux/rmap.h | 8 +++-
mm/rmap.c | 110 ++++++++++++++++++++++++++++++++++---------------
mm/vmscan.c | 113 +++++++++++++++++++++++++++++++++++++++++++++-----
3 files changed, 185 insertions(+), 46 deletions(-)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/