mirror of git://sourceware.org/git/glibc.git
It is enabled as default for glibc.malloc.hugetlb set to 2 or higher. It also uses a non configurable minimum value and maximum value, currently set respectively to 1 and 4 selected huge page size. The arena allocation with huge pages does not use MAP_NORESERVE. As indicate by kernel internal documentation [1], the flag might trigger a SIGBUS on soft page faults if at memory access there is no left pages in the pool. On systems without a reserved huge pages pool, is just stress the mmap(MAP_HUGETLB) allocation failure. To improve test coverage it is required to create a pool with some allocated pages. Checked on x86_64-linux-gnu with no reserved pages, 10 reserved pages (which trigger mmap(MAP_HUGETBL) failures) and with 256 reserved pages (which does not trigger mmap(MAP_HUGETLB) failures). [1] https://www.kernel.org/doc/html/v4.18/vm/hugetlbfs_reserv.html#resv-map-modifications Reviewed-by: DJ Delorie <dj@redhat.com> |
||
---|---|---|
.. | ||
Depend | ||
Makefile | ||
Versions | ||
alloc_buffer_alloc_array.c | ||
alloc_buffer_allocate.c | ||
alloc_buffer_copy_bytes.c | ||
alloc_buffer_copy_string.c | ||
alloc_buffer_create_failure.c | ||
arena.c | ||
dynarray-skeleton.c | ||
dynarray.h | ||
dynarray_at_failure.c | ||
dynarray_emplace_enlarge.c | ||
dynarray_finalize.c | ||
dynarray_resize.c | ||
dynarray_resize_clear.c | ||
hooks.c | ||
malloc-check.c | ||
malloc-debug.c | ||
malloc-internal.h | ||
malloc.c | ||
malloc.h | ||
mallocbug.c | ||
mcheck-impl.c | ||
mcheck-init.c | ||
mcheck.c | ||
mcheck.h | ||
memusage.c | ||
memusage.sh | ||
memusagestat.c | ||
morecore.c | ||
mtrace-impl.c | ||
mtrace.c | ||
mtrace.pl | ||
obstack.c | ||
obstack.h | ||
reallocarray.c | ||
scratch_buffer_dupfree.c | ||
scratch_buffer_grow.c | ||
scratch_buffer_grow_preserve.c | ||
scratch_buffer_set_array_size.c | ||
set-freeres.c | ||
thread-freeres.c | ||
tst-alloc_buffer.c | ||
tst-calloc.c | ||
tst-compathooks-off.c | ||
tst-compathooks-on.c | ||
tst-dynarray-at-fail.c | ||
tst-dynarray-fail.c | ||
tst-dynarray-shared.h | ||
tst-dynarray.c | ||
tst-free-errno.c | ||
tst-interpose-aux-nothread.c | ||
tst-interpose-aux-thread.c | ||
tst-interpose-aux.c | ||
tst-interpose-aux.h | ||
tst-interpose-nothread.c | ||
tst-interpose-skeleton.c | ||
tst-interpose-static-nothread.c | ||
tst-interpose-static-thread.c | ||
tst-interpose-thread.c | ||
tst-mallinfo2.c | ||
tst-malloc-backtrace.c | ||
tst-malloc-check.c | ||
tst-malloc-fork-deadlock.c | ||
tst-malloc-stats-cancellation.c | ||
tst-malloc-tcache-leak.c | ||
tst-malloc-thread-exit.c | ||
tst-malloc-thread-fail.c | ||
tst-malloc-too-large.c | ||
tst-malloc-usable-tunables.c | ||
tst-malloc-usable.c | ||
tst-malloc.c | ||
tst-malloc_info.c | ||
tst-mallocalign1.c | ||
tst-mallocfork.c | ||
tst-mallocfork2.c | ||
tst-mallocfork3.c | ||
tst-mallocstate.c | ||
tst-mallopt.c | ||
tst-memalign.c | ||
tst-mtrace.c | ||
tst-mtrace.sh | ||
tst-mxfast.c | ||
tst-obstack.c | ||
tst-posix_memalign.c | ||
tst-pvalloc-fortify.c | ||
tst-pvalloc.c | ||
tst-realloc.c | ||
tst-reallocarray.c | ||
tst-safe-linking.c | ||
tst-scratch_buffer.c | ||
tst-tcfree1.c | ||
tst-tcfree2.c | ||
tst-tcfree3.c | ||
tst-trim1.c | ||
tst-valloc.c |