X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=usertrace-fast%2Fltt-usertrace-fast.c;h=55ba880ab8684f9038bc05f3f9ba4fba64fe0edf;hb=8b30e7bcf2fe4ab9afecf8012c180aa7d4424a34;hp=fc919c348452d8a52dffcdadea560daa7c462d2a;hpb=5ffa9d14c030ab0ac4724950721f9b0c24974254;p=lttv.git diff --git a/usertrace-fast/ltt-usertrace-fast.c b/usertrace-fast/ltt-usertrace-fast.c index fc919c34..55ba880a 100644 --- a/usertrace-fast/ltt-usertrace-fast.c +++ b/usertrace-fast/ltt-usertrace-fast.c @@ -42,6 +42,7 @@ */ #define _GNU_SOURCE +#define LTT_TRACE #include #include #include @@ -60,10 +61,13 @@ #include #include #include +#include #include #include //for get_cycles() +_syscall0(pid_t,gettid) + #include "ltt-usertrace-fast.h" enum force_switch_mode { FORCE_ACTIVE, FORCE_FLUSH }; @@ -93,7 +97,7 @@ static void ltt_usertrace_fast_cleanup(void *arg) /* Reader (the disk dumper daemon) */ static pid_t traced_pid = 0; -static pthread_t traced_thread = 0; +static pid_t traced_tid = 0; static int parent_exited = 0; /* signal handling */ @@ -365,7 +369,7 @@ get_error: /* This function is called by ltt_rw_init which has signals blocked */ static void ltt_usertrace_fast_daemon(struct ltt_trace_info *shared_trace_info, - sigset_t oldset, pid_t l_traced_pid, pthread_t l_traced_thread) + sigset_t oldset, pid_t l_traced_pid, pthread_t l_traced_tid) { struct sigaction act; int ret; @@ -376,10 +380,10 @@ static void ltt_usertrace_fast_daemon(struct ltt_trace_info *shared_trace_info, traced_pid = l_traced_pid; - traced_thread = l_traced_thread; + traced_tid = l_traced_tid; - printf("LTT ltt_usertrace_fast_daemon : init is %d, pid is %lu, traced_pid is %lu\n", - shared_trace_info->init, getpid(), traced_pid); + printf("LTT ltt_usertrace_fast_daemon : init is %d, pid is %lu, traced_pid is %lu, traced_tid is %lu\n", + shared_trace_info->init, getpid(), traced_pid, traced_tid); act.sa_handler = handler_sigusr1; act.sa_flags = 0; @@ -420,7 +424,7 @@ static void ltt_usertrace_fast_daemon(struct ltt_trace_info *shared_trace_info, exit(-1); } snprintf(identifier_name, PATH_MAX-1, "%lu.%lu.%llu", - traced_pid, traced_thread, get_cycles()); + traced_tid, traced_pid, get_cycles()); snprintf(outfile_name, PATH_MAX-1, "facilities-%s", identifier_name); fd_fac = creat(outfile_name, 0644); @@ -480,7 +484,7 @@ void ltt_rw_init(void) int ret; sigset_t set, oldset; pid_t l_traced_pid = getpid(); - pthread_t l_traced_thread = pthread_self(); + pid_t l_traced_tid = gettid(); /* parent : create the shared memory map */ shared_trace_info = mmap(0, sizeof(*thread_trace_info), @@ -532,7 +536,7 @@ void ltt_rw_init(void) /* Child */ role = LTT_ROLE_READER; ltt_usertrace_fast_daemon(shared_trace_info, oldset, l_traced_pid, - l_traced_thread); + l_traced_tid); /* Should never return */ exit(-1); } else if(pid < 0) {