Date: Thu, 14 Feb 2013 04:28:50 +0000 (UTC) From: Alfred Perlstein <alfred@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r246782 - in projects/utrace2: contrib/jemalloc/src lib/libc/stdlib/jemalloc Message-ID: <201302140428.r1E4SoP2055108@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302140428.r1E4SoP2055108>