* [PATCH] mtrace: Use a static buffer for printing [BZ #25947]
@ 2021-07-22 13:24 Siddhesh Poyarekar
2021-08-11 7:41 ` [PING][PATCH] " Siddhesh Poyarekar
2021-08-11 16:55 ` [PATCH] " DJ Delorie
0 siblings, 2 replies; 3+ messages in thread
From: Siddhesh Poyarekar @ 2021-07-22 13:24 UTC (permalink / raw)
To: libc-alpha
Use a static buffer for mtrace printing now that it no longer adds to
default libc footprint.
---
malloc/mtrace-impl.c | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/malloc/mtrace-impl.c b/malloc/mtrace-impl.c
index 0e10ab7f60..83008ca18f 100644
--- a/malloc/mtrace-impl.c
+++ b/malloc/mtrace-impl.c
@@ -34,11 +34,8 @@
#include <kernel-features.h>
-#define TRACE_BUFFER_SIZE 512
-
static FILE *mallstream;
static const char mallenv[] = "MALLOC_TRACE";
-static char *malloc_trace_buffer;
static void
tr_where (const void *caller, Dl_info *info)
@@ -184,16 +181,13 @@ do_mtrace (void)
mallfile = secure_getenv (mallenv);
if (mallfile != NULL)
{
- char *mtb = malloc (TRACE_BUFFER_SIZE);
- if (mtb == NULL)
- return;
-
mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wce");
if (mallstream != NULL)
{
/* Be sure it doesn't malloc its buffer! */
- malloc_trace_buffer = mtb;
- setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);
+ static char tracebuf [512];
+
+ setvbuf (mallstream, tracebuf, _IOFBF, sizeof (tracebuf));
fprintf (mallstream, "= Start\n");
if (!added_atexit_handler)
{
@@ -203,8 +197,6 @@ do_mtrace (void)
}
__malloc_debug_enable (MALLOC_MTRACE_HOOK);
}
- else
- free (mtb);
}
}
--
2.31.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PING][PATCH] mtrace: Use a static buffer for printing [BZ #25947]
2021-07-22 13:24 [PATCH] mtrace: Use a static buffer for printing [BZ #25947] Siddhesh Poyarekar
@ 2021-08-11 7:41 ` Siddhesh Poyarekar
2021-08-11 16:55 ` [PATCH] " DJ Delorie
1 sibling, 0 replies; 3+ messages in thread
From: Siddhesh Poyarekar @ 2021-08-11 7:41 UTC (permalink / raw)
To: libc-alpha
Ping!
On 7/22/21 6:54 PM, Siddhesh Poyarekar via Libc-alpha wrote:
> Use a static buffer for mtrace printing now that it no longer adds to
> default libc footprint.
> ---
> malloc/mtrace-impl.c | 14 +++-----------
> 1 file changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/malloc/mtrace-impl.c b/malloc/mtrace-impl.c
> index 0e10ab7f60..83008ca18f 100644
> --- a/malloc/mtrace-impl.c
> +++ b/malloc/mtrace-impl.c
> @@ -34,11 +34,8 @@
>
> #include <kernel-features.h>
>
> -#define TRACE_BUFFER_SIZE 512
> -
> static FILE *mallstream;
> static const char mallenv[] = "MALLOC_TRACE";
> -static char *malloc_trace_buffer;
>
> static void
> tr_where (const void *caller, Dl_info *info)
> @@ -184,16 +181,13 @@ do_mtrace (void)
> mallfile = secure_getenv (mallenv);
> if (mallfile != NULL)
> {
> - char *mtb = malloc (TRACE_BUFFER_SIZE);
> - if (mtb == NULL)
> - return;
> -
> mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wce");
> if (mallstream != NULL)
> {
> /* Be sure it doesn't malloc its buffer! */
> - malloc_trace_buffer = mtb;
> - setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);
> + static char tracebuf [512];
> +
> + setvbuf (mallstream, tracebuf, _IOFBF, sizeof (tracebuf));
> fprintf (mallstream, "= Start\n");
> if (!added_atexit_handler)
> {
> @@ -203,8 +197,6 @@ do_mtrace (void)
> }
> __malloc_debug_enable (MALLOC_MTRACE_HOOK);
> }
> - else
> - free (mtb);
> }
> }
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mtrace: Use a static buffer for printing [BZ #25947]
2021-07-22 13:24 [PATCH] mtrace: Use a static buffer for printing [BZ #25947] Siddhesh Poyarekar
2021-08-11 7:41 ` [PING][PATCH] " Siddhesh Poyarekar
@ 2021-08-11 16:55 ` DJ Delorie
1 sibling, 0 replies; 3+ messages in thread
From: DJ Delorie @ 2021-08-11 16:55 UTC (permalink / raw)
To: Siddhesh Poyarekar; +Cc: libc-alpha
Siddhesh Poyarekar via Libc-alpha <libc-alpha@sourceware.org> writes:
> -#define TRACE_BUFFER_SIZE 512
I think it would be prudent to keep this, instead of hard-coding the 512
in the code below. I don't feel strongly about it, since the 512 only
appears once.
> -static char *malloc_trace_buffer;
We could have kept this here, too, but I have no real preference about
it.
> - char *mtb = malloc (TRACE_BUFFER_SIZE);
> - if (mtb == NULL)
> - return;
Ok.
> /* Be sure it doesn't malloc its buffer! */
> - malloc_trace_buffer = mtb;
> - setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);
> + static char tracebuf [512];
> +
> + setvbuf (mallstream, tracebuf, _IOFBF, sizeof (tracebuf));
_IOFBF is same as before, so OK, but I wonder if _IOLBF (line buffered)
would be more user-friendly? I can't think of a use case for piping the
output through "tail -f" or something, and actually needing to wait for
it, but it's text output.
> - else
> - free (mtb);
Ok.
LGTM as-is, my comments are for pondering only ;-)
Reviewed-by: DJ Delorie <dj@redhat.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-08-11 16:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22 13:24 [PATCH] mtrace: Use a static buffer for printing [BZ #25947] Siddhesh Poyarekar
2021-08-11 7:41 ` [PING][PATCH] " Siddhesh Poyarekar
2021-08-11 16:55 ` [PATCH] " DJ Delorie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).