diff options
Diffstat (limited to 'tools/perf')
| -rw-r--r-- | tools/perf/util/machine.c | 5 | ||||
| -rw-r--r-- | tools/perf/util/map.c | 8 | ||||
| -rw-r--r-- | tools/perf/util/map.h | 4 | ||||
| -rw-r--r-- | tools/perf/util/thread.c | 2 |
4 files changed, 9 insertions, 10 deletions
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index 34fc7c8672e4..c70b3ff7b289 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c | |||
| @@ -21,7 +21,7 @@ static void dsos__init(struct dsos *dsos) | |||
| 21 | 21 | ||
| 22 | int machine__init(struct machine *machine, const char *root_dir, pid_t pid) | 22 | int machine__init(struct machine *machine, const char *root_dir, pid_t pid) |
| 23 | { | 23 | { |
| 24 | map_groups__init(&machine->kmaps); | 24 | map_groups__init(&machine->kmaps, machine); |
| 25 | RB_CLEAR_NODE(&machine->rb_node); | 25 | RB_CLEAR_NODE(&machine->rb_node); |
| 26 | dsos__init(&machine->user_dsos); | 26 | dsos__init(&machine->user_dsos); |
| 27 | dsos__init(&machine->kernel_dsos); | 27 | dsos__init(&machine->kernel_dsos); |
| @@ -32,7 +32,6 @@ int machine__init(struct machine *machine, const char *root_dir, pid_t pid) | |||
| 32 | 32 | ||
| 33 | machine->vdso_info = NULL; | 33 | machine->vdso_info = NULL; |
| 34 | 34 | ||
| 35 | machine->kmaps.machine = machine; | ||
| 36 | machine->pid = pid; | 35 | machine->pid = pid; |
| 37 | 36 | ||
| 38 | machine->symbol_filter = NULL; | 37 | machine->symbol_filter = NULL; |
| @@ -319,7 +318,7 @@ static void machine__update_thread_pid(struct machine *machine, | |||
| 319 | goto out_err; | 318 | goto out_err; |
| 320 | 319 | ||
| 321 | if (!leader->mg) | 320 | if (!leader->mg) |
| 322 | leader->mg = map_groups__new(); | 321 | leader->mg = map_groups__new(machine); |
| 323 | 322 | ||
| 324 | if (!leader->mg) | 323 | if (!leader->mg) |
| 325 | goto out_err; | 324 | goto out_err; |
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 2137c4596ec7..040a785c857b 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c | |||
| @@ -413,14 +413,14 @@ u64 map__objdump_2mem(struct map *map, u64 ip) | |||
| 413 | return ip + map->reloc; | 413 | return ip + map->reloc; |
| 414 | } | 414 | } |
| 415 | 415 | ||
| 416 | void map_groups__init(struct map_groups *mg) | 416 | void map_groups__init(struct map_groups *mg, struct machine *machine) |
| 417 | { | 417 | { |
| 418 | int i; | 418 | int i; |
| 419 | for (i = 0; i < MAP__NR_TYPES; ++i) { | 419 | for (i = 0; i < MAP__NR_TYPES; ++i) { |
| 420 | mg->maps[i] = RB_ROOT; | 420 | mg->maps[i] = RB_ROOT; |
| 421 | INIT_LIST_HEAD(&mg->removed_maps[i]); | 421 | INIT_LIST_HEAD(&mg->removed_maps[i]); |
| 422 | } | 422 | } |
| 423 | mg->machine = NULL; | 423 | mg->machine = machine; |
| 424 | mg->refcnt = 1; | 424 | mg->refcnt = 1; |
| 425 | } | 425 | } |
| 426 | 426 | ||
| @@ -471,12 +471,12 @@ bool map_groups__empty(struct map_groups *mg) | |||
| 471 | return true; | 471 | return true; |
| 472 | } | 472 | } |
| 473 | 473 | ||
| 474 | struct map_groups *map_groups__new(void) | 474 | struct map_groups *map_groups__new(struct machine *machine) |
| 475 | { | 475 | { |
| 476 | struct map_groups *mg = malloc(sizeof(*mg)); | 476 | struct map_groups *mg = malloc(sizeof(*mg)); |
| 477 | 477 | ||
| 478 | if (mg != NULL) | 478 | if (mg != NULL) |
| 479 | map_groups__init(mg); | 479 | map_groups__init(mg, machine); |
| 480 | 480 | ||
| 481 | return mg; | 481 | return mg; |
| 482 | } | 482 | } |
diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h index 2f83954af050..6951a9d42339 100644 --- a/tools/perf/util/map.h +++ b/tools/perf/util/map.h | |||
| @@ -64,7 +64,7 @@ struct map_groups { | |||
| 64 | int refcnt; | 64 | int refcnt; |
| 65 | }; | 65 | }; |
| 66 | 66 | ||
| 67 | struct map_groups *map_groups__new(void); | 67 | struct map_groups *map_groups__new(struct machine *machine); |
| 68 | void map_groups__delete(struct map_groups *mg); | 68 | void map_groups__delete(struct map_groups *mg); |
| 69 | bool map_groups__empty(struct map_groups *mg); | 69 | bool map_groups__empty(struct map_groups *mg); |
| 70 | 70 | ||
| @@ -150,7 +150,7 @@ void maps__remove(struct rb_root *maps, struct map *map); | |||
| 150 | struct map *maps__find(struct rb_root *maps, u64 addr); | 150 | struct map *maps__find(struct rb_root *maps, u64 addr); |
| 151 | struct map *maps__first(struct rb_root *maps); | 151 | struct map *maps__first(struct rb_root *maps); |
| 152 | struct map *maps__next(struct map *map); | 152 | struct map *maps__next(struct map *map); |
| 153 | void map_groups__init(struct map_groups *mg); | 153 | void map_groups__init(struct map_groups *mg, struct machine *machine); |
| 154 | void map_groups__exit(struct map_groups *mg); | 154 | void map_groups__exit(struct map_groups *mg); |
| 155 | int map_groups__clone(struct map_groups *mg, | 155 | int map_groups__clone(struct map_groups *mg, |
| 156 | struct map_groups *parent, enum map_type type); | 156 | struct map_groups *parent, enum map_type type); |
diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c index c41411726c7a..8db9626f6835 100644 --- a/tools/perf/util/thread.c +++ b/tools/perf/util/thread.c | |||
| @@ -15,7 +15,7 @@ int thread__init_map_groups(struct thread *thread, struct machine *machine) | |||
| 15 | pid_t pid = thread->pid_; | 15 | pid_t pid = thread->pid_; |
| 16 | 16 | ||
| 17 | if (pid == thread->tid || pid == -1) { | 17 | if (pid == thread->tid || pid == -1) { |
| 18 | thread->mg = map_groups__new(); | 18 | thread->mg = map_groups__new(machine); |
| 19 | } else { | 19 | } else { |
| 20 | leader = machine__findnew_thread(machine, pid, pid); | 20 | leader = machine__findnew_thread(machine, pid, pid); |
| 21 | if (leader) | 21 | if (leader) |
