mmap()/shmget(): use Linux default huge page size when not specified
Change-Id: I8a9e3bed65ac1902adfaeaa254597dd30f540319
This commit is contained in:
committed by
Masamichi Takagi
parent
e9955a4bba
commit
089b443aaf
@ -1940,7 +1940,8 @@ SYSCALL_DECLARE(mmap)
|
||||
|
||||
if (hugeshift == 0) {
|
||||
/* default hugepage size */
|
||||
flags |= MAP_HUGE_SECOND_BLOCK;
|
||||
flags |= ihk_mc_get_linux_default_huge_page_shift() <<
|
||||
MAP_HUGE_SHIFT;
|
||||
} else if ((first_level_block_support &&
|
||||
hugeshift == MAP_HUGE_FIRST_BLOCK) ||
|
||||
(first_level_block_support &&
|
||||
@ -2017,7 +2018,8 @@ SYSCALL_DECLARE(shmget)
|
||||
|
||||
if (hugeshift == 0) {
|
||||
/* default hugepage size */
|
||||
shmflg |= SHM_HUGE_SECOND_BLOCK;
|
||||
shmflg |= ihk_mc_get_linux_default_huge_page_shift() <<
|
||||
MAP_HUGE_SHIFT;
|
||||
} else if ((first_level_block_support &&
|
||||
hugeshift == SHM_HUGE_FIRST_BLOCK) ||
|
||||
(first_level_block_support &&
|
||||
|
||||
@ -1683,7 +1683,9 @@ SYSCALL_DECLARE(mmap)
|
||||
if (flags & MAP_HUGETLB) {
|
||||
switch (flags & (0x3F << MAP_HUGE_SHIFT)) {
|
||||
case 0:
|
||||
flags |= MAP_HUGE_2MB; /* default hugepage size */
|
||||
/* default hugepage size */
|
||||
flags |= ihk_mc_get_linux_default_huge_page_shift() <<
|
||||
MAP_HUGE_SHIFT;
|
||||
break;
|
||||
|
||||
case MAP_HUGE_2MB:
|
||||
@ -1785,7 +1787,9 @@ SYSCALL_DECLARE(shmget)
|
||||
int hugeshift = shmflg & (0x3F << SHM_HUGE_SHIFT);
|
||||
|
||||
if (hugeshift == 0) {
|
||||
shmflg |= SHM_HUGE_2MB; /* default hugepage size */
|
||||
/* default hugepage size */
|
||||
shmflg |= ihk_mc_get_linux_default_huge_page_shift() <<
|
||||
MAP_HUGE_SHIFT;
|
||||
} else if (hugeshift == SHM_HUGE_2MB ||
|
||||
hugeshift == SHM_HUGE_1GB) {
|
||||
/*nop*/
|
||||
|
||||
2
ihk
2
ihk
Submodule ihk updated: ab078956b2...c505d9c25e
@ -211,6 +211,7 @@ struct smp_coreset;
|
||||
int ihk_mc_get_numa_node(int id, int *linux_numa_id, int *type);
|
||||
int ihk_mc_get_numa_distance(int i, int j);
|
||||
int ihk_mc_get_nr_memory_chunks(void);
|
||||
int ihk_mc_get_linux_default_huge_page_shift(void);
|
||||
int ihk_mc_get_memory_chunk(int id,
|
||||
unsigned long *start,
|
||||
unsigned long *end,
|
||||
|
||||
Reference in New Issue
Block a user