diff options
author | Kirill A. Shutemov <kirill.shutemov@linux.intel.com> | 2016-02-02 19:57:08 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-02-03 11:28:43 -0500 |
commit | a3d0a918502cc73af4f60da2cc4c5cac5573f183 (patch) | |
tree | 3b2bb9de1938738ca14b6c1748d9370a17e2bffa /mm/page_alloc.c | |
parent | 34229b277480f46c1e9a19f027f30b074512e68b (diff) |
thp: make split_queue per-node
Andrea Arcangeli suggested to make split queue per-node to improve
scalability. Let's do it.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Suggested-by: Andrea Arcangeli <aarcange@redhat.com>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Rik van Riel <riel@redhat.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: Jerome Marchand <jmarchan@redhat.com>
Cc: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 63358d9f9aa9..ea2c4d3e0c03 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -5210,6 +5210,11 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat) | |||
5210 | pgdat->numabalancing_migrate_nr_pages = 0; | 5210 | pgdat->numabalancing_migrate_nr_pages = 0; |
5211 | pgdat->numabalancing_migrate_next_window = jiffies; | 5211 | pgdat->numabalancing_migrate_next_window = jiffies; |
5212 | #endif | 5212 | #endif |
5213 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||
5214 | spin_lock_init(&pgdat->split_queue_lock); | ||
5215 | INIT_LIST_HEAD(&pgdat->split_queue); | ||
5216 | pgdat->split_queue_len = 0; | ||
5217 | #endif | ||
5213 | init_waitqueue_head(&pgdat->kswapd_wait); | 5218 | init_waitqueue_head(&pgdat->kswapd_wait); |
5214 | init_waitqueue_head(&pgdat->pfmemalloc_wait); | 5219 | init_waitqueue_head(&pgdat->pfmemalloc_wait); |
5215 | pgdat_page_ext_init(pgdat); | 5220 | pgdat_page_ext_init(pgdat); |