From 51fe77cdae4fa9e77f5ff7d9b0108802fb7aabed Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Wed, 5 Jun 2019 16:07:34 +0900 Subject: [PATCH] mmap()/shmget(): use Linux huge page size when not specified Fixes: 089b443 "mmap()/shmget(): use Linux default huge page size when not specified" Change-Id: If8043a0993d1131ea0344aa6d500b35c7a291884 --- kernel/syscall.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/syscall.c b/kernel/syscall.c index eb39e71e..f11fdbda 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -1689,6 +1689,9 @@ do_mmap(const uintptr_t addr0, const size_t len0, const int prot, if (flags & MAP_HUGETLB) { pgshift = (flags >> MAP_HUGE_SHIFT) & 0x3F; + if (!pgshift) { + pgshift = ihk_mc_get_linux_default_huge_page_shift(); + } p2align = pgshift - PAGE_SHIFT; } else if ((((flags & MAP_PRIVATE) && (flags & MAP_ANONYMOUS)) @@ -5709,6 +5712,9 @@ int do_shmget(const key_t key, const size_t size, const int shmflg) if (shmflg & SHM_HUGETLB) { pgshift = (shmflg >> SHM_HUGE_SHIFT) & 0x3F; + if (!pgshift) { + pgshift = ihk_mc_get_linux_default_huge_page_shift(); + } } else if (proc->thp_disable) { pgshift = PAGE_SHIFT; } else {