emeryberger / Hoard

The Hoard Memory Allocator: A Fast, Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac.
http://www.hoard.org
Apache License 2.0
1.09k stars 127 forks source link

Crashes with Large Superblock Sizes #46

Open mlr-msft opened 5 years ago

mlr-msft commented 5 years ago

Hoard crashes when SUPERBLOCK_SIZE is #define'd with values larger than 256M.

We think it's during program initialization. Here's the backtrace:

Hoard::ThreadLocalAllocationBuffer<15, &HL::bins<Hoard::HoardSuperblockHeader<HL::SpinLockType, 524288, Hoard::SmallHeap>, 524288ul>::getSizeClass, &HL::bins<Hoard::HoardSuperblockHeader<HL::SpinLockType, 524288, Hoard::SmallHeap>, 524288ul>::getClassSize, 256ul, 2097152ul, Hoard::HoardSuperblock<HL::SpinLockType, 524288, Hoard::SmallHeap, Hoard::HoardSuperblockHeader>, 524288u, Hoard::HoardHeapType>::free(Hoard::ThreadLocalAllocationBuffer<15, &HL::bins<Hoard::HoardSuperblockHeader<HL::SpinLockType, 524288, Hoard::SmallHeap>, 524288>::getSizeClass, &HL::bins<Hoard::HoardSuperblockHeader<HL::SpinLockType, 524288, Hoard::SmallHeap>, 524288>::getClassSize, 256, 2097152, Hoard::HoardSuperblock<HL::SpinLockType, 524288, Hoard::SmallHeap, HoardSuperblockHeader>, 524288, Hoard::HoardHeapType> * this, void * ptr) (/home/.../include/superblocks/tlab.h:114)
__GI__IO_setb(_IO_FILE * f, char * b, char * eb, int a) (/build/glibc-yWQXbR/glibc-2.24/libio/genops.c:382)
_IO_new_file_close_it(_IO_FILE * fp) (/build/glibc-yWQXbR/glibc-2.24/libio/fileops.c:193)
_IO_new_fclose(_IO_FILE * fp) (/build/glibc-yWQXbR/glibc-2.24/libio/iofclose.c:58)
[Unknown/Just-In-Time compiled code] (Unknown Source:0)
ld-linux-x86-64.so.2!call_init(struct link_map * l, int argc, char ** argv, char ** env) (/build/glibc-yWQXbR/glibc-2.24/elf/dl-init.c:72)
ld-linux-x86-64.so.2!call_init(char ** env, char ** argv, int argc, struct link_map * l) (/build/glibc-yWQXbR/glibc-2.24/elf/dl-init.c:30)
ld-linux-x86-64.so.2!_dl_init(struct link_map * main_map, int argc, char ** argv, char ** env) (/build/glibc-yWQXbR/glibc-2.24/elf/dl-init.c:120)
ld-linux-x86-64.so.2!_dl_start_user (Unknown Source:0)
[Unknown/Just-In-Time compiled code] (Unknown Source:0)

Thanks in advance!