svn commit: r246782 - in projects/utrace2: contrib/jemalloc/src lib/libc/stdlib/jemalloc
Alfred Perlstein
alfred at FreeBSD.org
Thu Feb 14 04:28:51 UTC 2013
Author: alfred
Date: Thu Feb 14 04:28:49 2013
New Revision: 246782
URL: http://svnweb.freebsd.org/changeset/base/246782
Log:
Allow utrace2 to be turned on, or old utrace via malloc config.
Modified:
projects/utrace2/contrib/jemalloc/src/ctl.c
projects/utrace2/contrib/jemalloc/src/jemalloc.c
projects/utrace2/contrib/jemalloc/src/stats.c
projects/utrace2/lib/libc/stdlib/jemalloc/Symbol.map
Modified: projects/utrace2/contrib/jemalloc/src/ctl.c
==============================================================================
--- projects/utrace2/contrib/jemalloc/src/ctl.c Thu Feb 14 02:00:41 2013 (r246781)
+++ projects/utrace2/contrib/jemalloc/src/ctl.c Thu Feb 14 04:28:49 2013 (r246782)
@@ -86,6 +86,7 @@ CTL_PROTO(config_stats)
CTL_PROTO(config_tcache)
CTL_PROTO(config_tls)
CTL_PROTO(config_utrace)
+CTL_PROTO(config_utrace2)
CTL_PROTO(config_valgrind)
CTL_PROTO(config_xmalloc)
CTL_PROTO(opt_abort)
@@ -99,6 +100,7 @@ CTL_PROTO(opt_zero)
CTL_PROTO(opt_quarantine)
CTL_PROTO(opt_redzone)
CTL_PROTO(opt_utrace)
+CTL_PROTO(opt_utrace2)
CTL_PROTO(opt_valgrind)
CTL_PROTO(opt_xmalloc)
CTL_PROTO(opt_tcache)
@@ -225,6 +227,7 @@ static const ctl_named_node_t config_nod
{NAME("tcache"), CTL(config_tcache)},
{NAME("tls"), CTL(config_tls)},
{NAME("utrace"), CTL(config_utrace)},
+ {NAME("utrace2"), CTL(config_utrace2)},
{NAME("valgrind"), CTL(config_valgrind)},
{NAME("xmalloc"), CTL(config_xmalloc)}
};
@@ -241,6 +244,7 @@ static const ctl_named_node_t opt_node[]
{NAME("quarantine"), CTL(opt_quarantine)},
{NAME("redzone"), CTL(opt_redzone)},
{NAME("utrace"), CTL(opt_utrace)},
+ {NAME("utrace2"), CTL(opt_utrace2)},
{NAME("valgrind"), CTL(opt_valgrind)},
{NAME("xmalloc"), CTL(opt_xmalloc)},
{NAME("tcache"), CTL(opt_tcache)},
@@ -1242,6 +1246,7 @@ CTL_RO_BOOL_CONFIG_GEN(config_stats)
CTL_RO_BOOL_CONFIG_GEN(config_tcache)
CTL_RO_BOOL_CONFIG_GEN(config_tls)
CTL_RO_BOOL_CONFIG_GEN(config_utrace)
+CTL_RO_BOOL_CONFIG_GEN(config_utrace2)
CTL_RO_BOOL_CONFIG_GEN(config_valgrind)
CTL_RO_BOOL_CONFIG_GEN(config_xmalloc)
@@ -1258,6 +1263,7 @@ CTL_RO_NL_CGEN(config_fill, opt_zero, op
CTL_RO_NL_CGEN(config_fill, opt_quarantine, opt_quarantine, size_t)
CTL_RO_NL_CGEN(config_fill, opt_redzone, opt_redzone, bool)
CTL_RO_NL_CGEN(config_utrace, opt_utrace, opt_utrace, bool)
+CTL_RO_NL_CGEN(config_utrace2, opt_utrace2, opt_utrace2, bool)
CTL_RO_NL_CGEN(config_valgrind, opt_valgrind, opt_valgrind, bool)
CTL_RO_NL_CGEN(config_xmalloc, opt_xmalloc, opt_xmalloc, bool)
CTL_RO_NL_CGEN(config_tcache, opt_tcache, opt_tcache, bool)
Modified: projects/utrace2/contrib/jemalloc/src/jemalloc.c
==============================================================================
--- projects/utrace2/contrib/jemalloc/src/jemalloc.c Thu Feb 14 02:00:41 2013 (r246781)
+++ projects/utrace2/contrib/jemalloc/src/jemalloc.c Thu Feb 14 04:28:49 2013 (r246782)
@@ -78,14 +78,14 @@ static const void (WINAPI *init_init_loc
static malloc_mutex_t init_lock = MALLOC_MUTEX_INITIALIZER;
#endif
+#ifdef JEMALLOC_UTRACE
typedef struct {
void *p; /* Input pointer (as in realloc(p, s)). */
size_t s; /* Request size. */
void *r; /* Result pointer. */
} malloc_utrace_t;
-#ifdef JEMALLOC_UTRACE
-# define UTRACE(a, b, c) do { \
+# define UTRACE1(a, b, c) do { \
if (opt_utrace) { \
malloc_utrace_t ut; \
ut.p = (a); \
@@ -95,6 +95,38 @@ typedef struct {
} \
} while (0)
#else
+# define UTRACE1(a, b, c)
+#endif
+
+#ifdef JEMALLOC_UTRACE2
+typedef struct {
+ int ut_type; /* utrace type UTRACE_MALLOC */
+ int ut_version; /* utrace malloc version */
+ void *p; /* Input pointer (as in realloc(p, s)). */
+ size_t s; /* Request size. */
+ void *r; /* Result pointer. */
+ void *ut_caller; /* Caller */
+} malloc_utrace2_t;
+
+# define UTRACE2(a, b, c) do { \
+ if (opt_utrace2) { \
+ malloc_utrace2_t ut; \
+ ut.ut_type = UTRACE_MALLOC; \
+ ut.ut_version = 2; \
+ ut.p = (a); \
+ ut.s = (b); \
+ ut.r = (c); \
+ ut.ut_caller = __builtin_return_address(0); \
+ utrace2(&ut, sizeof(ut)); \
+ } \
+} while (0)
+#else
+# define UTRACE2(a, b, c)
+#endif
+
+#if defined(JEMALLOC_UTRACE) || defined(JEMALLOC_UTRACE2)
+# define UTRACE(a, b, c) do { UTRACE1(a, b, c); UTRACE2(a, b, c); } while (0)
+#else
# define UTRACE(a, b, c)
#endif
@@ -975,7 +1007,6 @@ label_return:
}
if (config_prof && opt_prof && result != NULL)
prof_malloc(result, usize, cnt);
- UTRACE(0, size, result);
return (ret);
}
@@ -985,6 +1016,7 @@ je_posix_memalign(void **memptr, size_t
int ret = imemalign(memptr, alignment, size, sizeof(void *));
JEMALLOC_VALGRIND_MALLOC(ret == 0, *memptr, isalloc(*memptr,
config_prof), false);
+ UTRACE(0, size, *memptr);
return (ret);
}
@@ -1000,6 +1032,7 @@ je_aligned_alloc(size_t alignment, size_
}
JEMALLOC_VALGRIND_MALLOC(err == 0, ret, isalloc(ret, config_prof),
false);
+ UTRACE(0, size, ret);
return (ret);
}
@@ -1265,6 +1298,7 @@ je_memalign(size_t alignment, size_t siz
void *ret JEMALLOC_CC_SILENCE_INIT(NULL);
imemalign(&ret, alignment, size, 1);
JEMALLOC_VALGRIND_MALLOC(ret != NULL, ret, size, false);
+ UTRACE(0, size, ret);
return (ret);
}
#endif
@@ -1276,6 +1310,7 @@ je_valloc(size_t size)
void *ret JEMALLOC_CC_SILENCE_INIT(NULL);
imemalign(&ret, PAGE, size, 1);
JEMALLOC_VALGRIND_MALLOC(ret != NULL, ret, size, false);
+ UTRACE(0, size, ret);
return (ret);
}
#endif
Modified: projects/utrace2/contrib/jemalloc/src/stats.c
==============================================================================
--- projects/utrace2/contrib/jemalloc/src/stats.c Thu Feb 14 02:00:41 2013 (r246781)
+++ projects/utrace2/contrib/jemalloc/src/stats.c Thu Feb 14 04:28:49 2013 (r246782)
@@ -383,6 +383,7 @@ stats_print(void (*write_cb)(void *, con
OPT_WRITE_BOOL(redzone)
OPT_WRITE_BOOL(zero)
OPT_WRITE_BOOL(utrace)
+ OPT_WRITE_BOOL(utrace2)
OPT_WRITE_BOOL(valgrind)
OPT_WRITE_BOOL(xmalloc)
OPT_WRITE_BOOL(tcache)
Modified: projects/utrace2/lib/libc/stdlib/jemalloc/Symbol.map
==============================================================================
--- projects/utrace2/lib/libc/stdlib/jemalloc/Symbol.map Thu Feb 14 02:00:41 2013 (r246781)
+++ projects/utrace2/lib/libc/stdlib/jemalloc/Symbol.map Thu Feb 14 04:28:49 2013 (r246782)
@@ -26,6 +26,7 @@ FBSD_1.3 {
sallocm;
dallocm;
nallocm;
+ /* __jemalloc_opt_utrace;*/
};
FBSDprivate_1.0 {
More information about the svn-src-projects
mailing list