This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 5/6] Add catch-all alloc retry probe.
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Alexandre Oliva <aoliva at redhat dot com>
- Cc: libc-alpha at sourceware dot org, aj at suse dot com
- Date: Fri, 20 Sep 2013 00:00:42 -0400
- Subject: Re: [PATCH 5/6] Add catch-all alloc retry probe.
- Authentication-results: sourceware.org; auth=none
- References: <orob7o33xs dot fsf at livre dot home> <20130920023029 dot 9898 dot 44407 dot stgit at frit dot home>
On 09/19/2013 10:30 PM, Alexandre Oliva wrote:
> for ChangeLog
>
> * malloc/arena.c (arena_get_retry): Add memory_arena_retry probe.
> * manual/probes.texi: Document it.
Almost...
> ---
> malloc/arena.c | 1 +
> manual/probes.texi | 12 ++++++++++++
> 2 files changed, 13 insertions(+)
>
> diff --git a/malloc/arena.c b/malloc/arena.c
> index 89e8b92..9ace186 100644
> --- a/malloc/arena.c
> +++ b/malloc/arena.c
> @@ -932,6 +932,7 @@ arena_get2(mstate a_tsd, size_t size, mstate avoid_arena)
> static mstate
> arena_get_retry (mstate ar_ptr, size_t bytes)
> {
> + LIBC_PROBE (memory_arena_retry, 2, bytes, ar_ptr);
> if(ar_ptr != &main_arena) {
> (void)mutex_unlock(&ar_ptr->mutex);
> ar_ptr = &main_arena;
> diff --git a/manual/probes.texi b/manual/probes.texi
> index 50e0fc2..fdf41c2 100644
> --- a/manual/probes.texi
> +++ b/manual/probes.texi
> @@ -48,6 +48,18 @@ corresponding two-argument functions, so that in all of these probes the
> user-requested allocation size is in @var{$arg1}.
> @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 takes place.
s/takes place/of an alternate arena./g.
> +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})
> This probe is triggered when @code{malloc} allocates and initializes an
> additional arena (not the main arena), but before the arena is assigned
>
OK to commit with that change.
c.