Create a machine_map_new() and merge mapping code in machine__process_mmap2_event() and machine__process_mmap_event() together. This patch is a preparation for following map adjustment patches.
Signed-off-by: Wang Nan <wangn...@huawei.com> --- tools/perf/util/machine.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index e335330..051883a 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c @@ -1155,13 +1155,29 @@ out_problem: return -1; } +static int machine_map_new(struct machine *machine, u64 start, u64 len, + u64 pgoff, u32 pid, u32 d_maj, u32 d_min, u64 ino, + u64 ino_gen, u32 prot, u32 flags, char *filename, + enum map_type type, struct thread *thread) +{ + struct map *map; + + map = map__new(machine, start, len, pgoff, pid, d_maj, d_min, + ino, ino_gen, prot, flags, filename, type, thread); + + if (map == NULL) + return -1; + + thread__insert_map(thread, map); + return 0; +} + int machine__process_mmap2_event(struct machine *machine, union perf_event *event, struct perf_sample *sample __maybe_unused) { u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; struct thread *thread; - struct map *map; enum map_type type; int ret = 0; @@ -1186,7 +1202,7 @@ int machine__process_mmap2_event(struct machine *machine, else type = MAP__FUNCTION; - map = map__new(machine, event->mmap2.start, + ret = machine_map_new(machine, event->mmap2.start, event->mmap2.len, event->mmap2.pgoff, event->mmap2.pid, event->mmap2.maj, event->mmap2.min, event->mmap2.ino, @@ -1195,10 +1211,8 @@ int machine__process_mmap2_event(struct machine *machine, event->mmap2.flags, event->mmap2.filename, type, thread); - if (map == NULL) + if (ret) goto out_problem; - - thread__insert_map(thread, map); return 0; out_problem: @@ -1211,7 +1225,6 @@ int machine__process_mmap_event(struct machine *machine, union perf_event *event { u8 cpumode = event->header.misc & PERF_RECORD_MISC_CPUMODE_MASK; struct thread *thread; - struct map *map; enum map_type type; int ret = 0; @@ -1236,16 +1249,15 @@ int machine__process_mmap_event(struct machine *machine, union perf_event *event else type = MAP__FUNCTION; - map = map__new(machine, event->mmap.start, + ret = machine_map_new(machine, event->mmap.start, event->mmap.len, event->mmap.pgoff, event->mmap.pid, 0, 0, 0, 0, 0, 0, event->mmap.filename, type, thread); - if (map == NULL) + if (ret) goto out_problem; - thread__insert_map(thread, map); return 0; out_problem: -- 1.8.3.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/