?? ??? 2016 PHP 7.0.6
- Core:
+ . Added ability to disable huge pages in Zend Memeory Manager through
+ the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0. (Dmitry)
. Fixed bug #71841 (EG(error_zval) is not handled well). (Laruence)
- ODBC:
# define PTR_FMT "0x%0.8lx"
#endif
+#ifdef MAP_HUGETLB
+int zend_mm_use_huge_pages = 1;
+#endif
+
/*
* Memory is retrived from OS by chunks of fixed size 2MB.
* Inside chunk it's managed by pages of fixed size 4096B.
void *ptr;
#ifdef MAP_HUGETLB
- if (size == ZEND_MM_CHUNK_SIZE) {
+ if (zend_mm_use_huge_pages && size == ZEND_MM_CHUNK_SIZE) {
ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | MAP_HUGETLB, -1, 0);
if (ptr != MAP_FAILED) {
return ptr;
alloc_globals->mm_heap->custom_heap.std._realloc = realloc;
return;
}
+#endif
+#ifdef MAP_HUGETLB
+ tmp = getenv("USE_ZEND_ALLOC_HUGE_PAGES");
+ if (tmp && !zend_atoi(tmp, 0)) {
+ zend_mm_use_huge_pages = 0;
+ }
#endif
ZEND_TSRMLS_CACHE_UPDATE();
alloc_globals->mm_heap = zend_mm_init();