Skip to content

Commit 6848cb3

Browse files
committed
Use regular huge pages instead of anonymous if available.
1 parent 111bd5d commit 6848cb3

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

Zend/zend_alloc.c

+12-1
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,18 @@ static void *zend_mm_mmap(size_t size)
459459
}
460460
return ptr;
461461
#else
462-
void *ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON /*| MAP_POPULATE | MAP_HUGETLB*/, -1, 0);
462+
void *ptr;
463+
464+
#ifdef MAP_HUGETLB
465+
if (size == ZEND_MM_CHUNK_SIZE) {
466+
ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | MAP_HUGETLB, -1, 0);
467+
if (ptr != MAP_FAILED) {
468+
return ptr;
469+
}
470+
}
471+
#endif
472+
473+
ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
463474

464475
if (ptr == MAP_FAILED) {
465476
#if ZEND_MM_ERROR

0 commit comments

Comments
 (0)