linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch v2] hugetlb: correct page offset index for sharing pmd
@ 2012-08-04  6:08 Hillf Danton
  2012-08-06 13:24 ` Michal Hocko
  0 siblings, 1 reply; 7+ messages in thread
From: Hillf Danton @ 2012-08-04  6:08 UTC (permalink / raw)
  To: Michal Hocko; +Cc: Mel Gorman, Andrew Morton, Linux-MM, LKML, Hillf Danton

The computation of page offset index is incorrect to be used in scanning
prio tree, as huge page offset is required, and is fixed with well
defined routine.

Changes from v1
	o s/linear_page_index/linear_hugepage_index/ for clearer code
	o hp_idx variable added for less change


Signed-off-by: Hillf Danton <dhillf@gmail.com>
---

--- a/arch/x86/mm/hugetlbpage.c	Fri Aug  3 20:34:58 2012
+++ b/arch/x86/mm/hugetlbpage.c	Fri Aug  3 20:40:16 2012
@@ -62,6 +62,7 @@ static void huge_pmd_share(struct mm_str
 {
 	struct vm_area_struct *vma = find_vma(mm, addr);
 	struct address_space *mapping = vma->vm_file->f_mapping;
+	pgoff_t hp_idx;
 	pgoff_t idx = ((addr - vma->vm_start) >> PAGE_SHIFT) +
 			vma->vm_pgoff;
 	struct prio_tree_iter iter;
@@ -72,8 +73,10 @@ static void huge_pmd_share(struct mm_str
 	if (!vma_shareable(vma, addr))
 		return;

+	hp_idx = linear_hugepage_index(vma, addr);
+
 	mutex_lock(&mapping->i_mmap_mutex);
-	vma_prio_tree_foreach(svma, &iter, &mapping->i_mmap, idx, idx) {
+	vma_prio_tree_foreach(svma, &iter, &mapping->i_mmap, hp_idx, hp_idx) {
 		if (svma == vma)
 			continue;

--

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-08-16 12:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-04  6:08 [patch v2] hugetlb: correct page offset index for sharing pmd Hillf Danton
2012-08-06 13:24 ` Michal Hocko
2012-08-06 13:37   ` Hillf Danton
2012-08-06 15:54     ` Michal Hocko
2012-08-07 12:41       ` Hillf Danton
2012-08-15 23:03     ` Andrew Morton
2012-08-16 12:40       ` Hillf Danton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).