From: Wang Nan <wangnan0@huawei.com>
To: <acme@kernel.org>, <jolsa@kernel.org>, <namhyung@kernel.org>
Cc: <mingo@redhat.com>, <lizefan@huawei.com>, <pi3orama@163.com>,
<linux-kernel@vger.kernel.org>
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 [thread overview]
Message-ID: <1427884395-241111-3-git-send-email-wangnan0@huawei.com> (raw)
In-Reply-To: <1427884395-241111-1-git-send-email-wangnan0@huawei.com>
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 <wangnan0@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
next prev parent reply other threads:[~2015-04-01 10:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-01 10:33 [PATCH 0/4] perf tools: introduce --map-adjustment Wang Nan
2015-04-01 10:33 ` [PATCH 1/4] perf tools: unwind: ensure unwind hooks return negative errorno Wang Nan
2015-04-01 12:12 ` Jiri Olsa
2015-04-01 12:41 ` Wang Nan
2015-04-07 8:30 ` Wang Nan
2015-04-01 10:33 ` Wang Nan [this message]
2015-04-01 12:18 ` [PATCH 2/4] perf tools: introduce machine_map_new to merge mmap/mmap2 processing code Jiri Olsa
2015-04-01 14:58 ` Arnaldo Carvalho de Melo
2015-04-01 10:33 ` [PATCH 3/4] perf tools: report: introduce --map-adjustment argument Wang Nan
2015-04-01 13:21 ` Jiri Olsa
2015-04-02 1:15 ` Wang Nan
2015-04-01 14:23 ` pi3orama
2015-04-01 10:33 ` [PATCH 4/4] perf tools: unwinding: try to read from map_adj for a unmapped address Wang Nan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1427884395-241111-3-git-send-email-wangnan0@huawei.com \
--to=wangnan0@huawei.com \
--cc=acme@kernel.org \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=pi3orama@163.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.