perf stat: Add --for-each-cgroup option
[linux-2.6-microblaze.git] / tools / perf / util / stat.h
index b4fdfaa..487010c 100644 (file)
@@ -28,6 +28,10 @@ enum perf_stat_evsel_id {
        PERF_STAT_EVSEL_ID__TOPDOWN_SLOTS_RETIRED,
        PERF_STAT_EVSEL_ID__TOPDOWN_FETCH_BUBBLES,
        PERF_STAT_EVSEL_ID__TOPDOWN_RECOVERY_BUBBLES,
+       PERF_STAT_EVSEL_ID__TOPDOWN_RETIRING,
+       PERF_STAT_EVSEL_ID__TOPDOWN_BAD_SPEC,
+       PERF_STAT_EVSEL_ID__TOPDOWN_FE_BOUND,
+       PERF_STAT_EVSEL_ID__TOPDOWN_BE_BOUND,
        PERF_STAT_EVSEL_ID__SMI_NUM,
        PERF_STAT_EVSEL_ID__APERF,
        PERF_STAT_EVSEL_ID__MAX,
@@ -82,6 +86,10 @@ enum stat_type {
        STAT_TOPDOWN_SLOTS_RETIRED,
        STAT_TOPDOWN_FETCH_BUBBLES,
        STAT_TOPDOWN_RECOVERY_BUBBLES,
+       STAT_TOPDOWN_RETIRING,
+       STAT_TOPDOWN_BAD_SPEC,
+       STAT_TOPDOWN_FE_BOUND,
+       STAT_TOPDOWN_BE_BOUND,
        STAT_SMI_NUM,
        STAT_APERF,
        STAT_MAX
@@ -110,10 +118,14 @@ struct perf_stat_config {
        bool                     all_kernel;
        bool                     all_user;
        bool                     percore_show_thread;
+       bool                     summary;
+       bool                     metric_no_group;
+       bool                     metric_no_merge;
+       bool                     stop_read_counter;
        FILE                    *output;
        unsigned int             interval;
        unsigned int             timeout;
-       unsigned int             initial_delay;
+       int                      initial_delay;
        unsigned int             unit_width;
        unsigned int             metric_only_len;
        int                      times;
@@ -130,8 +142,14 @@ struct perf_stat_config {
        struct perf_cpu_map             *cpus_aggr_map;
        u64                     *walltime_run;
        struct rblist            metric_events;
+       int                      ctl_fd;
+       int                      ctl_fd_ack;
+       bool                     ctl_fd_close;
+       const char              *cgroup_list;
 };
 
+void perf_stat__set_big_num(int set);
+
 void update_stats(struct stats *stats, u64 val);
 double avg_stats(struct stats *stats);
 double stddev_stats(struct stats *stats);
@@ -198,6 +216,8 @@ int perf_evlist__alloc_stats(struct evlist *evlist, bool alloc_raw);
 void perf_evlist__free_stats(struct evlist *evlist);
 void perf_evlist__reset_stats(struct evlist *evlist);
 void perf_evlist__reset_prev_raw_counts(struct evlist *evlist);
+void perf_evlist__copy_prev_raw_counts(struct evlist *evlist);
+void perf_evlist__save_aggr_prev_raw_counts(struct evlist *evlist);
 
 int perf_stat_process_counter(struct perf_stat_config *config,
                              struct evsel *counter);
@@ -223,4 +243,7 @@ perf_evlist__print_counters(struct evlist *evlist,
                            struct target *_target,
                            struct timespec *ts,
                            int argc, const char **argv);
+
+struct metric_expr;
+double test_generic_metric(struct metric_expr *mexp, int cpu, struct runtime_stat *st);
 #endif