projects
/
lttv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ok with new tracer
[lttv.git]
/
ltt
/
branches
/
poly
/
lttv
/
lttv
/
state.c
diff --git
a/ltt/branches/poly/lttv/lttv/state.c
b/ltt/branches/poly/lttv/lttv/state.c
index 1be0ce21e270888206265d9c39bac94e54407b5e..00c37cb86149d5166749e71d9fe4c83962d87b51 100644
(file)
--- a/
ltt/branches/poly/lttv/lttv/state.c
+++ b/
ltt/branches/poly/lttv/lttv/state.c
@@
-47,9
+47,8
@@
GQuark
LTT_FACILITY_KERNEL,
LTT_FACILITY_KERNEL_ARCH,
GQuark
LTT_FACILITY_KERNEL,
LTT_FACILITY_KERNEL_ARCH,
- LTT_FACILITY_
PROCESS
,
+ LTT_FACILITY_
LIST
,
LTT_FACILITY_FS,
LTT_FACILITY_FS,
- LTT_FACILITY_STATEDUMP,
LTT_FACILITY_USER_GENERIC;
/* Events Quarks */
LTT_FACILITY_USER_GENERIC;
/* Events Quarks */
@@
-63,13
+62,13
@@
GQuark
LTT_EVENT_IRQ_EXIT,
LTT_EVENT_SOFT_IRQ_ENTRY,
LTT_EVENT_SOFT_IRQ_EXIT,
LTT_EVENT_IRQ_EXIT,
LTT_EVENT_SOFT_IRQ_ENTRY,
LTT_EVENT_SOFT_IRQ_EXIT,
- LTT_EVENT_SCHED
CHANG
E,
- LTT_EVENT_FORK,
- LTT_EVENT_K
ERNEL_THREAD
,
- LTT_EVENT_EXIT,
- LTT_EVENT_FREE,
+ LTT_EVENT_SCHED
_SCHEDUL
E,
+ LTT_EVENT_
PROCESS_
FORK,
+ LTT_EVENT_K
THREAD_CREATE
,
+ LTT_EVENT_
PROCESS_
EXIT,
+ LTT_EVENT_
PROCESS_
FREE,
LTT_EVENT_EXEC,
LTT_EVENT_EXEC,
- LTT_EVENT_
ENUM_
PROCESS_STATE,
+ LTT_EVENT_PROCESS_STATE,
LTT_EVENT_STATEDUMP_END,
LTT_EVENT_FUNCTION_ENTRY,
LTT_EVENT_FUNCTION_EXIT,
LTT_EVENT_STATEDUMP_END,
LTT_EVENT_FUNCTION_ENTRY,
LTT_EVENT_FUNCTION_EXIT,
@@
-82,13
+81,14
@@
GQuark
LTT_FIELD_TRAP_ID,
LTT_FIELD_IRQ_ID,
LTT_FIELD_SOFT_IRQ_ID,
LTT_FIELD_TRAP_ID,
LTT_FIELD_IRQ_ID,
LTT_FIELD_SOFT_IRQ_ID,
- LTT_FIELD_
OUT
,
- LTT_FIELD_
IN
,
- LTT_FIELD_
OUT
_STATE,
+ LTT_FIELD_
PREV_PID
,
+ LTT_FIELD_
NEXT_PID
,
+ LTT_FIELD_
PREV
_STATE,
LTT_FIELD_PARENT_PID,
LTT_FIELD_CHILD_PID,
LTT_FIELD_PID,
LTT_FIELD_TGID,
LTT_FIELD_PARENT_PID,
LTT_FIELD_CHILD_PID,
LTT_FIELD_PID,
LTT_FIELD_TGID,
+ LTT_FIELD_CHILD_TGID,
LTT_FIELD_FILENAME,
LTT_FIELD_NAME,
LTT_FIELD_TYPE,
LTT_FIELD_FILENAME,
LTT_FIELD_NAME,
LTT_FIELD_TYPE,
@@
-1436,7
+1436,7
@@
create_name_tables(LttvTraceState *tcs)
name_tables->nb_syscalls = 0;
}
name_tables->nb_syscalls = 0;
}
- if(!lttv_trace_find_hook(tcs->parent.t, LTT_FACILITY_KERNEL,
+ if(!lttv_trace_find_hook(tcs->parent.t, LTT_FACILITY_KERNEL
_ARCH
,
LTT_EVENT_TRAP_ENTRY,
LTT_FIELD_TRAP_ID, 0, 0,
NULL, NULL, &h)) {
LTT_EVENT_TRAP_ENTRY,
LTT_FIELD_TRAP_ID, 0, 0,
NULL, NULL, &h)) {
@@
-2165,8
+2165,8
@@
static gboolean schedchange(void *hook_data, void *call_data)
process->state->change = s->parent.timestamp;
}
process->state->change = s->parent.timestamp;
}
- if(state_out == 32)
- exit_process(s, process); /* EXIT_DEAD */
+ if(state_out == 32
|| state_out == 128
)
+ exit_process(s, process); /* EXIT_DEAD
|| TASK_DEAD
*/
/* see sched.h for states */
}
}
/* see sched.h for states */
}
}
@@
-2366,6
+2366,7
@@
static gboolean process_exec(void *hook_data, void *call_data)
guint cpu = s->cpu;
LttvProcessState *process = ts->running_process[cpu];
guint cpu = s->cpu;
LttvProcessState *process = ts->running_process[cpu];
+#if 0//how to use a sequence that must be transformed in a string
/* PID of the process to release */
guint64 name_len = ltt_event_field_element_number(e, thf->f1);
//name = ltt_event_get_string(e, thf->f1);
/* PID of the process to release */
guint64 name_len = ltt_event_field_element_number(e, thf->f1);
//name = ltt_event_get_string(e, thf->f1);
@@
-2375,10
+2376,12
@@
static gboolean process_exec(void *hook_data, void *call_data)
gchar *null_term_name = g_new(gchar, name_len+1);
memcpy(null_term_name, name_begin, name_len);
null_term_name[name_len] = '\0';
gchar *null_term_name = g_new(gchar, name_len+1);
memcpy(null_term_name, name_begin, name_len);
null_term_name[name_len] = '\0';
-
process->name = g_quark_from_string(null_term_name);
process->name = g_quark_from_string(null_term_name);
+#endif //0
+
+ process->name = ltt_event_get_string(e, thf->f1);
process->brand = LTTV_STATE_UNBRANDED;
process->brand = LTTV_STATE_UNBRANDED;
- g_free(null_term_name);
+
//
g_free(null_term_name);
return FALSE;
}
return FALSE;
}
@@
-2444,7
+2447,8
@@
static void fix_process(gpointer key, gpointer value,
//g_assert(timestamp->tv_sec != 0);
es->change = *timestamp;
es->cum_cpu_time = ltt_time_zero;
//g_assert(timestamp->tv_sec != 0);
es->change = *timestamp;
es->cum_cpu_time = ltt_time_zero;
- //es->s = LTTV_STATE_WAIT;
+ if(es->s == LTTV_STATE_WAIT_FORK)
+ es->s = LTTV_STATE_WAIT;
}
}
}
}
}
}
@@
-2685,13
+2689,13
@@
void lttv_state_add_event_hooks(LttvTracesetState *self)
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_ENTRY,
+ LTT_FACILITY_KERNEL
_ARCH
, LTT_EVENT_TRAP_ENTRY,
LTT_FIELD_TRAP_ID, 0, 0,
trap_entry, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FIELD_TRAP_ID, 0, 0,
trap_entry, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_KERNEL, LTT_EVENT_TRAP_EXIT,
+ LTT_FACILITY_KERNEL
_ARCH
, LTT_EVENT_TRAP_EXIT,
0, 0, 0,
trap_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
0, 0, 0,
trap_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
@@
-2721,32
+2725,32
@@
void lttv_state_add_event_hooks(LttvTracesetState *self)
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_
PROCESS, LTT_EVENT_SCHEDCHANG
E,
- LTT_FIELD_
OUT, LTT_FIELD_IN, LTT_FIELD_OUT
_STATE,
+ LTT_FACILITY_
KERNEL, LTT_EVENT_SCHED_SCHEDUL
E,
+ LTT_FIELD_
PREV_PID, LTT_FIELD_NEXT_PID, LTT_FIELD_PREV
_STATE,
schedchange, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
schedchange, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_
PROCESS, LTT_EVENT
_FORK,
- LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, LTT_FIELD_TGID,
+ LTT_FACILITY_
KERNEL, LTT_EVENT_PROCESS
_FORK,
+ LTT_FIELD_PARENT_PID, LTT_FIELD_CHILD_PID, LTT_FIELD_
CHILD_
TGID,
process_fork, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
process_fork, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_
PROCESS, LTT_EVENT_KERNEL_THREAD
,
+ LTT_FACILITY_
KERNEL_ARCH, LTT_EVENT_KTHREAD_CREATE
,
LTT_FIELD_PID, 0, 0,
process_kernel_thread, NULL, &g_array_index(hooks, LttvTraceHook,
hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FIELD_PID, 0, 0,
process_kernel_thread, NULL, &g_array_index(hooks, LttvTraceHook,
hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_
PROCESS, LTT_EVENT
_EXIT,
+ LTT_FACILITY_
KERNEL, LTT_EVENT_PROCESS
_EXIT,
LTT_FIELD_PID, 0, 0,
process_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FIELD_PID, 0, 0,
process_exit, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_
PROCESS, LTT_EVENT
_FREE,
+ LTT_FACILITY_
KERNEL, LTT_EVENT_PROCESS
_FREE,
LTT_FIELD_PID, 0, 0,
process_free, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
LTT_FIELD_PID, 0, 0,
process_free, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
@@
-2765,13
+2769,13
@@
void lttv_state_add_event_hooks(LttvTracesetState *self)
/* statedump-related hooks */
ret = lttv_trace_find_hook(ts->parent.t,
/* statedump-related hooks */
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_
STATEDUMP, LTT_EVENT_ENUM
_PROCESS_STATE,
+ LTT_FACILITY_
LIST, LTT_EVENT
_PROCESS_STATE,
LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME,
enum_process_state, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
LTT_FIELD_PID, LTT_FIELD_PARENT_PID, LTT_FIELD_NAME,
enum_process_state, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
ret = lttv_trace_find_hook(ts->parent.t,
- LTT_FACILITY_
STATEDUMP
, LTT_EVENT_STATEDUMP_END,
+ LTT_FACILITY_
LIST
, LTT_EVENT_STATEDUMP_END,
0, 0, 0,
statedump_end, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
0, 0, 0,
statedump_end, NULL, &g_array_index(hooks, LttvTraceHook, hn++));
if(ret) hn--;
@@
-3461,9
+3465,8
@@
static void module_init()
LTT_FACILITY_KERNEL = g_quark_from_string("kernel");
LTT_FACILITY_KERNEL_ARCH = g_quark_from_string("kernel_arch");
LTT_FACILITY_KERNEL = g_quark_from_string("kernel");
LTT_FACILITY_KERNEL_ARCH = g_quark_from_string("kernel_arch");
- LTT_FACILITY_PROCESS = g_quark_from_string("process");
LTT_FACILITY_FS = g_quark_from_string("fs");
LTT_FACILITY_FS = g_quark_from_string("fs");
- LTT_FACILITY_
STATEDUMP = g_quark_from_string("statedump
");
+ LTT_FACILITY_
LIST = g_quark_from_string("list
");
LTT_FACILITY_USER_GENERIC = g_quark_from_string("user_generic");
LTT_FACILITY_USER_GENERIC = g_quark_from_string("user_generic");
@@
-3475,13
+3478,13
@@
static void module_init()
LTT_EVENT_IRQ_EXIT = g_quark_from_string("irq_exit");
LTT_EVENT_SOFT_IRQ_ENTRY = g_quark_from_string("soft_irq_entry");
LTT_EVENT_SOFT_IRQ_EXIT = g_quark_from_string("soft_irq_exit");
LTT_EVENT_IRQ_EXIT = g_quark_from_string("irq_exit");
LTT_EVENT_SOFT_IRQ_ENTRY = g_quark_from_string("soft_irq_entry");
LTT_EVENT_SOFT_IRQ_EXIT = g_quark_from_string("soft_irq_exit");
- LTT_EVENT_SCHED
CHANGE = g_quark_from_string("schedchang
e");
- LTT_EVENT_
FORK = g_quark_from_string("
fork");
- LTT_EVENT_K
ERNEL_THREAD = g_quark_from_string("kernel_thread
");
- LTT_EVENT_
EXIT = g_quark_from_string("
exit");
- LTT_EVENT_
FREE = g_quark_from_string("
free");
+ LTT_EVENT_SCHED
_SCHEDULE = g_quark_from_string("sched_schedul
e");
+ LTT_EVENT_
PROCESS_FORK = g_quark_from_string("process_
fork");
+ LTT_EVENT_K
THREAD_CREATE = g_quark_from_string("kthread_create
");
+ LTT_EVENT_
PROCESS_EXIT = g_quark_from_string("process_
exit");
+ LTT_EVENT_
PROCESS_FREE = g_quark_from_string("process_
free");
LTT_EVENT_EXEC = g_quark_from_string("exec");
LTT_EVENT_EXEC = g_quark_from_string("exec");
- LTT_EVENT_
ENUM_PROCESS_STATE = g_quark_from_string("enumerate_
process_state");
+ LTT_EVENT_
PROCESS_STATE = g_quark_from_string("
process_state");
LTT_EVENT_STATEDUMP_END = g_quark_from_string("statedump_end");
LTT_EVENT_FUNCTION_ENTRY = g_quark_from_string("function_entry");
LTT_EVENT_FUNCTION_EXIT = g_quark_from_string("function_exit");
LTT_EVENT_STATEDUMP_END = g_quark_from_string("statedump_end");
LTT_EVENT_FUNCTION_ENTRY = g_quark_from_string("function_entry");
LTT_EVENT_FUNCTION_EXIT = g_quark_from_string("function_exit");
@@
-3492,13
+3495,14
@@
static void module_init()
LTT_FIELD_TRAP_ID = g_quark_from_string("trap_id");
LTT_FIELD_IRQ_ID = g_quark_from_string("irq_id");
LTT_FIELD_SOFT_IRQ_ID = g_quark_from_string("softirq_id");
LTT_FIELD_TRAP_ID = g_quark_from_string("trap_id");
LTT_FIELD_IRQ_ID = g_quark_from_string("irq_id");
LTT_FIELD_SOFT_IRQ_ID = g_quark_from_string("softirq_id");
- LTT_FIELD_
OUT = g_quark_from_string("out
");
- LTT_FIELD_
IN = g_quark_from_string("in
");
- LTT_FIELD_
OUT_STATE = g_quark_from_string("out
_state");
+ LTT_FIELD_
PREV_PID = g_quark_from_string("prev_pid
");
+ LTT_FIELD_
NEXT_PID = g_quark_from_string("next_pid
");
+ LTT_FIELD_
PREV_STATE = g_quark_from_string("prev
_state");
LTT_FIELD_PARENT_PID = g_quark_from_string("parent_pid");
LTT_FIELD_CHILD_PID = g_quark_from_string("child_pid");
LTT_FIELD_PID = g_quark_from_string("pid");
LTT_FIELD_TGID = g_quark_from_string("tgid");
LTT_FIELD_PARENT_PID = g_quark_from_string("parent_pid");
LTT_FIELD_CHILD_PID = g_quark_from_string("child_pid");
LTT_FIELD_PID = g_quark_from_string("pid");
LTT_FIELD_TGID = g_quark_from_string("tgid");
+ LTT_FIELD_CHILD_TGID = g_quark_from_string("child_tgid");
LTT_FIELD_FILENAME = g_quark_from_string("filename");
LTT_FIELD_NAME = g_quark_from_string("name");
LTT_FIELD_TYPE = g_quark_from_string("type");
LTT_FIELD_FILENAME = g_quark_from_string("filename");
LTT_FIELD_NAME = g_quark_from_string("name");
LTT_FIELD_TYPE = g_quark_from_string("type");
This page took
0.03434 seconds
and
4
git commands to generate.