@@ -58,6 +58,8 @@ struct print_state {
58
58
bool metrics ;
59
59
/** @metricgroups: Controls printing of metric and metric groups. */
60
60
bool metricgroups ;
61
+ /** @exclude_abi: Exclude PMUs with types less than PERF_TYPE_MAX except PERF_TYPE_RAW. */
62
+ bool exclude_abi ;
61
63
/** @last_topic: The last printed event topic. */
62
64
char * last_topic ;
63
65
/** @last_metricgroups: The last printed metric group. */
@@ -113,7 +115,8 @@ static void wordwrap(FILE *fp, const char *s, int start, int max, int corr)
113
115
}
114
116
}
115
117
116
- static void default_print_event (void * ps , const char * topic , const char * pmu_name ,
118
+ static void default_print_event (void * ps , const char * topic ,
119
+ const char * pmu_name , u32 pmu_type ,
117
120
const char * event_name , const char * event_alias ,
118
121
const char * scale_unit __maybe_unused ,
119
122
bool deprecated , const char * event_type_desc ,
@@ -130,6 +133,9 @@ static void default_print_event(void *ps, const char *topic, const char *pmu_nam
130
133
if (print_state -> pmu_glob && pmu_name && !strglobmatch (pmu_name , print_state -> pmu_glob ))
131
134
return ;
132
135
136
+ if (print_state -> exclude_abi && pmu_type < PERF_TYPE_MAX && pmu_type != PERF_TYPE_RAW )
137
+ return ;
138
+
133
139
if (print_state -> event_glob &&
134
140
(!event_name || !strglobmatch (event_name , print_state -> event_glob )) &&
135
141
(!event_alias || !strglobmatch (event_alias , print_state -> event_glob )) &&
@@ -354,7 +360,8 @@ static void fix_escape_fprintf(FILE *fp, struct strbuf *buf, const char *fmt, ..
354
360
fputs (buf -> buf , fp );
355
361
}
356
362
357
- static void json_print_event (void * ps , const char * topic , const char * pmu_name ,
363
+ static void json_print_event (void * ps , const char * topic ,
364
+ const char * pmu_name , u32 pmu_type __maybe_unused ,
358
365
const char * event_name , const char * event_alias ,
359
366
const char * scale_unit ,
360
367
bool deprecated , const char * event_type_desc ,
@@ -647,9 +654,11 @@ int cmd_list(int argc, const char **argv)
647
654
} else if (strcmp (argv [i ], "cache" ) == 0 ||
648
655
strcmp (argv [i ], "hwcache" ) == 0 )
649
656
print_hwcache_events (& print_cb , ps );
650
- else if (strcmp (argv [i ], "pmu" ) == 0 )
657
+ else if (strcmp (argv [i ], "pmu" ) == 0 ) {
658
+ default_ps .exclude_abi = true;
651
659
perf_pmus__print_pmu_events (& print_cb , ps );
652
- else if (strcmp (argv [i ], "sdt" ) == 0 )
660
+ default_ps .exclude_abi = false;
661
+ } else if (strcmp (argv [i ], "sdt" ) == 0 )
653
662
print_sdt_events (& print_cb , ps );
654
663
else if (strcmp (argv [i ], "metric" ) == 0 || strcmp (argv [i ], "metrics" ) == 0 ) {
655
664
default_ps .metricgroups = false;
0 commit comments