X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Fstats.c;h=066b27f2c185a861ab134a02e7452a0ee936af19;hb=3c9bb8b1c32a412711c89b156f5387c7f0153ca9;hp=d5b4f5e6ea8d5aa9856032dc074d98761d06c341;hpb=9d239bd92ef3198e80333c703f3ab8ff8cdaeaf7;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/stats.c b/ltt/branches/poly/lttv/lttv/stats.c index d5b4f5e6..066b27f2 100644 --- a/ltt/branches/poly/lttv/lttv/stats.c +++ b/ltt/branches/poly/lttv/lttv/stats.c @@ -68,6 +68,7 @@ init(LttvTracesetStats *self, LttvTraceset *ts) LttvTracefileContext *tfc; + LttvTracefileContext **tfs; LttvTracefileStats *tfcs; LttTime timestamp = {0,0}; @@ -113,8 +114,9 @@ init(LttvTracesetStats *self, LttvTraceset *ts) nb_tracefile = tc->tracefiles->len; for(j = 0 ; j < nb_tracefile ; j++) { - tfcs = LTTV_TRACEFILE_STATS(g_array_index(tc->tracefiles, - LttvTracefileContext*, j)); + tfs = &g_array_index(tc->tracefiles, + LttvTracefileContext*, j); + tfcs = LTTV_TRACEFILE_STATS(*tfs); tfcs->stats = lttv_attribute_find_subdir(tracefiles_stats, tfcs->parent.cpu_name); find_event_tree(tfcs, LTTV_STATS_PROCESS_UNKNOWN, @@ -372,7 +374,7 @@ find_event_tree(LttvTracefileStats *tfcs, { LttvAttribute *a; - LttvTraceStats *tcs = LTTV_TRACE_STATS(tfcs->parent.parent.t_context); + LttvTraceStats *tcs = (LttvTraceStats*)tfcs->parent.parent.t_context; a = lttv_attribute_find_subdir(tcs->stats, LTTV_STATS_PROCESSES); a = lttv_attribute_find_subdir(a, pid_time); a = lttv_attribute_find_subdir(a, LTTV_STATS_CPU); @@ -522,17 +524,17 @@ gboolean before_schedchange(void *hook_data, void *call_data) LttEvent *e = ltt_tracefile_get_event(tfcs->parent.parent.tf); - LttvTraceHookByFacility *thf = - lttv_trace_hook_get_fac((LttvTraceHook *)hook_data, - ltt_event_facility_id(e)); + LttvTraceHookByFacility *thf = (LttvTraceHookByFacility *)hook_data; - guint pid_in, pid_out, state_out; + guint pid_in, pid_out; + + gint state_out; LttvProcessState *process; pid_out = ltt_event_get_unsigned(e, thf->f1); pid_in = ltt_event_get_unsigned(e, thf->f2); - state_out = ltt_event_get_unsigned(e, thf->f3); + state_out = ltt_event_get_int(e, thf->f3); /* compute the time for the process to schedule out */ @@ -879,7 +881,7 @@ void lttv_stats_add_event_hooks(LttvTracesetStats *self) ret = lttv_trace_find_hook(ts->parent.parent.t, LTT_FACILITY_PROCESS, LTT_EVENT_FREE, LTT_FIELD_PID, 0, 0, - process_free, &g_array_index(hooks, LttvTraceHook, 7)); + process_free, &g_array_index(hooks, LttvTraceHook, 8)); g_assert(!ret); @@ -890,8 +892,8 @@ void lttv_stats_add_event_hooks(LttvTracesetStats *self) nb_tracefile = ts->parent.parent.tracefiles->len; for(j = 0 ; j < nb_tracefile ; j++) { - tfs = LTTV_TRACEFILE_STATS(&g_array_index(ts->parent.parent.tracefiles, - LttvTracefileContext, j)); + tfs = LTTV_TRACEFILE_STATS(g_array_index(ts->parent.parent.tracefiles, + LttvTracefileContext*, j)); lttv_hooks_add(tfs->parent.parent.event, every_event, NULL, LTTV_PRIO_DEFAULT); @@ -902,7 +904,7 @@ void lttv_stats_add_event_hooks(LttvTracesetStats *self) lttv_hooks_add( lttv_hooks_by_id_find(tfs->parent.parent.event_by_id, thf->id), thf->h, - &g_array_index(before_hooks, LttvTraceHook, k), + thf, LTTV_PRIO_STATS_BEFORE_STATE); } } @@ -913,7 +915,7 @@ void lttv_stats_add_event_hooks(LttvTracesetStats *self) lttv_hooks_add( lttv_hooks_by_id_find(tfs->parent.parent.event_by_id, thf->id), thf->h, - &g_array_index(after_hooks, LttvTraceHook, k), + thf, LTTV_PRIO_STATS_AFTER_STATE); } } @@ -984,7 +986,7 @@ void lttv_stats_remove_event_hooks(LttvTracesetStats *self) lttv_hooks_remove_data( lttv_hooks_by_id_find(tfs->parent.parent.event_by_id, thf->id), thf->h, - &g_array_index(before_hooks, LttvTraceHook, k)); + thf); } } for(k = 0 ; k < after_hooks->len ; k++) { @@ -994,7 +996,7 @@ void lttv_stats_remove_event_hooks(LttvTracesetStats *self) lttv_hooks_remove_data( lttv_hooks_by_id_find(tfs->parent.parent.event_by_id, thf->id), thf->h, - &g_array_index(after_hooks, LttvTraceHook, k)); + thf); } } }