X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Fmodules%2Fgui%2Fresourceview%2Feventhooks.c;h=8075f27a1320405e18a0e9b84d83ffc7787cafe9;hb=8284135eaaf40b6d7897c63a59a7df0b7f0cd2c7;hp=49ac598044817c72beab6f8bab8ca28d9125a98d;hpb=dd47d0d8af96afdc24f6a5465a42d7db3ac8c038;p=lttv.git diff --git a/lttv/modules/gui/resourceview/eventhooks.c b/lttv/modules/gui/resourceview/eventhooks.c index 49ac5980..8075f27a 100644 --- a/lttv/modules/gui/resourceview/eventhooks.c +++ b/lttv/modules/gui/resourceview/eventhooks.c @@ -397,7 +397,8 @@ int before_schedchange_hook(void *hook_data, void *call_data) guint cpu = lttv_traceset_get_cpuid_from_event(event); ts = event->state; - guint trace_num = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number + guint trace_num = lttv_traceset_get_trace_index_from_event(event); + /* Add process to process list (if not present) */ HashedResourceData *hashed_process_data = NULL; @@ -556,7 +557,7 @@ int after_schedchange_hook(void *hook_data, void *call_data) //process_in = lttv_state_find_process(ts, ANY_CPU, pid_in); //process_in = tfs->process; guint cpu = lttv_traceset_get_cpuid_from_event(event); - guint trace_num = 0; /* TODO set right trace number */ + guint trace_num = lttv_traceset_get_trace_index_from_event(event); process_in = ts->running_process[cpu]; /* It should exist, because we are after the state update. */ #ifdef EXTRA_CHECK @@ -653,7 +654,7 @@ int before_execmode_hook(void *hook_data, void *call_data) cpu = lttv_traceset_get_cpuid_from_event(event); ts = event->state; - guint trace_num = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number + guint trace_num = lttv_traceset_get_trace_index_from_event(event); process = ts->running_process[cpu]; g_assert(process != NULL); @@ -826,7 +827,7 @@ int before_execmode_hook_irq(void *hook_data, void *call_data) } else return 0; - guint trace_num = 0;//TODO fdeslauriers 2012-07-17: // Use trace handle to know trace number + guint trace_num = lttv_traceset_get_trace_index_from_event(event); /* Well, the process_out existed : we must get it in the process hash * or add it, and draw its items. @@ -987,24 +988,21 @@ int before_execmode_hook_soft_irq(void *hook_data, void *call_data) */ if (strncmp(lttv_traceset_get_name_from_event(event),"softirq_entry",sizeof("softirq_entry")) == 0 - || strncmp(lttv_traceset_get_name_from_event(event),"softirq_raise",sizeof("softirq_raise")) == 0) { + || strncmp(lttv_traceset_get_name_from_event(event),"softirq_raise",sizeof("softirq_raise")) == 0 + || strncmp(lttv_traceset_get_name_from_event(event),"softirq_exit",sizeof("softirq_exit")) == 0 ) { + softirq = lttv_event_get_long_unsigned(event, "vec"); - } else if (strncmp(lttv_traceset_get_name_from_event(event),"softirq_exit",sizeof("softirq_exit")) == 0) { - LttTime evtime = lttv_event_get_timestamp(event); - ControlFlowData *resourceview_data = (ControlFlowData*)hook_data; - LttvTraceset *traceSet = lttvwindow_get_traceset(resourceview_data->tab); - guint cpu = lttv_traceset_get_cpuid_from_event(event); - ts = event->state; - gint len = ts->cpu_states[cpu].softirq_stack->len; - if(len) { - softirq = g_array_index(ts->cpu_states[cpu].softirq_stack, gint, len-1); - } - else { - return 0; - } - + + } else { + return 0; + } - guint trace_num = 0;//TODO change it to the right value; + LttTime evtime = lttv_event_get_timestamp(event); + ControlFlowData *resourceview_data = (ControlFlowData*)hook_data; + LttvTraceset *traceSet = lttvwindow_get_traceset(resourceview_data->tab); + guint cpu = lttv_traceset_get_cpuid_from_event(event); + ts = event->state; + guint trace_num = lttv_traceset_get_trace_index_from_event(event); /* Well, the process_out existed : we must get it in the process hash * or add it, and draw its items. @@ -1124,7 +1122,7 @@ int before_execmode_hook_soft_irq(void *hook_data, void *call_data) &hashed_process_data->next_good_time); } } - } + return 0; } #ifdef TRAP_NO_EXIST @@ -1334,7 +1332,7 @@ LttvEvent *event; guint8 minor = ltt_event_get_long_unsigned(e, lttv_trace_get_hook_field(th, 1)); gint devcode_gint = MKDEV(major,minor); - guint trace_num = 0; //TODO put the real trace_num; + guint trace_num = lttv_traceset_get_trace_index_from_event(event); LttvBdevState *bdev = g_hash_table_lookup(ts->bdev_states, &devcode_gint); /* the result of the lookup might be NULL. that's ok, the rest of the function @@ -1871,8 +1869,8 @@ void draw_closure(gpointer key, gpointer value, gpointer user_data) #ifdef EXTRA_CHECK g_assert(lttv_traceset_number(tsc->ts) > 0); #endif //EXTRA_CHECK - //TODO Fdeslauriers 2012-07-17: adapt for multiple traces - LttvTrace *trace = lttv_traceset_get(ts,0); + + LttvTrace *trace = lttv_traceset_get(ts,process_info->trace_num); LttvTraceState *ts = trace->state; /* Only draw for processes that are currently in the trace states */