public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 1/3] Support new mallinfo2 function.
@ 2020-09-01 12:31 Martin Liška
  2020-09-01 12:32 ` [PATCH 2/3] Use MiB unit when displaying memory allocation Martin Liška
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Martin Liška @ 2020-09-01 12:31 UTC (permalink / raw)
  To: GCC Patches; +Cc: Jan Hubicka

[-- Attachment #1: Type: text/plain, Size: 331 bytes --]

Hey.

I've just applied to patches to glibc introducing a new mallinfo2 function.
Limitation of the current function mallinfo is usage of int type which overflows
for allocation > 2GB.

The patch adds configure detection and usage of the new one. And it prints heap usage
in MiB.

Ready to be installed after tests?
Thanks,
Martin

[-- Attachment #2: 0001-Support-new-mallinfo2-function.patch --]
[-- Type: text/x-patch, Size: 4699 bytes --]

From 031ae63018a32c9ac10fab58f4a6c8b5a9166060 Mon Sep 17 00:00:00 2001
From: Martin Liska <mliska@suse.cz>
Date: Tue, 1 Sep 2020 14:14:45 +0200
Subject: [PATCH 1/3] Support new mallinfo2 function.

gcc/ChangeLog:

	* config.in: Regenerate.
	* configure: Likewise.
	* configure.ac: Detect for mallinfo2.
	* ggc-common.c (defined): Use it and display info in MiB.
	* system.h: Handle also HAVE_MALLINFO2.
---
 gcc/config.in    | 16 ++++++++++++++--
 gcc/configure    |  4 ++--
 gcc/configure.ac |  4 ++--
 gcc/ggc-common.c | 12 +++++++++---
 gcc/system.h     |  2 +-
 5 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/gcc/config.in b/gcc/config.in
index 478e74fac02..1832c112ed9 100644
--- a/gcc/config.in
+++ b/gcc/config.in
@@ -983,13 +983,19 @@
 #endif
 
 
-/* Define to 1 if we found a declaration for 'mallinfo', otherwise define to
-   0. */
+/* Define to 1 if we found a declaration for 'mallinfo */
 #ifndef USED_FOR_TARGET
 #undef HAVE_DECL_MALLINFO
 #endif
 
 
+/* Define to 1 if we found a declaration for 'mallinfo2', otherwise define to
+   0. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_DECL_MALLINFO2
+#endif
+
+
 /* Define to 1 if we found a declaration for 'malloc', otherwise define to 0.
    */
 #ifndef USED_FOR_TARGET
@@ -1665,6 +1671,12 @@
 #endif
 
 
+/* Define to 1 if you have the `mallinfo2' function. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_MALLINFO2
+#endif
+
+
 /* Define to 1 if you have the <malloc.h> header file. */
 #ifndef USED_FOR_TARGET
 #undef HAVE_MALLOC_H
diff --git a/gcc/configure b/gcc/configure
index 0f7a8dbe0f9..b8b9bd3505b 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -10120,7 +10120,7 @@ fi
 for ac_func in times clock kill getrlimit setrlimit atoq \
 	popen sysconf strsignal getrusage nl_langinfo \
 	gettimeofday mbstowcs wcswidth mmap setlocale \
-	clearerr_unlocked feof_unlocked   ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked   fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked   fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked   putchar_unlocked putc_unlocked madvise mallinfo
+	clearerr_unlocked feof_unlocked   ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked   fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked   fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked   putchar_unlocked putc_unlocked madvise mallinfo mallinfo2
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -11549,7 +11549,7 @@ fi
 done
 
 
-for ac_func in mallinfo
+for ac_func in mallinfo, mallinfo2
 do
   ac_tr_decl=`$as_echo "HAVE_DECL_$ac_func" | $as_tr_cpp`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $ac_func is declared" >&5
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 0f11238c19f..18640fdb8a5 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1408,7 +1408,7 @@ define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
 AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoq \
 	popen sysconf strsignal getrusage nl_langinfo \
 	gettimeofday mbstowcs wcswidth mmap setlocale \
-	gcc_UNLOCKED_FUNCS madvise mallinfo)
+	gcc_UNLOCKED_FUNCS madvise mallinfo mallinfo2)
 
 if test x$ac_cv_func_mbstowcs = xyes; then
   AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
@@ -1488,7 +1488,7 @@ gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
 #endif
 ])
 
-gcc_AC_CHECK_DECLS(mallinfo, , ,[
+gcc_AC_CHECK_DECLS([mallinfo, mallinfo2], , ,[
 #include "ansidecl.h"
 #include "system.h"
 #ifdef HAVE_MALLOC_H
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index 94da02f1185..f6be5472bd5 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -1008,13 +1008,19 @@ ggc_prune_overhead_list (void)
       }
 }
 
-/* Return memory used by heap in kb, 0 if this info is not available.  */
+/* Print memory used by heap in MiB if this info is not available.  */
 
 void
 report_heap_memory_use ()
 {
-#ifdef HAVE_MALLINFO
+#if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2)
+#ifdef HAVE_MALLINFO2
+  #define MALLINFO_FN mallinfo2
+#else
+  #define MALLINFO_FN mallinfo
+#endif
   if (!quiet_flag)
-    fprintf (stderr," {heap %luk}", (unsigned long)(mallinfo().arena / 1024));
+    fprintf (stderr," {heap %lu MiB}",
+	     (unsigned long) MALLINFO_FN ().arena / ONE_M);
 #endif
 }
diff --git a/gcc/system.h b/gcc/system.h
index 3c543a005d8..4f0482be25d 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -732,7 +732,7 @@ extern int vsnprintf (char *, size_t, const char *, va_list);
 #endif
 
 #ifdef INCLUDE_MALLOC_H
-#ifdef HAVE_MALLINFO
+#if defined(HAVE_MALLINFO) || defined(HAVE_MALLINFO2)
 #include <malloc.h>
 #endif
 #endif
-- 
2.28.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-09-22 13:24 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-01 12:31 [PATCH 1/3] Support new mallinfo2 function Martin Liška
2020-09-01 12:32 ` [PATCH 2/3] Use MiB unit when displaying memory allocation Martin Liška
2020-09-01 14:04   ` Jan Hubicka
2020-09-02 13:28     ` Martin Liška
2020-09-17 21:57       ` Jeff Law
2020-09-22  7:47       ` Christophe Lyon
2020-09-22  8:30         ` Martin Liška
2020-09-22 13:02           ` Marek Polacek
2020-09-22 13:24             ` Marek Polacek
2020-09-01 12:33 ` [PATCH 3/3] Use more ONE_? in GGC functions Martin Liška
2020-09-02 13:29   ` Martin Liška
2020-09-17 21:57     ` Jeff Law
2020-09-01 13:38 ` [PATCH 4/N] Change timevar memory allocation to MiB Martin Liška
2020-09-02 13:29   ` Martin Liška
2020-09-02 13:28 ` [PATCH 1/3] Support new mallinfo2 function Martin Liška
2020-09-17 21:56   ` Jeff Law

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).