do not abort when before_bdev_event_hook does not find a block device in the state
[lttv.git] / ltt / branches / poly / lttv / lttv / stats.h
index 090cbe5e2461b91c35420162524ef8a5f8cf3885..f2eed92d553b1c821f66da8d8e4636e22b794ed7 100644 (file)
@@ -39,6 +39,7 @@
      "facility-event_type"
    events_count
    cpu_time
      "facility-event_type"
    events_count
    cpu_time
+        cumulative_cpu_time
    elapsed_time
    wait_time
    bytes_written
    elapsed_time
    wait_time
    bytes_written
@@ -79,7 +80,9 @@
    "cpu number" stands for the cpu identifier, and "process_id-start_time"
    is a unique process identifier composed of the process id
    (unique at any given time but which may be reused over time) concatenated
    "cpu number" stands for the cpu identifier, and "process_id-start_time"
    is a unique process identifier composed of the process id
    (unique at any given time but which may be reused over time) concatenated
-   with the process start time.
+   with the process start time. Each process has a "functions" tree which
+        contains each process'function address (when the information is available).
+        If not, only the 0x0 function will appear.
 
    modes/
      Execution Modes Tree
 
    modes/
      Execution Modes Tree
        cpu/
          "cpu number"/
            Execution Modes Tree
        cpu/
          "cpu number"/
            Execution Modes Tree
+              functions/
+                            "function address"/
+                                           Execution Modes Tree
+            functions/
+                          "function address"/
+                                         Execution Modes Tree
 
    All the events and derived values (cpu, elapsed and wait time) are
    added during the trace analysis in the relevant 
 
    All the events and derived values (cpu, elapsed and wait time) are
    added during the trace analysis in the relevant 
-   trace / processes / * / cpu / * / mode_types / * /submodes / * 
+   trace/processes/ * /cpu/ * /functions/ * /mode_types/ * /submodes/ * 
    "events tree". To achieve this efficiently, each tracefile context 
    contains a pointer to the current relevant "events tree" and "event_types" 
    tree within it.
 
    Once all the events are processed, the total number of events is computed
    "events tree". To achieve this efficiently, each tracefile context 
    contains a pointer to the current relevant "events tree" and "event_types" 
    tree within it.
 
    Once all the events are processed, the total number of events is computed
-   within each trace / processes / * / cpu / * / mode_types / * / submodes / *.
+   within each
+   trace/processes/ * /cpu/ * /functions/ * /mode_types/ * /submodes/ *.
    Then, the "events tree" are summed for all submodes within each mode type 
    Then, the "events tree" are summed for all submodes within each mode type 
-   and for all mode types within a processes / * / cpu / * 
+   and for all mode types within a processes/ * /cpu/ * /functions/ *
    "execution modes tree".
    "execution modes tree".
-
+   
+        Then, the "execution modes trees" for all functions within a
+        trace/processes/ * /cpu for all cpu within a process, for all processes,
+        and for all traces are computed. Separately, the "execution modes tree" for
+        each function (over all cpus) for all processes, and for all traces are
+        summed in the trace/processes/ * /functions/ * subtree.
+        
    Finally, the "execution modes trees" for all cpu within a process,
    for all processes, and for all traces are computed. Separately,
    the "execution modes tree" for each cpu but for all processes within a
    Finally, the "execution modes trees" for all cpu within a process,
    for all processes, and for all traces are computed. Separately,
    the "execution modes tree" for each cpu but for all processes within a
@@ -132,8 +148,10 @@ extern GQuark
   LTTV_STATS_CPU,
   LTTV_STATS_MODE_TYPES,
   LTTV_STATS_SUBMODES,
   LTTV_STATS_CPU,
   LTTV_STATS_MODE_TYPES,
   LTTV_STATS_SUBMODES,
+  LTTV_STATS_FUNCTIONS,
   LTTV_STATS_EVENT_TYPES,
   LTTV_STATS_CPU_TIME,
   LTTV_STATS_EVENT_TYPES,
   LTTV_STATS_CPU_TIME,
+  LTTV_STATS_CUMULATIVE_CPU_TIME,
   LTTV_STATS_ELAPSED_TIME,
   LTTV_STATS_EVENTS,
   LTTV_STATS_EVENTS_COUNT,
   LTTV_STATS_ELAPSED_TIME,
   LTTV_STATS_EVENTS,
   LTTV_STATS_EVENTS_COUNT,
@@ -161,9 +179,10 @@ gboolean lttv_stats_hook_remove_event_hooks(void *hook_data, void *call_data);
 void lttv_stats_remove_event_hooks(LttvTracesetStats *self);
 
 gboolean lttv_stats_sum_traceset_hook(void *hook_data, void *call_data);
 void lttv_stats_remove_event_hooks(LttvTracesetStats *self);
 
 gboolean lttv_stats_sum_traceset_hook(void *hook_data, void *call_data);
-void lttv_stats_sum_traceset(LttvTracesetStats *self);
+void lttv_stats_sum_traceset(LttvTracesetStats *self, LttTime current_time);
 
 
-void lttv_stats_sum_trace(LttvTraceStats *self);
+void lttv_stats_sum_trace(LttvTraceStats *self, LttvAttribute *ts_stats,
+  LttTime current_time);
 
 /* Reset all statistics containers */
 void lttv_stats_reset(LttvTracesetStats *self);
 
 /* Reset all statistics containers */
 void lttv_stats_reset(LttvTracesetStats *self);
@@ -233,5 +252,10 @@ struct _LttvTracefileStatsClass {
 
 GType lttv_tracefile_stats_get_type (void);
 
 
 GType lttv_tracefile_stats_get_type (void);
 
+struct sum_traceset_closure {
+  LttvTracesetStats *tss;
+  LttTime current_time;
+};
+
 
 #endif // STATS_H
 
 #endif // STATS_H
This page took 0.056454 seconds and 4 git commands to generate.