X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Fstats.c;h=36b4b3831c65b1d15bb0be151b481326ebd38485;hb=c56a714eafb51f1e956c7109413811ebe79f8fa9;hp=3e3543eb84999ae6211e827ce4eb1b37b8b7af8e;hpb=b7645610d1b1280fb7c793a6123477b5ecd28bb8;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/stats.c b/ltt/branches/poly/lttv/lttv/stats.c index 3e3543eb..36b4b383 100644 --- a/ltt/branches/poly/lttv/lttv/stats.c +++ b/ltt/branches/poly/lttv/lttv/stats.c @@ -701,7 +701,7 @@ gboolean every_event(void *hook_data, void *call_data) void -lttv_stats_sum_trace(LttvTraceStats *self) +lttv_stats_sum_trace(LttvTraceStats *self, LttvAttribute *ts_stats) { LttvAttribute *sum_container = self->stats; @@ -715,6 +715,8 @@ lttv_stats_sum_trace(LttvTraceStats *self) unsigned sum; + int trace_is_summed; + int i, j, k, l, m, nb_process, nb_cpu, nb_mode_type, nb_submode, nb_event_type, nf, nb_functions; @@ -731,7 +733,7 @@ lttv_stats_sum_trace(LttvTraceStats *self) lttv_attribute_find(sum_container, LTTV_STATS_SUMMED, LTTV_UINT, &value); - if(*(value.v_uint) != 0) return; + trace_is_summed = *(value.v_uint); *(value.v_uint) = 1; processes_tree = lttv_attribute_find_subdir(main_tree, @@ -798,16 +800,23 @@ lttv_stats_sum_trace(LttvTraceStats *self) type = lttv_attribute_get(submodes_tree, l, &name, &value, &is_named); submode_tree = LTTV_ATTRIBUTE(*(value.v_gobject)); - lttv_attribute_recursive_add(mode_events_tree, event_types_tree); - lttv_attribute_recursive_add(mode_types_tree, submode_tree); + if(!trace_is_summed) { + lttv_attribute_recursive_add(mode_events_tree, event_types_tree); + lttv_attribute_recursive_add(mode_types_tree, submode_tree); + } } - lttv_attribute_recursive_add(main_tree, mode_types_tree); - lttv_attribute_recursive_add(trace_cpu_tree, mode_types_tree); - lttv_attribute_recursive_add(process_tree, mode_types_tree); - lttv_attribute_recursive_add(function_tree, mode_types_tree); + if(!trace_is_summed) { + lttv_attribute_recursive_add(main_tree, mode_types_tree); + lttv_attribute_recursive_add(trace_cpu_tree, mode_types_tree); + lttv_attribute_recursive_add(process_tree, mode_types_tree); + lttv_attribute_recursive_add(function_tree, mode_types_tree); + } + lttv_attribute_recursive_add(ts_stats, mode_types_tree); } } - lttv_attribute_recursive_add(process_tree, cpu_tree); + if(!trace_is_summed) { + lttv_attribute_recursive_add(process_tree, cpu_tree); + } } } } @@ -842,9 +851,8 @@ lttv_stats_sum_traceset(LttvTracesetStats *self) for(i = 0 ; i < nb_trace ; i++) { tcs = (LttvTraceStats *)(self->parent.parent.traces[i]); - lttv_stats_sum_trace(tcs); - main_tree = tcs->stats; - lttv_attribute_recursive_add(sum_container, main_tree); + lttv_stats_sum_trace(tcs, self->stats); + // lttv_attribute_recursive_add(sum_container, tcs->stats); } }