mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-10 03:10:09 +00:00
Add catch-all alloc retry probe.
for ChangeLog * malloc/arena.c (arena_get_retry): Add memory_arena_retry probe. * manual/probes.texi: Document it.
This commit is contained in:
parent
35fed6f15d
commit
655673f312
@ -1,5 +1,8 @@
|
|||||||
2013-09-20 Alexandre Oliva <aoliva@redhat.com>
|
2013-09-20 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* malloc/arena.c (arena_get_retry): Add memory_arena_retry probe.
|
||||||
|
* manual/probes.texi: Document it.
|
||||||
|
|
||||||
* malloc/malloc.c (__libc_malloc): Add memory_malloc_retry probe.
|
* malloc/malloc.c (__libc_malloc): Add memory_malloc_retry probe.
|
||||||
(__libc_realloc): Add memory_realloc_retry probe.
|
(__libc_realloc): Add memory_realloc_retry probe.
|
||||||
(__libc_memalign): Add memory_memalign_retry probe.
|
(__libc_memalign): Add memory_memalign_retry probe.
|
||||||
|
@ -932,6 +932,7 @@ arena_get2(mstate a_tsd, size_t size, mstate avoid_arena)
|
|||||||
static mstate
|
static mstate
|
||||||
arena_get_retry (mstate ar_ptr, size_t bytes)
|
arena_get_retry (mstate ar_ptr, size_t bytes)
|
||||||
{
|
{
|
||||||
|
LIBC_PROBE (memory_arena_retry, 2, bytes, ar_ptr);
|
||||||
if(ar_ptr != &main_arena) {
|
if(ar_ptr != &main_arena) {
|
||||||
(void)mutex_unlock(&ar_ptr->mutex);
|
(void)mutex_unlock(&ar_ptr->mutex);
|
||||||
ar_ptr = &main_arena;
|
ar_ptr = &main_arena;
|
||||||
|
@ -48,6 +48,18 @@ corresponding two-argument functions, so that in all of these probes the
|
|||||||
user-requested allocation size is in @var{$arg1}.
|
user-requested allocation size is in @var{$arg1}.
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
|
@deftp Probe memory_arena_retry (size_t @var{$arg1}, void *@var{$arg2})
|
||||||
|
This probe is triggered within @code{arena_get_retry} (the function
|
||||||
|
called to select the alternate arena in which to retry an allocation
|
||||||
|
that failed on the first attempt), before the selection of an alternate
|
||||||
|
arena. This probe is redundant, but much easier to use when it's not
|
||||||
|
important to determine which of the various memory allocation functions
|
||||||
|
is failing to allocate on the first try. Argument @var{$arg1} is the
|
||||||
|
same as in the function-specific probes, except for extra room for
|
||||||
|
padding introduced by functions that have to ensure stricter alignment.
|
||||||
|
Argument @var{$arg2} is the arena in which allocation failed.
|
||||||
|
@end deftp
|
||||||
|
|
||||||
@deftp Probe memory_arena_new (void *@var{$arg1}, size_t @var{$arg2})
|
@deftp Probe memory_arena_new (void *@var{$arg1}, size_t @var{$arg2})
|
||||||
This probe is triggered when @code{malloc} allocates and initializes an
|
This probe is triggered when @code{malloc} allocates and initializes an
|
||||||
additional arena (not the main arena), but before the arena is assigned
|
additional arena (not the main arena), but before the arena is assigned
|
||||||
|
Loading…
Reference in New Issue
Block a user