From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Wilcox Subject: [PATCH v1 1/7] thp: vma_adjust_trans_huge(): adjust file-backed VMA too Date: Wed, 8 Oct 2014 09:25:23 -0400 Message-ID: <1412774729-23956-2-git-send-email-matthew.r.wilcox@intel.com> References: <1412774729-23956-1-git-send-email-matthew.r.wilcox@intel.com> Cc: "Kirill A. Shutemov" , willy@linux.intel.com To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.krenel.org, linux-mm@kvack.org Return-path: Received: from mga14.intel.com ([192.55.52.115]:23393 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755526AbaJHNZp (ORCPT ); Wed, 8 Oct 2014 09:25:45 -0400 In-Reply-To: <1412774729-23956-1-git-send-email-matthew.r.wilcox@intel.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: From: "Kirill A. Shutemov" Since we're going to have huge pages in page cache, we need to call adjust file-backed VMA, which potentially can contain huge pages. For now we call it for all VMAs. Probably later we will need to introduce a flag to indicate that the VMA has huge pages. Signed-off-by: Kirill A. Shutemov Acked-by: Hillf Danton --- include/linux/huge_mm.h | 11 +---------- mm/huge_memory.c | 2 +- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h index 63579cb..c4e050d 100644 --- a/include/linux/huge_mm.h +++ b/include/linux/huge_mm.h @@ -122,7 +122,7 @@ extern void split_huge_page_pmd_mm(struct mm_struct *mm, unsigned long address, #endif extern int hugepage_madvise(struct vm_area_struct *vma, unsigned long *vm_flags, int advice); -extern void __vma_adjust_trans_huge(struct vm_area_struct *vma, +extern void vma_adjust_trans_huge(struct vm_area_struct *vma, unsigned long start, unsigned long end, long adjust_next); @@ -138,15 +138,6 @@ static inline int pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma, else return 0; } -static inline void vma_adjust_trans_huge(struct vm_area_struct *vma, - unsigned long start, - unsigned long end, - long adjust_next) -{ - if (!vma->anon_vma || vma->vm_ops) - return; - __vma_adjust_trans_huge(vma, start, end, adjust_next); -} static inline int hpage_nr_pages(struct page *page) { if (unlikely(PageTransHuge(page))) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index d9a21d06..2a56ddd 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2940,7 +2940,7 @@ static void split_huge_page_address(struct mm_struct *mm, split_huge_page_pmd_mm(mm, address, pmd); } -void __vma_adjust_trans_huge(struct vm_area_struct *vma, +void vma_adjust_trans_huge(struct vm_area_struct *vma, unsigned long start, unsigned long end, long adjust_next) -- 2.1.0