Create prof_sys module for reading system thread name
This commit is contained in:
parent
adfd9d7b1d
commit
03ae509f32
@ -133,6 +133,7 @@ C_SRCS := $(srcroot)src/jemalloc.c \
|
|||||||
$(srcroot)src/prof_data.c \
|
$(srcroot)src/prof_data.c \
|
||||||
$(srcroot)src/prof_log.c \
|
$(srcroot)src/prof_log.c \
|
||||||
$(srcroot)src/prof_recent.c \
|
$(srcroot)src/prof_recent.c \
|
||||||
|
$(srcroot)src/prof_sys.c \
|
||||||
$(srcroot)src/rtree.c \
|
$(srcroot)src/rtree.c \
|
||||||
$(srcroot)src/safety_check.c \
|
$(srcroot)src/safety_check.c \
|
||||||
$(srcroot)src/sc.c \
|
$(srcroot)src/sc.c \
|
||||||
|
@ -90,8 +90,6 @@ uint64_t prof_sample_postponed_event_wait(tsd_t *tsd);
|
|||||||
void prof_sample_event_handler(tsd_t *tsd, uint64_t elapsed);
|
void prof_sample_event_handler(tsd_t *tsd, uint64_t elapsed);
|
||||||
|
|
||||||
/* Used by unit tests. */
|
/* Used by unit tests. */
|
||||||
typedef int (prof_sys_thread_name_read_t)(char *buf, size_t limit);
|
|
||||||
extern prof_sys_thread_name_read_t *JET_MUTABLE prof_sys_thread_name_read;
|
|
||||||
typedef int (prof_dump_open_file_t)(const char *, int);
|
typedef int (prof_dump_open_file_t)(const char *, int);
|
||||||
extern prof_dump_open_file_t *JET_MUTABLE prof_dump_open_file;
|
extern prof_dump_open_file_t *JET_MUTABLE prof_dump_open_file;
|
||||||
typedef ssize_t (prof_dump_write_file_t)(int, const void *, size_t);
|
typedef ssize_t (prof_dump_write_file_t)(int, const void *, size_t);
|
||||||
|
10
include/jemalloc/internal/prof_sys.h
Normal file
10
include/jemalloc/internal/prof_sys.h
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#ifndef JEMALLOC_INTERNAL_PROF_SYS_H
|
||||||
|
#define JEMALLOC_INTERNAL_PROF_SYS_H
|
||||||
|
|
||||||
|
void prof_sys_thread_name_fetch(tsd_t *tsd);
|
||||||
|
|
||||||
|
/* Used in unit tests. */
|
||||||
|
typedef int (prof_sys_thread_name_read_t)(char *buf, size_t limit);
|
||||||
|
extern prof_sys_thread_name_read_t *JET_MUTABLE prof_sys_thread_name_read;
|
||||||
|
|
||||||
|
#endif /* JEMALLOC_INTERNAL_PROF_SYS_H */
|
@ -74,6 +74,7 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\prof_data.c" />
|
<ClCompile Include="..\..\..\..\src\prof_data.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\prof_log.c" />
|
<ClCompile Include="..\..\..\..\src\prof_log.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\prof_recent.c" />
|
<ClCompile Include="..\..\..\..\src\prof_recent.c" />
|
||||||
|
<ClCompile Include="..\..\..\..\src\prof_sys.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\rtree.c" />
|
<ClCompile Include="..\..\..\..\src\rtree.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\safety_check.c" />
|
<ClCompile Include="..\..\..\..\src\safety_check.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\sc.c" />
|
<ClCompile Include="..\..\..\..\src\sc.c" />
|
||||||
|
@ -106,6 +106,9 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\prof_recent.c">
|
<ClCompile Include="..\..\..\..\src\prof_recent.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\src\prof_sys.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\src\rtree.c">
|
<ClCompile Include="..\..\..\..\src\rtree.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -74,6 +74,7 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\prof_data.c" />
|
<ClCompile Include="..\..\..\..\src\prof_data.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\prof_log.c" />
|
<ClCompile Include="..\..\..\..\src\prof_log.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\prof_recent.c" />
|
<ClCompile Include="..\..\..\..\src\prof_recent.c" />
|
||||||
|
<ClCompile Include="..\..\..\..\src\prof_sys.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\rtree.c" />
|
<ClCompile Include="..\..\..\..\src\rtree.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\safety_check.c" />
|
<ClCompile Include="..\..\..\..\src\safety_check.c" />
|
||||||
<ClCompile Include="..\..\..\..\src\sc.c" />
|
<ClCompile Include="..\..\..\..\src\sc.c" />
|
||||||
|
@ -106,6 +106,9 @@
|
|||||||
<ClCompile Include="..\..\..\..\src\prof_recent.c">
|
<ClCompile Include="..\..\..\..\src\prof_recent.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\src\prof_sys.c">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\src\rtree.c">
|
<ClCompile Include="..\..\..\..\src\rtree.c">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
22
src/prof.c
22
src/prof.c
@ -8,6 +8,7 @@
|
|||||||
#include "jemalloc/internal/prof_data.h"
|
#include "jemalloc/internal/prof_data.h"
|
||||||
#include "jemalloc/internal/prof_log.h"
|
#include "jemalloc/internal/prof_log.h"
|
||||||
#include "jemalloc/internal/prof_recent.h"
|
#include "jemalloc/internal/prof_recent.h"
|
||||||
|
#include "jemalloc/internal/prof_sys.h"
|
||||||
#include "jemalloc/internal/thread_event.h"
|
#include "jemalloc/internal/thread_event.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -133,27 +134,6 @@ prof_alloc_rollback(tsd_t *tsd, prof_tctx_t *tctx) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
prof_sys_thread_name_read_impl(char *buf, size_t limit) {
|
|
||||||
#ifdef JEMALLOC_HAVE_PTHREAD_SETNAME_NP
|
|
||||||
return pthread_getname_np(pthread_self(), buf, limit);
|
|
||||||
#else
|
|
||||||
return ENOSYS;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
prof_sys_thread_name_read_t *JET_MUTABLE prof_sys_thread_name_read =
|
|
||||||
prof_sys_thread_name_read_impl;
|
|
||||||
|
|
||||||
static void
|
|
||||||
prof_sys_thread_name_fetch(tsd_t *tsd) {
|
|
||||||
#define THREAD_NAME_MAX_LEN 16
|
|
||||||
char buf[THREAD_NAME_MAX_LEN];
|
|
||||||
if (!prof_sys_thread_name_read(buf, THREAD_NAME_MAX_LEN)) {
|
|
||||||
prof_thread_name_set_impl(tsd, buf);
|
|
||||||
}
|
|
||||||
#undef THREAD_NAME_MAX_LEN
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
prof_malloc_sample_object(tsd_t *tsd, const void *ptr, size_t size,
|
prof_malloc_sample_object(tsd_t *tsd, const void *ptr, size_t size,
|
||||||
size_t usize, prof_tctx_t *tctx) {
|
size_t usize, prof_tctx_t *tctx) {
|
||||||
|
27
src/prof_sys.c
Normal file
27
src/prof_sys.c
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#define JEMALLOC_PROF_SYS_C_
|
||||||
|
#include "jemalloc/internal/jemalloc_preamble.h"
|
||||||
|
#include "jemalloc/internal/jemalloc_internal_includes.h"
|
||||||
|
|
||||||
|
#include "jemalloc/internal/prof_data.h"
|
||||||
|
#include "jemalloc/internal/prof_sys.h"
|
||||||
|
|
||||||
|
static int
|
||||||
|
prof_sys_thread_name_read_impl(char *buf, size_t limit) {
|
||||||
|
#ifdef JEMALLOC_HAVE_PTHREAD_SETNAME_NP
|
||||||
|
return pthread_getname_np(pthread_self(), buf, limit);
|
||||||
|
#else
|
||||||
|
return ENOSYS;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
prof_sys_thread_name_read_t *JET_MUTABLE prof_sys_thread_name_read =
|
||||||
|
prof_sys_thread_name_read_impl;
|
||||||
|
|
||||||
|
void
|
||||||
|
prof_sys_thread_name_fetch(tsd_t *tsd) {
|
||||||
|
#define THREAD_NAME_MAX_LEN 16
|
||||||
|
char buf[THREAD_NAME_MAX_LEN];
|
||||||
|
if (!prof_sys_thread_name_read(buf, THREAD_NAME_MAX_LEN)) {
|
||||||
|
prof_thread_name_set_impl(tsd, buf);
|
||||||
|
}
|
||||||
|
#undef THREAD_NAME_MAX_LEN
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
#include "test/jemalloc_test.h"
|
#include "test/jemalloc_test.h"
|
||||||
|
|
||||||
|
#include "jemalloc/internal/prof_sys.h"
|
||||||
|
|
||||||
static const char *test_thread_name = "test_name";
|
static const char *test_thread_name = "test_name";
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
Loading…
Reference in New Issue
Block a user