From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kirill A. Shutemov" Subject: [PATCHv3, RFC 23/34] thp, mm: split huge page on mmap file page Date: Fri, 5 Apr 2013 14:59:47 +0300 Message-ID: <1365163198-29726-24-git-send-email-kirill.shutemov@linux.intel.com> References: <1365163198-29726-1-git-send-email-kirill.shutemov@linux.intel.com> Cc: Al Viro , Hugh Dickins , Wu Fengguang , Jan Kara , Mel Gorman , linux-mm@kvack.org, Andi Kleen , Matthew Wilcox , "Kirill A. Shutemov" , Hillf Danton , Dave Hansen , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" To: Andrea Arcangeli , Andrew Morton Return-path: In-Reply-To: <1365163198-29726-1-git-send-email-kirill.shutemov@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org From: "Kirill A. Shutemov" We are not ready to mmap file-backed tranparent huge pages. Let's split them on fault attempt. Later in the patchset we'll implement mmap() properly and this code path be used for fallback cases. Signed-off-by: Kirill A. Shutemov --- mm/filemap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/filemap.c b/mm/filemap.c index 3296f5c..6f0e3be 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1683,6 +1683,8 @@ retry_find: goto no_cached_page; } + if (PageTransCompound(page)) + split_huge_page(compound_trans_head(page)); if (!lock_page_or_retry(page, vma->vm_mm, vmf->flags)) { page_cache_release(page); return ret | VM_FAULT_RETRY; -- 1.7.10.4