projects
/
lttngtop.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
statedump_process_state & problems patches
[lttngtop.git]
/
src
/
lttngtop.c
diff --git
a/src/lttngtop.c
b/src/lttngtop.c
index c4dc4ced60fc0098f307bf5d490c13ff24dec61d..52f0046bd63f4e3cdc74a021a4cc9d20da4f19ee 100644
(file)
--- a/
src/lttngtop.c
+++ b/
src/lttngtop.c
@@
-22,6
+22,7
@@
#include <babeltrace/babeltrace.h>
#include <babeltrace/ctf/events.h>
#include <babeltrace/ctf/callbacks.h>
#include <babeltrace/babeltrace.h>
#include <babeltrace/ctf/events.h>
#include <babeltrace/ctf/callbacks.h>
+#include <babeltrace/ctf/iterator.h>
#include <fcntl.h>
#include <pthread.h>
#include <popt.h>
#include <fcntl.h>
#include <pthread.h>
#include <popt.h>
@@
-194,8
+195,8
@@
void update_perf_value(struct processtop *proc, struct cputime *cpu,
}
}
}
}
-void extract_perf_counter_scope(struct bt_ctf_event *event,
- struct definition *scope,
+void extract_perf_counter_scope(
const
struct bt_ctf_event *event,
+
const
struct definition *scope,
struct processtop *proc,
struct cputime *cpu)
{
struct processtop *proc,
struct cputime *cpu)
{
@@
-212,7
+213,7
@@
void extract_perf_counter_scope(struct bt_ctf_event *event,
for (i = 0; i < count; i++) {
const char *name = bt_ctf_field_name(list[i]);
for (i = 0; i < count; i++) {
const char *name = bt_ctf_field_name(list[i]);
- if (strncmp(name, "
_perf_", 6
) == 0) {
+ if (strncmp(name, "
perf_", 5
) == 0) {
int value = bt_ctf_get_uint64(list[i]);
if (bt_ctf_field_get_error())
continue;
int value = bt_ctf_get_uint64(list[i]);
if (bt_ctf_field_get_error())
continue;
@@
-224,10
+225,10
@@
end:
return;
}
return;
}
-void update_perf_counter(struct processtop *proc, struct bt_ctf_event *event)
+void update_perf_counter(struct processtop *proc,
const
struct bt_ctf_event *event)
{
struct cputime *cpu;
{
struct cputime *cpu;
- struct definition *scope;
+
const
struct definition *scope;
cpu = get_cpu(get_cpu_id(event));
cpu = get_cpu(get_cpu_id(event));
@@
-315,6
+316,11
@@
void init_lttngtop()
sem_init(&pause_sem, 0, 1);
sem_init(&end_trace_sem, 0, 0);
sem_init(&pause_sem, 0, 1);
sem_init(&end_trace_sem, 0, 0);
+ reset_global_counters();
+ lttngtop.nbproc = 0;
+ lttngtop.nbthreads = 0;
+ lttngtop.nbfiles = 0;
+
lttngtop.process_table = g_ptr_array_new();
lttngtop.files_table = g_ptr_array_new();
lttngtop.cpu_table = g_ptr_array_new();
lttngtop.process_table = g_ptr_array_new();
lttngtop.files_table = g_ptr_array_new();
lttngtop.cpu_table = g_ptr_array_new();
@@
-384,7
+390,7
@@
void iter_trace(struct bt_context *bt_ctx)
{
struct bt_ctf_iter *iter;
struct bt_iter_pos begin_pos;
{
struct bt_ctf_iter *iter;
struct bt_iter_pos begin_pos;
- struct bt_ctf_event *event;
+
const
struct bt_ctf_event *event;
int ret = 0;
begin_pos.type = BT_SEEK_BEGIN;
int ret = 0;
begin_pos.type = BT_SEEK_BEGIN;
@@
-406,6
+412,12
@@
void iter_trace(struct bt_context *bt_ctx)
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sched_process_free"),
NULL, 0, handle_sched_process_free, NULL, NULL, NULL);
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sched_process_free"),
NULL, 0, handle_sched_process_free, NULL, NULL, NULL);
+ /* to get all the process from the statedumps */
+ bt_ctf_iter_add_callback(iter,
+ g_quark_from_static_string(
+ "lttng_statedump_process_state"),
+ NULL, 0, handle_statedump_process_state,
+ NULL, NULL, NULL);
/* for IO top */
bt_ctf_iter_add_callback(iter,
/* for IO top */
bt_ctf_iter_add_callback(iter,
@@
-420,10
+432,15
@@
void iter_trace(struct bt_context *bt_ctx)
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sys_open"),
NULL, 0, handle_sys_open, NULL, NULL, NULL);
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sys_open"),
NULL, 0, handle_sys_open, NULL, NULL, NULL);
-
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sys_close"),
NULL, 0, handle_sys_close, NULL, NULL, NULL);
bt_ctf_iter_add_callback(iter,
g_quark_from_static_string("sys_close"),
NULL, 0, handle_sys_close, NULL, NULL, NULL);
+ bt_ctf_iter_add_callback(iter,
+ g_quark_from_static_string(
+ "lttng_statedump_file_descriptor"),
+ NULL, 0, handle_statedump_file_descriptor,
+ NULL, NULL, NULL);
+
while ((event = bt_ctf_iter_read_event(iter)) != NULL) {
ret = bt_iter_next(bt_ctf_get_iter(iter));
if (ret < 0)
while ((event = bt_ctf_iter_read_event(iter)) != NULL) {
ret = bt_iter_next(bt_ctf_get_iter(iter));
if (ret < 0)
@@
-434,7
+451,7
@@
void iter_trace(struct bt_context *bt_ctx)
sem_wait(&end_trace_sem);
end_iter:
sem_wait(&end_trace_sem);
end_iter:
- bt_
iter_destroy(bt_ctf_get_iter(iter)
);
+ bt_
ctf_iter_destroy(iter
);
}
/*
}
/*
This page took
0.025893 seconds
and
4
git commands to generate.