projects
/
lttngtop.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
api fix
[lttngtop.git]
/
src
/
lttngtop.c
diff --git
a/src/lttngtop.c
b/src/lttngtop.c
index 9b650f4bddc5b43926bf318ba6961d1b591caf7c..cd405da1be76bbb6272a94ab7aaadeedde4a5746 100644
(file)
--- a/
src/lttngtop.c
+++ b/
src/lttngtop.c
@@
-93,11
+93,15
@@
void *refresh_thread(void *p)
if (quit) {
sem_post(&pause_sem);
sem_post(&timer);
if (quit) {
sem_post(&pause_sem);
sem_post(&timer);
+ sem_post(&end_trace_sem);
sem_post(&goodtodisplay);
sem_post(&goodtodisplay);
+ sem_post(&goodtoupdate);
pthread_exit(0);
}
pthread_exit(0);
}
+ if (!opt_input_path) {
bt_list_for_each_entry(mmap_info, &mmap_list.head, list)
helper_kernctl_buffer_flush(mmap_info->fd);
bt_list_for_each_entry(mmap_info, &mmap_list.head, list)
helper_kernctl_buffer_flush(mmap_info->fd);
+ }
sem_wait(&pause_sem);
sem_post(&pause_sem);
sem_post(&timer);
sem_wait(&pause_sem);
sem_post(&pause_sem);
sem_post(&timer);
@@
-293,7
+297,7
@@
void update_perf_counter(struct processtop *proc, const struct bt_ctf_event *eve
enum bt_cb_ret fix_process_table(struct bt_ctf_event *call_data,
void *private_data)
{
enum bt_cb_ret fix_process_table(struct bt_ctf_event *call_data,
void *private_data)
{
- int pid, tid, ppid;
+ int pid, tid, ppid
, vpid, vtid, vppid
;
char *comm;
struct processtop *parent, *child;
unsigned long timestamp;
char *comm;
struct processtop *parent, *child;
unsigned long timestamp;
@@
-314,6
+318,18
@@
enum bt_cb_ret fix_process_table(struct bt_ctf_event *call_data,
if (ppid == -1ULL) {
goto error;
}
if (ppid == -1ULL) {
goto error;
}
+ vpid = get_context_vpid(call_data);
+ if (pid == -1ULL) {
+ vpid = -1;
+ }
+ vtid = get_context_vtid(call_data);
+ if (tid == -1ULL) {
+ vtid = -1;
+ }
+ vppid = get_context_vppid(call_data);
+ if (ppid == -1ULL) {
+ vppid = -1;
+ }
comm = get_context_comm(call_data);
if (!comm) {
goto error;
comm = get_context_comm(call_data);
if (!comm) {
goto error;
@@
-323,7
+339,7
@@
enum bt_cb_ret fix_process_table(struct bt_ctf_event *call_data,
child = find_process_tid(<tngtop, tid, comm);
if (!child)
child = add_proc(<tngtop, tid, comm, timestamp);
child = find_process_tid(<tngtop, tid, comm);
if (!child)
child = add_proc(<tngtop, tid, comm, timestamp);
- update_proc(child, pid, tid, ppid, comm);
+ update_proc(child, pid, tid, ppid,
vpid, vtid, vppid,
comm);
if (pid != tid) {
/* find or create the parent */
if (pid != tid) {
/* find or create the parent */
@@
-473,7
+489,7
@@
void iter_trace(struct bt_context *bt_ctx)
NULL, NULL, NULL);
}
NULL, NULL, NULL);
}
- while ((event = bt_ctf_iter_read_event(iter)) != NULL) {
+ while ((event = bt_ctf_iter_read_event(iter
, NULL
)) != NULL) {
if (quit || reload_trace)
goto end_iter;
ret = bt_iter_next(bt_ctf_get_iter(iter));
if (quit || reload_trace)
goto end_iter;
ret = bt_iter_next(bt_ctf_get_iter(iter));
@@
-834,7
+850,7
@@
end:
return ret;
}
return ret;
}
-
void *
setup_live_tracing()
+
int
setup_live_tracing()
{
struct lttng_domain dom;
struct lttng_channel chan;
{
struct lttng_domain dom;
struct lttng_channel chan;
@@
-853,7
+869,7
@@
void *setup_live_tracing()
if ((ret = setup_consumer(command_sock_path, threads, ctx)) < 0) {
fprintf(stderr,"error setting up consumer\n");
if ((ret = setup_consumer(command_sock_path, threads, ctx)) < 0) {
fprintf(stderr,"error setting up consumer\n");
- goto e
nd
;
+ goto e
rror
;
}
available_snapshots = g_ptr_array_new();
}
available_snapshots = g_ptr_array_new();
@@
-867,12
+883,12
@@
void *setup_live_tracing()
if ((ret = lttng_create_session("test", "/tmp/livesession")) < 0) {
fprintf(stderr,"error creating the session : %s\n",
helper_lttcomm_get_readable_code(ret));
if ((ret = lttng_create_session("test", "/tmp/livesession")) < 0) {
fprintf(stderr,"error creating the session : %s\n",
helper_lttcomm_get_readable_code(ret));
- goto e
nd
;
+ goto e
rror
;
}
if ((handle = lttng_create_handle("test", &dom)) == NULL) {
fprintf(stderr,"error creating handle\n");
}
if ((handle = lttng_create_handle("test", &dom)) == NULL) {
fprintf(stderr,"error creating handle\n");
- goto e
nd
;
+ goto e
rror_session
;
}
/*
}
/*
@@
-888,7
+904,7
@@
void *setup_live_tracing()
if ((ret = lttng_register_consumer(handle, command_sock_path)) < 0) {
fprintf(stderr,"error registering consumer : %s\n",
helper_lttcomm_get_readable_code(ret));
if ((ret = lttng_register_consumer(handle, command_sock_path)) < 0) {
fprintf(stderr,"error registering consumer : %s\n",
helper_lttcomm_get_readable_code(ret));
- goto e
nd
;
+ goto e
rror_session
;
}
strcpy(chan.name, channel_name);
}
strcpy(chan.name, channel_name);
@@
-903,7
+919,7
@@
void *setup_live_tracing()
if ((ret = lttng_enable_channel(handle, &chan)) < 0) {
fprintf(stderr,"error creating channel : %s\n",
helper_lttcomm_get_readable_code(ret));
if ((ret = lttng_enable_channel(handle, &chan)) < 0) {
fprintf(stderr,"error creating channel : %s\n",
helper_lttcomm_get_readable_code(ret));
- goto e
nd
;
+ goto e
rror_session
;
}
memset(&ev, '\0', sizeof(struct lttng_event));
}
memset(&ev, '\0', sizeof(struct lttng_event));
@@
-912,14
+928,14
@@
void *setup_live_tracing()
if ((ret = lttng_enable_event(handle, &ev, channel_name)) < 0) {
fprintf(stderr,"error enabling event : %s\n",
helper_lttcomm_get_readable_code(ret));
if ((ret = lttng_enable_event(handle, &ev, channel_name)) < 0) {
fprintf(stderr,"error enabling event : %s\n",
helper_lttcomm_get_readable_code(ret));
- goto e
nd
;
+ goto e
rror_session
;
}
ev.type = LTTNG_EVENT_SYSCALL;
if ((ret = lttng_enable_event(handle, &ev, channel_name)) < 0) {
fprintf(stderr,"error enabling syscalls : %s\n",
helper_lttcomm_get_readable_code(ret));
}
ev.type = LTTNG_EVENT_SYSCALL;
if ((ret = lttng_enable_event(handle, &ev, channel_name)) < 0) {
fprintf(stderr,"error enabling syscalls : %s\n",
helper_lttcomm_get_readable_code(ret));
- goto e
nd
;
+ goto e
rror_session
;
}
kctxpid.ctx = LTTNG_EVENT_CONTEXT_PID;
}
kctxpid.ctx = LTTNG_EVENT_CONTEXT_PID;
@@
-930,11
+946,15
@@
void *setup_live_tracing()
lttng_add_context(handle, &kctxcomm, NULL, NULL);
kctxtid.ctx = LTTNG_EVENT_CONTEXT_TID;
lttng_add_context(handle, &kctxtid, NULL, NULL);
lttng_add_context(handle, &kctxcomm, NULL, NULL);
kctxtid.ctx = LTTNG_EVENT_CONTEXT_TID;
lttng_add_context(handle, &kctxtid, NULL, NULL);
+ kctxpid.ctx = LTTNG_EVENT_CONTEXT_VPID;
+ lttng_add_context(handle, &kctxpid, NULL, NULL);
+ kctxtid.ctx = LTTNG_EVENT_CONTEXT_VTID;
+ lttng_add_context(handle, &kctxtid, NULL, NULL);
if ((ret = lttng_start_tracing("test")) < 0) {
fprintf(stderr,"error starting tracing : %s\n",
helper_lttcomm_get_readable_code(ret));
if ((ret = lttng_start_tracing("test")) < 0) {
fprintf(stderr,"error starting tracing : %s\n",
helper_lttcomm_get_readable_code(ret));
- goto e
nd
;
+ goto e
rror_session
;
}
helper_kernctl_buffer_flush(consumerd_metadata);
}
helper_kernctl_buffer_flush(consumerd_metadata);
@@
-942,8
+962,12
@@
void *setup_live_tracing()
/* block until metadata is ready */
sem_init(&metadata_available, 0, 0);
/* block until metadata is ready */
sem_init(&metadata_available, 0, 0);
-end:
- return NULL;
+ return 0;
+
+error_session:
+ lttng_destroy_session("test");
+error:
+ return -1;
}
int main(int argc, char **argv)
}
int main(int argc, char **argv)
@@
-963,7
+987,10
@@
int main(int argc, char **argv)
}
if (!opt_input_path) {
}
if (!opt_input_path) {
- setup_live_tracing();
+ ret = setup_live_tracing();
+ if (ret < 0) {
+ goto end;
+ }
init_lttngtop();
if (!opt_textdump) {
pthread_create(&display_thread, NULL, ncurses_display, (void *) NULL);
init_lttngtop();
if (!opt_textdump) {
pthread_create(&display_thread, NULL, ncurses_display, (void *) NULL);
@@
-990,7
+1017,6
@@
int main(int argc, char **argv)
bt_list_for_each_entry(mmap_info, &mmap_list.head, list) {
ret = helper_kernctl_get_mmap_len(mmap_info->fd, &mmap_len);
if (ret != 0) {
bt_list_for_each_entry(mmap_info, &mmap_list.head, list) {
ret = helper_kernctl_get_mmap_len(mmap_info->fd, &mmap_len);
if (ret != 0) {
- ret = errno;
bt_list_del(&mmap_info->list);
}
}
bt_list_del(&mmap_info->list);
}
}
This page took
0.025817 seconds
and
4
git commands to generate.