[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJd=RBC9HhKh5Q0-yXi3W0x3guXJPFz4BNsniyOFmp0TjBdFqg@mail.gmail.com>
Date: Sat, 4 Aug 2012 14:08:31 +0800
From: Hillf Danton <dhillf@...il.com>
To: Michal Hocko <mhocko@...e.cz>
Cc: Mel Gorman <mgorman@...e.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Linux-MM <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>,
Hillf Danton <dhillf@...il.com>
Subject: [patch v2] hugetlb: correct page offset index for sharing pmd
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@...il.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;
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists