@@ -1500,8 +1500,8 @@ static int parse_events_add_pmu(struct parse_events_state *parse_state,
15001500 }
15011501
15021502 /* Look for event names in the terms and rewrite into format based terms. */
1503- if (! parse_state -> fake_pmu && perf_pmu__check_alias (pmu , & parsed_terms ,
1504- & info , & alias_rewrote_terms , err )) {
1503+ if (perf_pmu__check_alias (pmu , & parsed_terms ,
1504+ & info , & alias_rewrote_terms , err )) {
15051505 parse_events_terms__exit (& parsed_terms );
15061506 return - EINVAL ;
15071507 }
@@ -1537,8 +1537,7 @@ static int parse_events_add_pmu(struct parse_events_state *parse_state,
15371537 return - ENOMEM ;
15381538 }
15391539
1540- if (!parse_state -> fake_pmu &&
1541- perf_pmu__config (pmu , & attr , & parsed_terms , parse_state -> error )) {
1540+ if (perf_pmu__config (pmu , & attr , & parsed_terms , parse_state -> error )) {
15421541 free_config_terms (& config_terms );
15431542 parse_events_terms__exit (& parsed_terms );
15441543 return - EINVAL ;
@@ -1558,11 +1557,6 @@ static int parse_events_add_pmu(struct parse_events_state *parse_state,
15581557
15591558 evsel -> percore = config_term_percore (& evsel -> config_terms );
15601559
1561- if (parse_state -> fake_pmu ) {
1562- parse_events_terms__exit (& parsed_terms );
1563- return 0 ;
1564- }
1565-
15661560 parse_events_terms__exit (& parsed_terms );
15671561 free ((char * )evsel -> unit );
15681562 evsel -> unit = strdup (info .unit );
@@ -1638,13 +1632,13 @@ int parse_events_multi_pmu_add(struct parse_events_state *parse_state,
16381632 }
16391633
16401634 if (parse_state -> fake_pmu ) {
1641- if (!parse_events_add_pmu (parse_state , list , parse_state -> fake_pmu , & parsed_terms ,
1635+ if (!parse_events_add_pmu (parse_state , list , perf_pmus__fake_pmu () , & parsed_terms ,
16421636 /*auto_merge_stats=*/ true)) {
16431637 struct strbuf sb ;
16441638
16451639 strbuf_init (& sb , /*hint=*/ 0 );
16461640 parse_events_terms__to_strbuf (& parsed_terms , & sb );
1647- pr_debug ("%s -> %s /%s/\n" , event_name , "fake_pmu" , sb .buf );
1641+ pr_debug ("%s -> fake /%s/\n" , event_name , sb .buf );
16481642 strbuf_release (& sb );
16491643 ok ++ ;
16501644 }
@@ -1678,11 +1672,18 @@ int parse_events_multi_pmu_add_or_add_pmu(struct parse_events_state *parse_state
16781672 INIT_LIST_HEAD (* listp );
16791673
16801674 /* Attempt to add to list assuming event_or_pmu is a PMU name. */
1681- pmu = parse_state -> fake_pmu ?: perf_pmus__find (event_or_pmu );
1675+ pmu = perf_pmus__find (event_or_pmu );
16821676 if (pmu && !parse_events_add_pmu (parse_state , * listp , pmu , const_parsed_terms ,
16831677 /*auto_merge_stats=*/ false))
16841678 return 0 ;
16851679
1680+ if (parse_state -> fake_pmu ) {
1681+ if (!parse_events_add_pmu (parse_state , * listp , perf_pmus__fake_pmu (),
1682+ const_parsed_terms ,
1683+ /*auto_merge_stats=*/ false))
1684+ return 0 ;
1685+ }
1686+
16861687 pmu = NULL ;
16871688 /* Failed to add, try wildcard expansion of event_or_pmu as a PMU name. */
16881689 while ((pmu = perf_pmus__scan (pmu )) != NULL ) {
@@ -1983,8 +1984,8 @@ static int evsel__compute_group_pmu_name(struct evsel *evsel,
19831984 }
19841985 }
19851986 }
1986- /* Assign the actual name taking care that the fake PMU lacks a name. */
1987- evsel -> group_pmu_name = strdup (group_pmu_name ?: "fake" );
1987+ /* Record computed name. */
1988+ evsel -> group_pmu_name = strdup (group_pmu_name );
19881989 return evsel -> group_pmu_name ? 0 : - ENOMEM ;
19891990}
19901991
@@ -2146,7 +2147,7 @@ static int parse_events__sort_events_and_fix_groups(struct list_head *list)
21462147}
21472148
21482149int __parse_events (struct evlist * evlist , const char * str , const char * pmu_filter ,
2149- struct parse_events_error * err , struct perf_pmu * fake_pmu ,
2150+ struct parse_events_error * err , bool fake_pmu ,
21502151 bool warn_if_reordered , bool fake_tp )
21512152{
21522153 struct parse_events_state parse_state = {
@@ -2365,7 +2366,7 @@ int parse_events_option(const struct option *opt, const char *str,
23652366
23662367 parse_events_error__init (& err );
23672368 ret = __parse_events (* args -> evlistp , str , args -> pmu_filter , & err ,
2368- /*fake_pmu=*/ NULL , /*warn_if_reordered=*/ true,
2369+ /*fake_pmu=*/ false , /*warn_if_reordered=*/ true,
23692370 /*fake_tp=*/ false);
23702371
23712372 if (ret ) {
0 commit comments