diff options
author | David Carlier <devnexen@gmail.com> | 2019-07-27 13:33:48 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-09-17 12:54:46 +0200 |
commit | ce25fa0d245b1a5be84af8cc24790ad91286df47 (patch) | |
tree | a98de79a1bff9e92df27861a67a33d7866b45b08 /Zend | |
parent | 1a5f04688ebde8f7f149d8df993f4fc5386f064d (diff) | |
download | php-git-ce25fa0d245b1a5be84af8cc24790ad91286df47.tar.gz |
Monitoring anonymous pages on mac via vmmap tag
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_alloc.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 21dc9073e5..d3349fe395 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -111,6 +111,15 @@ static size_t _real_page_size = ZEND_MM_PAGE_SIZE; # undef HAVE_MREMAP #endif +#ifndef __APPLE__ +# define ZEND_MM_FD -1 +#else +/* Mac allows to track anonymous page via vmmap per TAG id. + * user land applications are allowed to take from 240 to 255. + */ +# define ZEND_MM_FD (250<<24) +#endif + #ifndef ZEND_MM_STAT # define ZEND_MM_STAT 1 /* track current and peak memory usage */ #endif @@ -417,7 +426,7 @@ static void *zend_mm_mmap_fixed(void *addr, size_t size) flags |= MAP_FIXED | MAP_EXCL; #endif /* MAP_FIXED leads to discarding of the old mapping, so it can't be used. */ - void *ptr = mmap(addr, size, PROT_READ | PROT_WRITE, flags /*| MAP_POPULATE | MAP_HUGETLB*/, -1, 0); + void *ptr = mmap(addr, size, PROT_READ | PROT_WRITE, flags /*| MAP_POPULATE | MAP_HUGETLB*/, ZEND_MM_FD, 0); if (ptr == MAP_FAILED) { #if ZEND_MM_ERROR && !defined(MAP_EXCL) @@ -461,7 +470,7 @@ static void *zend_mm_mmap(size_t size) } #endif - ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); + ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, ZEND_MM_FD, 0); if (ptr == MAP_FAILED) { #if ZEND_MM_ERROR |