diff options
-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) |