diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-09-02 15:55:41 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-09-02 15:55:41 +0300 |
| commit | 6848cb3f6301db11e1925f4457c0b58c2d169ccf (patch) | |
| tree | ed687dbf4b23ec69234540fb6bd2cf3896d89311 /Zend/zend_alloc.c | |
| parent | 111bd5d8c45a9c44b2e39951e6a1a543a893f8bd (diff) | |
| download | php-git-6848cb3f6301db11e1925f4457c0b58c2d169ccf.tar.gz | |
Use regular huge pages instead of anonymous if available.
Diffstat (limited to 'Zend/zend_alloc.c')
| -rw-r--r-- | Zend/zend_alloc.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index ced3a77d70..9e7f5d194b 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -459,7 +459,18 @@ static void *zend_mm_mmap(size_t size) } return ptr; #else - void *ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON /*| MAP_POPULATE | MAP_HUGETLB*/, -1, 0); + void *ptr; + +#ifdef MAP_HUGETLB + if (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; + } + } +#endif + + ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); if (ptr == MAP_FAILED) { #if ZEND_MM_ERROR |
