On Mon, 1 Apr 2013 21:26:05 +0800 Shaohua Li <shli@xxxxxxxxxx> wrote: > In page reclaim, huge page is split. split_huge_page() adds tail pages to LRU > list. Since we are reclaiming a huge page, it's better we reclaim all subpages > of the huge page instead of just the head page. This patch adds split tail > pages to shrink page list so the tail pages can be reclaimed soon. > > Before this patch, run a swap workload: > thp_fault_alloc 3492 > thp_fault_fallback 608 > thp_collapse_alloc 6 > thp_collapse_alloc_failed 0 > thp_split 916 > > With this patch: > thp_fault_alloc 4085 > thp_fault_fallback 16 > thp_collapse_alloc 90 > thp_collapse_alloc_failed 0 > thp_split 1272 > > fallback allocation is reduced a lot. > > ... > > -int split_huge_page(struct page *page) > +int split_huge_page_to_list(struct page *page, struct list_head *list) While it's fresh, could you please prepare a covering comment describing this function? The meaning of the return value is particularly cryptic. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>