Use mallinfo2() if available
mallinfo() is deprecated because it uses `int` for the members of the returned struct, whereas mallinfo2() uses `size_t`. It's available since glibc 2.33.
This commit is contained in:
+1
-1
@@ -668,7 +668,7 @@ AC_CHECK_FUNC(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
AC_CHECK_FUNCS(prctl mallinfo getpass closefrom getpwnam_r getgrnam_r getpwuid_r chown)
|
AC_CHECK_FUNCS(prctl mallinfo mallinfo2 getpass closefrom getpwnam_r getgrnam_r getpwuid_r chown)
|
||||||
AC_CHECK_FUNCS(fmemopen funopen mmap memrchr setlinebuf strptime dirfd sigwaitinfo explicit_bzero)
|
AC_CHECK_FUNCS(fmemopen funopen mmap memrchr setlinebuf strptime dirfd sigwaitinfo explicit_bzero)
|
||||||
|
|
||||||
AC_CHECK_FUNC([syslog], [
|
AC_CHECK_FUNC([syslog], [
|
||||||
|
|||||||
@@ -18,9 +18,9 @@
|
|||||||
#include <library.h>
|
#include <library.h>
|
||||||
#include <utils/debug.h>
|
#include <utils/debug.h>
|
||||||
|
|
||||||
#ifdef HAVE_MALLINFO
|
#if defined(HAVE_MALLINFO2) || defined (HAVE_MALLINFO)
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#endif /* HAVE_MALLINFO */
|
#endif
|
||||||
|
|
||||||
static void start_timing(struct timespec *start)
|
static void start_timing(struct timespec *start)
|
||||||
{
|
{
|
||||||
@@ -38,12 +38,15 @@ static double end_timing(struct timespec *start)
|
|||||||
|
|
||||||
static void print_mallinfo()
|
static void print_mallinfo()
|
||||||
{
|
{
|
||||||
#ifdef HAVE_MALLINFO
|
#ifdef HAVE_MALLINFO2
|
||||||
|
struct mallinfo2 mi = mallinfo2();
|
||||||
|
printf("malloc: sbrk %zu, mmap %zu, used %zu, free %zu\n",
|
||||||
|
mi.arena, mi.hblkhd, mi.uordblks, mi.fordblks);
|
||||||
|
#elif defined(HAVE_MALLINFO)
|
||||||
struct mallinfo mi = mallinfo();
|
struct mallinfo mi = mallinfo();
|
||||||
|
|
||||||
printf("malloc: sbrk %d, mmap %d, used %d, free %d\n",
|
printf("malloc: sbrk %d, mmap %d, used %d, free %d\n",
|
||||||
mi.arena, mi.hblkhd, mi.uordblks, mi.fordblks);
|
mi.arena, mi.hblkhd, mi.uordblks, mi.fordblks);
|
||||||
#endif /* HAVE_MALLINFO */
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ALLOCS 1024
|
#define ALLOCS 1024
|
||||||
|
|||||||
@@ -22,9 +22,9 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
#ifdef HAVE_MALLINFO
|
#if defined(HAVE_MALLINFO2) || defined (HAVE_MALLINFO)
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#endif /* HAVE_MALLINFO */
|
#endif
|
||||||
|
|
||||||
#include <daemon.h>
|
#include <daemon.h>
|
||||||
#include <collections/linked_list.h>
|
#include <collections/linked_list.h>
|
||||||
@@ -490,14 +490,19 @@ METHOD(stroke_list_t, status, void,
|
|||||||
}
|
}
|
||||||
fprintf(out, "):\n uptime: %V, since %T\n", &now, &this->uptime, &since,
|
fprintf(out, "):\n uptime: %V, since %T\n", &now, &this->uptime, &since,
|
||||||
FALSE);
|
FALSE);
|
||||||
#ifdef HAVE_MALLINFO
|
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_MALLINFO2
|
||||||
|
struct mallinfo2 mi = mallinfo2();
|
||||||
|
|
||||||
|
fprintf(out, " malloc: sbrk %zu, mmap %zu, used %zu, free %zu\n",
|
||||||
|
mi.arena, mi.hblkhd, mi.uordblks, mi.fordblks);
|
||||||
|
#elif defined (HAVE_MALLINFO)
|
||||||
struct mallinfo mi = mallinfo();
|
struct mallinfo mi = mallinfo();
|
||||||
|
|
||||||
fprintf(out, " malloc: sbrk %u, mmap %u, used %u, free %u\n",
|
fprintf(out, " malloc: sbrk %u, mmap %u, used %u, free %u\n",
|
||||||
mi.arena, mi.hblkhd, mi.uordblks, mi.fordblks);
|
mi.arena, mi.hblkhd, mi.uordblks, mi.fordblks);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif /* HAVE_MALLINFO */
|
|
||||||
fprintf(out, " worker threads: %d of %d idle, ",
|
fprintf(out, " worker threads: %d of %d idle, ",
|
||||||
lib->processor->get_idle_threads(lib->processor),
|
lib->processor->get_idle_threads(lib->processor),
|
||||||
lib->processor->get_total_threads(lib->processor));
|
lib->processor->get_total_threads(lib->processor));
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_MALLINFO
|
#if defined(HAVE_MALLINFO2) || defined (HAVE_MALLINFO)
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1697,8 +1697,17 @@ CALLBACK(stats, vici_message_t*,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_MALLINFO
|
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_MALLINFO2
|
||||||
|
struct mallinfo2 mi = mallinfo2();
|
||||||
|
|
||||||
|
b->begin_section(b, "mallinfo");
|
||||||
|
b->add_kv(b, "sbrk", "%zu", mi.arena);
|
||||||
|
b->add_kv(b, "mmap", "%zu", mi.hblkhd);
|
||||||
|
b->add_kv(b, "used", "%zu", mi.uordblks);
|
||||||
|
b->add_kv(b, "free", "%zu", mi.fordblks);
|
||||||
|
b->end_section(b);
|
||||||
|
#elif defined(HAVE_MALLINFO)
|
||||||
struct mallinfo mi = mallinfo();
|
struct mallinfo mi = mallinfo();
|
||||||
|
|
||||||
b->begin_section(b, "mallinfo");
|
b->begin_section(b, "mallinfo");
|
||||||
@@ -1707,8 +1716,8 @@ CALLBACK(stats, vici_message_t*,
|
|||||||
b->add_kv(b, "used", "%u", mi.uordblks);
|
b->add_kv(b, "used", "%u", mi.uordblks);
|
||||||
b->add_kv(b, "free", "%u", mi.fordblks);
|
b->add_kv(b, "free", "%u", mi.fordblks);
|
||||||
b->end_section(b);
|
b->end_section(b);
|
||||||
|
#endif /* HAVE_MALLINFO(2) */
|
||||||
}
|
}
|
||||||
#endif /* HAVE_MALLINFO */
|
|
||||||
|
|
||||||
return b->finalize(b);
|
return b->finalize(b);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user