From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx134.postini.com [74.125.245.134]) by kanga.kvack.org (Postfix) with SMTP id 1E9EA6B0002 for ; Thu, 23 May 2013 07:36:44 -0400 (EDT) Received: by mail-oa0-f47.google.com with SMTP id m1so4272086oag.34 for ; Thu, 23 May 2013 04:36:43 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <1368321816-17719-40-git-send-email-kirill.shutemov@linux.intel.com> References: <1368321816-17719-1-git-send-email-kirill.shutemov@linux.intel.com> <1368321816-17719-40-git-send-email-kirill.shutemov@linux.intel.com> Date: Thu, 23 May 2013 19:36:43 +0800 Message-ID: Subject: Re: [PATCHv4 39/39] thp: map file-backed huge pages on fault From: Hillf Danton Content-Type: text/plain; charset=UTF-8 Sender: owner-linux-mm@kvack.org List-ID: To: "Kirill A. Shutemov" Cc: Andrea Arcangeli , Andrew Morton , Al Viro , Hugh Dickins , Wu Fengguang , Jan Kara , Mel Gorman , linux-mm@kvack.org, Andi Kleen , Matthew Wilcox , "Kirill A. Shutemov" , Dave Hansen , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org On Sun, May 12, 2013 at 9:23 AM, Kirill A. Shutemov wrote: > From: "Kirill A. Shutemov" > > Look like all pieces are in place, we can map file-backed huge-pages > now. > > Signed-off-by: Kirill A. Shutemov > --- > include/linux/huge_mm.h | 4 +++- > mm/memory.c | 5 ++++- > 2 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > index f4d6626..903f097 100644 > --- a/include/linux/huge_mm.h > +++ b/include/linux/huge_mm.h > @@ -78,7 +78,9 @@ extern bool is_vma_temporary_stack(struct vm_area_struct *vma); > (1< ((__vma)->vm_flags & VM_HUGEPAGE))) && \ > !((__vma)->vm_flags & VM_NOHUGEPAGE) && \ > - !is_vma_temporary_stack(__vma)) > + !is_vma_temporary_stack(__vma) && \ > + (!(__vma)->vm_ops || \ > + mapping_can_have_hugepages((__vma)->vm_file->f_mapping))) Redefine, why? > #define transparent_hugepage_defrag(__vma) \ > ((transparent_hugepage_flags & \ > (1< diff --git a/mm/memory.c b/mm/memory.c > index ebff552..7fe9752 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -3939,10 +3939,13 @@ retry: > if (!pmd) > return VM_FAULT_OOM; > if (pmd_none(*pmd) && transparent_hugepage_enabled(vma)) { > - int ret = 0; > + int ret; > if (!vma->vm_ops) > ret = do_huge_pmd_anonymous_page(mm, vma, address, > pmd, flags); Ah vma->vm_ops is checked here, so else if (mapping_can_have_hugepages()) > + else > + ret = do_huge_linear_fault(mm, vma, address, > + pmd, flags); > if ((ret & VM_FAULT_FALLBACK) == 0) > return ret; > } else { > -- > 1.7.10.4 > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org