Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752486AbcCaCZY (ORCPT ); Wed, 30 Mar 2016 22:25:24 -0400 Received: from TYO201.gate.nec.co.jp ([210.143.35.51]:58959 "EHLO tyo201.gate.nec.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750704AbcCaCZX convert rfc822-to-8bit (ORCPT ); Wed, 30 Mar 2016 22:25:23 -0400 From: Naoya Horiguchi To: Mike Kravetz CC: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "x86@kernel.org" , "Hugh Dickins" , Hillf Danton , "Kirill A. Shutemov" , David Rientjes , Dave Hansen , "Thomas Gleixner" , Ingo Molnar , "H. Peter Anvin" , Catalin Marinas , "Will Deacon" , Steve Capper , "Andrew Morton" Subject: Re: [RFC PATCH 1/2] mm/hugetlbfs: Attempt PUD_SIZE mapping alignment if PMD sharing enabled Thread-Topic: [RFC PATCH 1/2] mm/hugetlbfs: Attempt PUD_SIZE mapping alignment if PMD sharing enabled Thread-Index: AQHRiVgl0owZDbOvvEiZEahPYaQF/p9yPcMA Date: Thu, 31 Mar 2016 02:18:51 +0000 Message-ID: <20160331021850.GA4079@hori1.linux.bs1.fc.nec.co.jp> References: <1459213970-17957-1-git-send-email-mike.kravetz@oracle.com> <1459213970-17957-2-git-send-email-mike.kravetz@oracle.com> In-Reply-To: <1459213970-17957-2-git-send-email-mike.kravetz@oracle.com> Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.128.101.30] Content-Type: text/plain; charset="iso-2022-jp" Content-ID: Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1607 Lines: 44 On Mon, Mar 28, 2016 at 06:12:49PM -0700, Mike Kravetz wrote: > When creating a hugetlb mapping, attempt PUD_SIZE alignment if the > following conditions are met: > - Address passed to mmap or shmat is NULL > - The mapping is flaged as shared > - The mapping is at least PUD_SIZE in length > If a PUD_SIZE aligned mapping can not be created, then fall back to a > huge page size mapping. It would be kinder if the patch description includes why this change. Simply "to facilitate pmd sharing" is helpful for someone who read "git log". > > Signed-off-by: Mike Kravetz > --- > fs/hugetlbfs/inode.c | 29 +++++++++++++++++++++++++++-- > 1 file changed, 27 insertions(+), 2 deletions(-) > > diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c > index 540ddc9..22b2e38 100644 > --- a/fs/hugetlbfs/inode.c > +++ b/fs/hugetlbfs/inode.c > @@ -175,6 +175,17 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr, > struct vm_area_struct *vma; > struct hstate *h = hstate_file(file); > struct vm_unmapped_area_info info; > + bool pud_size_align = false; > + unsigned long ret_addr; > + > + /* > + * If PMD sharing is enabled, align to PUD_SIZE to facilitate > + * sharing. Only attempt alignment if no address was passed in, > + * flags indicate sharing and size is big enough. > + */ > + if (IS_ENABLED(CONFIG_ARCH_WANT_HUGE_PMD_SHARE) && > + !addr && flags & MAP_SHARED && len >= PUD_SIZE) > + pud_size_align = true; This code will have duplicates in the next patch, so how about checking this in a separate check routine? Thanks, Naoya Horiguchi