aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/util/evlist.c8
-rw-r--r--tools/perf/util/target.h13
2 files changed, 14 insertions, 7 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
index 76fa76431329..7bb6ee1ca19f 100644
--- a/tools/perf/util/evlist.c
+++ b/tools/perf/util/evlist.c
@@ -819,13 +819,7 @@ int perf_evlist__create_maps(struct perf_evlist *evlist, struct target *target)
819 if (evlist->threads == NULL) 819 if (evlist->threads == NULL)
820 return -1; 820 return -1;
821 821
822 if (target->default_per_cpu) 822 if (target__uses_dummy_map(target))
823 evlist->cpus = target->per_thread ?
824 cpu_map__dummy_new() :
825 cpu_map__new(target->cpu_list);
826 else if (target__has_task(target))
827 evlist->cpus = cpu_map__dummy_new();
828 else if (!target__has_cpu(target) && !target->uses_mmap)
829 evlist->cpus = cpu_map__dummy_new(); 823 evlist->cpus = cpu_map__dummy_new();
830 else 824 else
831 evlist->cpus = cpu_map__new(target->cpu_list); 825 evlist->cpus = cpu_map__new(target->cpu_list);
diff --git a/tools/perf/util/target.h b/tools/perf/util/target.h
index 31dd2e9a27d0..7381b1ca4041 100644
--- a/tools/perf/util/target.h
+++ b/tools/perf/util/target.h
@@ -63,4 +63,17 @@ static inline bool target__none(struct target *target)
63 return !target__has_task(target) && !target__has_cpu(target); 63 return !target__has_task(target) && !target__has_cpu(target);
64} 64}
65 65
66static inline bool target__uses_dummy_map(struct target *target)
67{
68 bool use_dummy = false;
69
70 if (target->default_per_cpu)
71 use_dummy = target->per_thread ? true : false;
72 else if (target__has_task(target) ||
73 (!target__has_cpu(target) && !target->uses_mmap))
74 use_dummy = true;
75
76 return use_dummy;
77}
78
66#endif /* _PERF_TARGET_H */ 79#endif /* _PERF_TARGET_H */