aboutsummaryrefslogtreecommitdiffstats
path: root/mm/huge_memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/huge_memory.c')
-rw-r--r--mm/huge_memory.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 8677dbf31c2e..914216733e0a 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1282,7 +1282,7 @@ int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
1282 struct page *page; 1282 struct page *page;
1283 unsigned long haddr = addr & HPAGE_PMD_MASK; 1283 unsigned long haddr = addr & HPAGE_PMD_MASK;
1284 int page_nid = -1, this_nid = numa_node_id(); 1284 int page_nid = -1, this_nid = numa_node_id();
1285 int target_nid; 1285 int target_nid, last_nid = -1;
1286 bool page_locked; 1286 bool page_locked;
1287 bool migrated = false; 1287 bool migrated = false;
1288 1288
@@ -1293,6 +1293,7 @@ int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
1293 page = pmd_page(pmd); 1293 page = pmd_page(pmd);
1294 BUG_ON(is_huge_zero_page(page)); 1294 BUG_ON(is_huge_zero_page(page));
1295 page_nid = page_to_nid(page); 1295 page_nid = page_to_nid(page);
1296 last_nid = page_nid_last(page);
1296 count_vm_numa_event(NUMA_HINT_FAULTS); 1297 count_vm_numa_event(NUMA_HINT_FAULTS);
1297 if (page_nid == this_nid) 1298 if (page_nid == this_nid)
1298 count_vm_numa_event(NUMA_HINT_FAULTS_LOCAL); 1299 count_vm_numa_event(NUMA_HINT_FAULTS_LOCAL);
@@ -1361,7 +1362,7 @@ out:
1361 page_unlock_anon_vma_read(anon_vma); 1362 page_unlock_anon_vma_read(anon_vma);
1362 1363
1363 if (page_nid != -1) 1364 if (page_nid != -1)
1364 task_numa_fault(page_nid, HPAGE_PMD_NR, migrated); 1365 task_numa_fault(last_nid, page_nid, HPAGE_PMD_NR, migrated);
1365 1366
1366 return 0; 1367 return 0;
1367} 1368}