Re: [RFC PATCH 1/2] mm/hugetlbfs: Attempt PUD_SIZE mapping alignment if PMD sharing enabled
From: Mike Kravetz <hidden>
Date: 2016-03-31 16:45:44
Also in:
lkml
On 03/30/2016 07:18 PM, Naoya Horiguchi wrote:
On Mon, Mar 28, 2016 at 06:12:49PM -0700, Mike Kravetz wrote:quoted
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".
Ok, will do.
quoted
Signed-off-by: Mike Kravetz <redacted> --- 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?
Good suggestion, thanks -- Mike Kravetz
Thanks, Naoya Horiguchi
-- 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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>