Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751374AbbDAKdj (ORCPT ); Wed, 1 Apr 2015 06:33:39 -0400 Received: from szxga01-in.huawei.com ([58.251.152.64]:52737 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751358AbbDAKdd (ORCPT ); Wed, 1 Apr 2015 06:33:33 -0400 From: Wang Nan To: , , CC: , , , Subject: [PATCH 2/4] perf tools: introduce machine_map_new to merge mmap/mmap2 processing code. Date: Wed, 1 Apr 2015 10:33:13 +0000 Message-ID: <1427884395-241111-3-git-send-email-wangnan0@huawei.com> X-Mailer: git-send-email 1.8.3.4 In-Reply-To: <1427884395-241111-1-git-send-email-wangnan0@huawei.com> References: <1427884395-241111-1-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.107.197.200] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2933 Lines: 101 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 --- 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/