Lines Matching refs:size

151 #define ZEND_MM_ALIGNED_OFFSET(size, alignment) \  argument
152 (((size_t)(size)) & ((alignment) - 1))
153 #define ZEND_MM_ALIGNED_BASE(size, alignment) \ argument
154 (((size_t)(size)) & ~((alignment) - 1))
155 #define ZEND_MM_SIZE_TO_NUM(size, alignment) \ argument
156 (((size_t)(size) + ((alignment) - 1)) / (alignment))
240 size_t size; /* current memory usage */ member
313 size_t size; member
323 #define _BIN_DATA_SIZE(num, size, elements, pages, x, y) size, argument
328 #define _BIN_DATA_ELEMENTS(num, size, elements, pages, x, y) elements, argument
333 #define _BIN_DATA_PAGES(num, size, elements, pages, x, y) pages, argument
376 size_t size) in zend_mm_safe_error() argument
388 size); in zend_mm_safe_error()
419 static void *zend_mm_mmap_fixed(void *addr, size_t size) in zend_mm_mmap_fixed() argument
422 return VirtualAlloc(addr, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); in zend_mm_mmap_fixed()
429 …void *ptr = mmap(addr, size, PROT_READ | PROT_WRITE, flags /*| MAP_POPULATE | MAP_HUGETLB*/, ZEND_… in zend_mm_mmap_fixed()
437 if (munmap(ptr, size) != 0) { in zend_mm_mmap_fixed()
449 static void *zend_mm_mmap(size_t size) in zend_mm_mmap() argument
452 void *ptr = VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); in zend_mm_mmap()
465 if (zend_mm_use_huge_pages && size == ZEND_MM_CHUNK_SIZE) { in zend_mm_mmap()
466 ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON | MAP_HUGETLB, -1, 0); in zend_mm_mmap()
473 ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, ZEND_MM_FD, 0); in zend_mm_mmap()
485 static void zend_mm_munmap(void *addr, size_t size) in zend_mm_munmap() argument
494 if (munmap(addr, size) != 0) { in zend_mm_munmap()
664 static void *zend_mm_chunk_alloc_int(size_t size, size_t alignment) argument
666 void *ptr = zend_mm_mmap(size);
673 madvise(ptr, size, MADV_HUGEPAGE);
681 zend_mm_munmap(ptr, size);
682 ptr = zend_mm_mmap(size + alignment - REAL_PAGE_SIZE);
685 zend_mm_munmap(ptr, size + alignment - REAL_PAGE_SIZE);
686 ptr = zend_mm_mmap_fixed((void*)((char*)ptr + (alignment - offset)), size);
689 zend_mm_munmap(ptr, size);
702 zend_mm_munmap((char*)ptr + size, alignment - REAL_PAGE_SIZE);
706 madvise(ptr, size, MADV_HUGEPAGE);
714 static void *zend_mm_chunk_alloc(zend_mm_heap *heap, size_t size, size_t alignment) argument
718 void *ptr = heap->storage->handlers.chunk_alloc(heap->storage, size, alignment);
723 return zend_mm_chunk_alloc_int(size, alignment);
726 static void zend_mm_chunk_free(zend_mm_heap *heap, void *addr, size_t size) argument
730 heap->storage->handlers.chunk_free(heap->storage, addr, size);
734 zend_mm_munmap(addr, size);
805 static void *zend_mm_alloc_huge(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR…
809 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size, size_t dbg_s…
811 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LIN…
819 static void *zend_mm_alloc_pages(zend_mm_heap *heap, uint32_t pages_count, size_t size ZEND_FILE_LI…
956 …austed at %s:%d (tried to allocate %zu bytes)", heap->limit, __zend_filename, __zend_lineno, size);
974 …u) at %s:%d (tried to allocate %zu bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
983 size_t size = heap->real_size + ZEND_MM_CHUNK_SIZE; local
984 size_t peak = MAX(heap->real_peak, size);
985 heap->real_size = size;
1027 static zend_always_inline void *zend_mm_alloc_large_ex(zend_mm_heap *heap, size_t size ZEND_FILE_LI…
1029 int pages_count = (int)ZEND_MM_SIZE_TO_NUM(size, ZEND_MM_PAGE_SIZE);
1031 …void *ptr = zend_mm_alloc_pages(heap, pages_count, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORI…
1037 size_t size = heap->size + pages_count * ZEND_MM_PAGE_SIZE; local
1038 size_t peak = MAX(heap->peak, size);
1039 heap->size = size;
1047 static zend_never_inline void *zend_mm_alloc_large(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_D…
1049 return zend_mm_alloc_large_ex(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1052 static zend_never_inline void *zend_mm_alloc_large(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_D…
1054 return zend_mm_alloc_large_ex(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1115 heap->size -= pages_count * ZEND_MM_PAGE_SIZE;
1125 static zend_always_inline int zend_mm_small_size_to_bit(int size) argument
1128 return (__builtin_clz(size) ^ 0x1f) + 1;
1132 if (!BitScanReverse(&index, (unsigned long)size)) {
1140 if (size <= 0x00ff) {n -= 8; size = size << 8;}
1141 if (size <= 0x0fff) {n -= 4; size = size << 4;}
1142 if (size <= 0x3fff) {n -= 2; size = size << 2;}
1143 if (size <= 0x7fff) {n -= 1;}
1156 static zend_always_inline int zend_mm_small_size_to_bin(size_t size) argument
1164 if (UNEXPECTED(size <= 2)) return 0;
1165 n = zend_mm_small_size_to_bit(size - 1);
1166 return ((size-1) >> f1[n]) + f2[n];
1170 if (size <= 64) {
1172 return (size - !!size) >> 3;
1174 t1 = size - 1;
1184 #define ZEND_MM_SMALL_SIZE_TO_BIN(size) zend_mm_small_size_to_bin(size) argument
1223 dbg->size = 0;
1234 dbg->size = 0;
1246 size_t size = heap->size + bin_data_size[bin_num]; local
1247 size_t peak = MAX(heap->peak, size);
1248 heap->size = size;
1267 heap->size -= bin_data_size[bin_num];
1273 dbg->size = 0;
1310 static zend_always_inline void *zend_mm_alloc_heap(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_D…
1314 size_t real_size = size;
1318 size = MAX(size, 1);
1319 size = ZEND_MM_ALIGNED_SIZE(size) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info));
1320 if (UNEXPECTED(size < real_size)) {
1325 if (EXPECTED(size <= ZEND_MM_MAX_SMALL_SIZE)) {
1326 …ptr = zend_mm_alloc_small(heap, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_…
1329 dbg->size = real_size;
1336 } else if (EXPECTED(size <= ZEND_MM_MAX_LARGE_SIZE)) {
1337 ptr = zend_mm_alloc_large(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1340 dbg->size = real_size;
1349 size = real_size;
1351 return zend_mm_alloc_huge(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1390 return dbg->size;
1408 static zend_never_inline void *zend_mm_realloc_slow(zend_mm_heap *heap, void *ptr, size_t size, siz… argument
1416 ret = zend_mm_alloc_heap(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1420 heap->peak = MAX(orig_peak, heap->size);
1426 static zend_never_inline void *zend_mm_realloc_huge(zend_mm_heap *heap, void *ptr, size_t size, siz… argument
1436 real_size = size;
1437 size = ZEND_MM_ALIGNED_SIZE(size) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info));
1439 if (size > ZEND_MM_MAX_LARGE_SIZE) {
1441 size = real_size;
1448 new_size = ZEND_MM_ALIGNED_SIZE_EX(size, MAX(REAL_PAGE_SIZE, ZEND_MM_CHUNK_SIZE));
1450 new_size = ZEND_MM_ALIGNED_SIZE_EX(size, REAL_PAGE_SIZE);
1466 heap->size -= old_size - new_size;
1482 …austed at %s:%d (tried to allocate %zu bytes)", heap->limit, __zend_filename, __zend_lineno, size);
1484 …ap, "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)", heap->limit, size);
1497 heap->size += new_size - old_size;
1498 heap->peak = MAX(heap->peak, heap->size);
1510 …return zend_mm_realloc_slow(heap, ptr, size, MIN(old_size, copy_size) ZEND_FILE_LINE_RELAY_CC ZEND…
1513 static zend_always_inline void *zend_mm_realloc_heap(zend_mm_heap *heap, void *ptr, size_t size, ze… argument
1526 return _zend_mm_alloc(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1528 …return zend_mm_realloc_huge(heap, ptr, size, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG…
1535 size_t real_size = size;
1537 size = ZEND_MM_ALIGNED_SIZE(size) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info));
1548 if (size <= old_size) {
1550 if (old_bin_num > 0 && size < bin_data_size[old_bin_num - 1]) {
1552 …ret = zend_mm_alloc_small(heap, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_…
1553 copy_size = use_copy_size ? MIN(size, copy_size) : size;
1560 } else if (size <= ZEND_MM_MAX_SMALL_SIZE) {
1567 …ret = zend_mm_alloc_small(heap, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_…
1572 heap->peak = MAX(orig_peak, heap->size);
1582 dbg->size = real_size;
1594 if (size > ZEND_MM_MAX_SMALL_SIZE && size <= ZEND_MM_MAX_LARGE_SIZE) {
1595 new_size = ZEND_MM_ALIGNED_SIZE_EX(size, ZEND_MM_PAGE_SIZE);
1599 dbg->size = real_size;
1612 heap->size -= rest_pages_count * ZEND_MM_PAGE_SIZE;
1619 dbg->size = real_size;
1635 size_t size = heap->size + (new_size - old_size); local
1636 size_t peak = MAX(heap->peak, size);
1637 heap->size = size;
1646 dbg->size = real_size;
1658 size = real_size;
1663 …return zend_mm_realloc_slow(heap, ptr, size, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG…
1671 static void zend_mm_add_huge_block(zend_mm_heap *heap, void *ptr, size_t size, size_t dbg_size ZEND… argument
1673 static void zend_mm_add_huge_block(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC ZEN…
1678 list->size = size;
1681 list->dbg.size = dbg_size;
1696 size_t size; local
1703 size = list->size;
1705 return size;
1719 return list->size;
1728 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size, size_t dbg_s… argument
1730 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LIN…
1736 list->size = size;
1738 list->dbg.size = dbg_size;
1750 static void *zend_mm_alloc_huge(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR…
1761 size_t new_size = ZEND_MM_ALIGNED_SIZE_EX(size, alignment);
1764 if (UNEXPECTED(new_size < size)) {
1765 …zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu + %zu)", size, a…
1774 …austed at %s:%d (tried to allocate %zu bytes)", heap->limit, __zend_filename, __zend_lineno, size);
1776 …ap, "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)", heap->limit, size);
1792 …u) at %s:%d (tried to allocate %zu bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
1794 …_error(heap, "Out of memory (allocated %zu) (tried to allocate %zu bytes)", heap->real_size, size);
1800 …zend_mm_add_huge_block(heap, ptr, new_size, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY…
1806 size_t size = heap->real_size + new_size; local
1807 size_t peak = MAX(heap->real_peak, size);
1808 heap->real_size = size;
1812 size_t size = heap->size + new_size; local
1813 size_t peak = MAX(heap->peak, size);
1814 heap->size = size;
1825 size_t size; local
1828 size = zend_mm_del_huge_block(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1829 zend_mm_chunk_free(heap, ptr, size);
1831 heap->real_size -= size;
1834 heap->size -= size;
1879 heap->size = 0;
2023 if (dbg->size != 0) {
2026 dbg->size = 0;
2082 zend_mm_chunk_free(heap, p->ptr, p->size);
2109 leak.size = list->dbg.size;
2124 zend_mm_chunk_free(heap, q->ptr, q->size);
2140 if (dbg->size != 0) {
2142 leak.size = dbg->size;
2151 dbg->size = 0;
2171 leak.size = dbg->size;
2202 static void *tracked_malloc(size_t size);
2249 zend_mm_chunk_free(heap, q->ptr, q->size);
2301 heap->size = heap->peak = 0;
2325 ZEND_API void* ZEND_FASTCALL _zend_mm_alloc(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_DC ZEND_…
2327 return zend_mm_alloc_heap(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2335 void* ZEND_FASTCALL _zend_mm_realloc(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC Z…
2337 …return zend_mm_realloc_heap(heap, ptr, size, 0, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_R…
2340 void* ZEND_FASTCALL _zend_mm_realloc2(zend_mm_heap *heap, void *ptr, size_t size, size_t copy_size … argument
2342 …return zend_mm_realloc_heap(heap, ptr, size, 1, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_O…
2401 && ptr < (void*)((char*)block + block->size)) {
2412 static ZEND_COLD void* ZEND_FASTCALL _malloc_custom(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR…
2415 …return AG(mm_heap)->custom_heap.debug._malloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_REL…
2417 return AG(mm_heap)->custom_heap.std._malloc(size);
2430 static ZEND_COLD void* ZEND_FASTCALL _realloc_custom(void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_…
2433 …return AG(mm_heap)->custom_heap.debug._realloc(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_OR…
2435 return AG(mm_heap)->custom_heap.std._realloc(ptr, size);
2444 # define ZEND_MM_CUSTOM_ALLOCATOR(size) do { \ argument
2446 return _malloc_custom(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \
2456 # define ZEND_MM_CUSTOM_ALLOCATOR(size) argument
2468 ZEND_API void* ZEND_FASTCALL _emalloc_large(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
2470 ZEND_MM_CUSTOM_ALLOCATOR(size);
2471 …return zend_mm_alloc_large_ex(AG(mm_heap), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_…
2474 ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size) argument
2476 ZEND_MM_CUSTOM_ALLOCATOR(size);
2477 return zend_mm_alloc_huge(AG(mm_heap), size);
2508 ZEND_API void ZEND_FASTCALL _efree_large(void *ptr, size_t size)
2515 uint32_t pages_count = ZEND_MM_ALIGNED_SIZE_EX(size, ZEND_MM_PAGE_SIZE) / ZEND_MM_PAGE_SIZE;
2524 ZEND_API void ZEND_FASTCALL _efree_huge(void *ptr, size_t size) argument
2532 ZEND_API void* ZEND_FASTCALL _emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
2536 return _malloc_custom(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2539 return zend_mm_alloc_heap(AG(mm_heap), size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2553 ZEND_API void* ZEND_FASTCALL _erealloc(void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG…
2557 return _realloc_custom(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2560 …return zend_mm_realloc_heap(AG(mm_heap), ptr, size, 0, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE…
2563 ZEND_API void* ZEND_FASTCALL _erealloc2(void *ptr, size_t size, size_t copy_size ZEND_FILE_LINE_DC … argument
2567 return _realloc_custom(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2570 …return zend_mm_realloc_heap(AG(mm_heap), ptr, size, 1, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE…
2583 ZEND_API void* ZEND_FASTCALL _safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_… argument
2585 …return _emalloc(zend_safe_address_guarded(nmemb, size, offset) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_L…
2588 ZEND_API void* ZEND_FASTCALL _safe_malloc(size_t nmemb, size_t size, size_t offset) argument
2590 return pemalloc(zend_safe_address_guarded(nmemb, size, offset), 1);
2593 ZEND_API void* ZEND_FASTCALL _safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEN… argument
2595 …return _erealloc(ptr, zend_safe_address_guarded(nmemb, size, offset) ZEND_FILE_LINE_RELAY_CC ZEND_…
2598 ZEND_API void* ZEND_FASTCALL _safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset) argument
2600 return perealloc(ptr, zend_safe_address_guarded(nmemb, size, offset), 1);
2603 ZEND_API void* ZEND_FASTCALL _ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_OR…
2607 size = zend_safe_address_guarded(nmemb, size, 0);
2608 p = _emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2609 memset(p, 0, size);
2680 size_t usage = AG(mm_heap)->size;
2705 static void *tracked_malloc(size_t size) argument
2707 void *ptr = __zend_malloc(size);
2937 heap->size = 0;