/tools/perf/util/ |
D | unwind-libunwind.c | 15 static void unwind__register_ops(struct map_groups *mg, in unwind__register_ops() argument 18 mg->unwind_libunwind_ops = ops; in unwind__register_ops() 21 int unwind__prepare_access(struct map_groups *mg, struct map *map, in unwind__prepare_access() argument 32 if (mg->addr_space) { in unwind__prepare_access() 41 if (!mg->machine->env || !mg->machine->env->arch) in unwind__prepare_access() 44 dso_type = dso__type(map->dso, mg->machine); in unwind__prepare_access() 48 arch = perf_env__arch(mg->machine->env); in unwind__prepare_access() 63 unwind__register_ops(mg, ops); in unwind__prepare_access() 65 err = mg->unwind_libunwind_ops->prepare_access(mg); in unwind__prepare_access() 71 void unwind__flush_access(struct map_groups *mg) in unwind__flush_access() argument [all …]
|
D | map_groups.h | 49 void map_groups__delete(struct map_groups *mg); 50 bool map_groups__empty(struct map_groups *mg); 52 static inline struct map_groups *map_groups__get(struct map_groups *mg) in map_groups__get() argument 54 if (mg) in map_groups__get() 55 refcount_inc(&mg->refcnt); in map_groups__get() 56 return mg; in map_groups__get() 59 void map_groups__put(struct map_groups *mg); 60 void map_groups__init(struct map_groups *mg, struct machine *machine); 61 void map_groups__exit(struct map_groups *mg); 63 size_t map_groups__fprintf(struct map_groups *mg, FILE *fp); [all …]
|
D | unwind.h | 23 int (*prepare_access)(struct map_groups *mg); 24 void (*flush_access)(struct map_groups *mg); 25 void (*finish_access)(struct map_groups *mg); 50 int unwind__prepare_access(struct map_groups *mg, struct map *map, 52 void unwind__flush_access(struct map_groups *mg); 53 void unwind__finish_access(struct map_groups *mg); 55 static inline int unwind__prepare_access(struct map_groups *mg __maybe_unused, in unwind__prepare_access() 62 static inline void unwind__flush_access(struct map_groups *mg __maybe_unused) {} in unwind__flush_access() 63 static inline void unwind__finish_access(struct map_groups *mg __maybe_unused) {} in unwind__finish_access() 76 static inline int unwind__prepare_access(struct map_groups *mg __maybe_unused, in unwind__prepare_access() [all …]
|
D | map.c | 581 void map_groups__init(struct map_groups *mg, struct machine *machine) in map_groups__init() argument 583 maps__init(&mg->maps); in map_groups__init() 584 mg->machine = machine; in map_groups__init() 585 refcount_set(&mg->refcnt, 1); in map_groups__init() 588 void map_groups__insert(struct map_groups *mg, struct map *map) in map_groups__insert() argument 590 maps__insert(&mg->maps, map); in map_groups__insert() 591 map->groups = mg; in map_groups__insert() 630 void map_groups__exit(struct map_groups *mg) in map_groups__exit() argument 632 maps__exit(&mg->maps); in map_groups__exit() 635 bool map_groups__empty(struct map_groups *mg) in map_groups__empty() argument [all …]
|
D | thread.c | 27 thread->mg = map_groups__new(machine); in thread__init_map_groups() 31 thread->mg = map_groups__get(leader->mg); in thread__init_map_groups() 36 return thread->mg ? 0 : -1; in thread__init_map_groups() 89 if (thread->mg) { in thread__delete() 90 map_groups__put(thread->mg); in thread__delete() 91 thread->mg = NULL; in thread__delete() 254 unwind__flush_access(thread->mg); in ____thread__set_comm() 327 map_groups__fprintf(thread->mg, fp); in thread__fprintf() 334 ret = unwind__prepare_access(thread->mg, map, NULL); in thread__insert_map() 338 map_groups__fixup_overlappings(thread->mg, map, stderr); in thread__insert_map() [all …]
|
D | unwind-libunwind-local.c | 618 static int _unwind__prepare_access(struct map_groups *mg) in _unwind__prepare_access() argument 620 mg->addr_space = unw_create_addr_space(&accessors, 0); in _unwind__prepare_access() 621 if (!mg->addr_space) { in _unwind__prepare_access() 626 unw_set_caching_policy(mg->addr_space, UNW_CACHE_GLOBAL); in _unwind__prepare_access() 630 static void _unwind__flush_access(struct map_groups *mg) in _unwind__flush_access() argument 632 unw_flush_cache(mg->addr_space, 0, 0); in _unwind__flush_access() 635 static void _unwind__finish_access(struct map_groups *mg) in _unwind__finish_access() argument 637 unw_destroy_addr_space(mg->addr_space); in _unwind__finish_access() 662 addr_space = ui->thread->mg->addr_space; in get_entries() 711 .machine = thread->mg->machine, in _unwind__get_entries()
|
D | event.c | 460 struct map_groups *mg = thread->mg; in thread__find_map() local 461 struct machine *machine = mg->machine; in thread__find_map() 477 mg = &machine->kmaps; in thread__find_map() 483 mg = &machine->kmaps; in thread__find_map() 503 al->map = map_groups__find(mg, al->addr); in thread__find_map() 526 struct machine *machine = thread->mg->machine; in thread__find_map_fb()
|
D | metricgroup.c | 341 char *mg = strdup(g); in metricgroup__print() local 343 if (!mg) in metricgroup__print() 345 omg = mg; in metricgroup__print() 346 while ((g = strsep(&mg, ";")) != NULL) { in metricgroup__print()
|
D | machine.c | 410 if (!leader->mg) in machine__update_thread_pid() 411 leader->mg = map_groups__new(machine); in machine__update_thread_pid() 413 if (!leader->mg) in machine__update_thread_pid() 416 if (th->mg == leader->mg) in machine__update_thread_pid() 419 if (th->mg) { in machine__update_thread_pid() 425 if (!map_groups__empty(th->mg)) in machine__update_thread_pid() 428 map_groups__put(th->mg); in machine__update_thread_pid() 431 th->mg = map_groups__get(leader->mg); in machine__update_thread_pid() 1264 static int map_groups__set_module_path(struct map_groups *mg, const char *path, in map_groups__set_module_path() argument 1268 struct map *map = map_groups__find_by_name(mg, m->name); in map_groups__set_module_path() [all …]
|
D | thread.h | 28 struct map_groups *mg; member
|
D | thread-stack.c | 137 if (thread->mg && thread->mg->machine) { in thread_stack__init() 138 struct machine *machine = thread->mg->machine; in thread_stack__init()
|
D | unwind-libdw.c | 229 .machine = thread->mg->machine, in unwind__get_entries()
|
D | vdso.c | 145 struct map *map = map_groups__first(thread->mg); in machine__thread_dso_type()
|
D | symbol.c | 243 void map_groups__fixup_end(struct map_groups *mg) in map_groups__fixup_end() argument 245 struct maps *maps = &mg->maps; in map_groups__fixup_end() 1057 struct map *map_groups__first(struct map_groups *mg) in map_groups__first() argument 1059 return maps__first(&mg->maps); in map_groups__first() 1791 struct map *map_groups__find_by_name(struct map_groups *mg, const char *name) in map_groups__find_by_name() argument 1793 struct maps *maps = &mg->maps; in map_groups__find_by_name()
|
D | symbol.h | 199 void map_groups__fixup_end(struct map_groups *mg);
|
/tools/perf/tests/ |
D | thread-mg-share.c | 15 struct map_groups *mg; in test__thread_mg_share() local 45 mg = leader->mg; in test__thread_mg_share() 46 TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&mg->refcnt), 4); in test__thread_mg_share() 49 TEST_ASSERT_VAL("map groups don't match", mg == t1->mg); in test__thread_mg_share() 50 TEST_ASSERT_VAL("map groups don't match", mg == t2->mg); in test__thread_mg_share() 51 TEST_ASSERT_VAL("map groups don't match", mg == t3->mg); in test__thread_mg_share() 73 other_mg = other->mg; in test__thread_mg_share() 76 TEST_ASSERT_VAL("map groups don't match", other_mg == other_leader->mg); in test__thread_mg_share() 80 TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&mg->refcnt), 3); in test__thread_mg_share() 83 TEST_ASSERT_EQUAL("wrong refcnt", refcount_read(&mg->refcnt), 2); in test__thread_mg_share() [all …]
|
D | map_groups.c | 16 static int check_maps(struct map_def *merged, unsigned int size, struct map_groups *mg) in check_maps() argument 21 map = map_groups__first(mg); in check_maps() 39 struct map_groups mg; in test__map_groups__merge_in() local 68 map_groups__init(&mg, NULL); in test__map_groups__merge_in() 78 map_groups__insert(&mg, map); in test__map_groups__merge_in() 103 ret = map_groups__merge_in(&mg, map_kcore1); in test__map_groups__merge_in() 106 ret = check_maps(merged12, ARRAY_SIZE(merged12), &mg); in test__map_groups__merge_in() 109 ret = map_groups__merge_in(&mg, map_kcore2); in test__map_groups__merge_in() 112 ret = check_maps(merged12, ARRAY_SIZE(merged12), &mg); in test__map_groups__merge_in() 115 ret = map_groups__merge_in(&mg, map_kcore3); in test__map_groups__merge_in() [all …]
|
D | Build | 30 perf-y += thread-mg-share.o
|
D | code-reading.c | 278 ret_len = dso__data_read_offset(al.map->dso, thread->mg->machine, in read_object_code()
|
/tools/perf/arch/arm64/tests/ |
D | dwarf-unwind.c | 29 map = map_groups__find(thread->mg, (u64)sp); in sample_ustack()
|
/tools/perf/arch/powerpc/tests/ |
D | dwarf-unwind.c | 30 map = map_groups__find(thread->mg, (u64)sp); in sample_ustack()
|
/tools/perf/arch/arm/tests/ |
D | dwarf-unwind.c | 29 map = map_groups__find(thread->mg, (u64)sp); in sample_ustack()
|
/tools/perf/arch/x86/tests/ |
D | dwarf-unwind.c | 30 map = map_groups__find(thread->mg, (u64)sp); in sample_ustack()
|
/tools/perf/ |
D | builtin-report.c | 749 static int map_groups__fprintf_task(struct map_groups *mg, int indent, FILE *fp) in map_groups__fprintf_task() argument 751 return maps__fprintf_task(&mg->maps, indent, fp); in map_groups__fprintf_task() 764 map_groups__fprintf_task(thread->mg, comm_indent, fp); in task__print_level()
|
/tools/perf/ui/stdio/ |
D | hist.c | 861 map_groups__fprintf(h->thread->mg, fp); in hists__fprintf()
|