From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, Wang Nan <wangnan0@huawei.com>,
He Kuang <hekuang@huawei.com>,
Hou Pengyang <houpengyang@huawei.com>,
Zefan Li <lizefan@huawei.com>,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 08/12] perf record: Mark MAP_HUGETLB when synthesizing mmap events
Date: Thu, 8 Sep 2016 17:46:17 -0300 [thread overview]
Message-ID: <1473367581-5996-9-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1473367581-5996-1-git-send-email-acme@kernel.org>
From: Wang Nan <wangnan0@huawei.com>
When synthesizing mmap events, add MAP_HUGETLB map flag if the source of
mapping is file in hugetlbfs.
After this patch, perf can identify hugetlb mapping even if perf is
started after the mapping of huge pages (like with 'perf top').
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Reviewed-by: Nilay Vaish <nilayvaish@gmail.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Hou Pengyang <houpengyang@huawei.com>
Cc: Zefan Li <lizefan@huawei.com>
Link: http://lkml.kernel.org/r/1473137909-142064-4-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/event.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 9ad7d32dba2b..6c3017139c67 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -1,5 +1,6 @@
#include <linux/types.h>
#include <sys/mman.h>
+#include <api/fs/fs.h>
#include "event.h"
#include "debug.h"
#include "hist.h"
@@ -248,6 +249,10 @@ int perf_event__synthesize_mmap_events(struct perf_tool *tool,
bool truncation = false;
unsigned long long timeout = proc_map_timeout * 1000000ULL;
int rc = 0;
+#ifdef MAP_HUGETLB
+ const char *hugetlbfs_mnt = hugetlbfs__mountpoint();
+ int hugetlbfs_mnt_len = hugetlbfs_mnt ? strlen(hugetlbfs_mnt) : 0;
+#endif
if (machine__is_default_guest(machine))
return 0;
@@ -342,6 +347,12 @@ out:
if (!strcmp(execname, ""))
strcpy(execname, anonstr);
+#ifdef MAP_HUGETLB
+ if (!strncmp(execname, hugetlbfs_mnt, hugetlbfs_mnt_len)) {
+ strcpy(execname, anonstr);
+ event->mmap2.flags |= MAP_HUGETLB;
+ }
+#endif
size = strlen(execname) + 1;
memcpy(event->mmap2.filename, execname, size);
--
2.7.4
next prev parent reply other threads:[~2016-09-08 20:49 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-08 20:46 [GIT PULL 00/12] perf/core improvements and fixes Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 01/12] perf symbols: Mark if a symbol is idle in the library Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 02/12] perf top: Remove old kernel-only symbol filter Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 03/12] perf machine: Remove machine->symbol_filter and friends Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 04/12] perf test vmlinux: Remove dead symbol_filter_t code Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 05/12] perf symbols: Remove symbol_filter_t machinery Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 06/12] perf tools: Recognize hugetlb mapping as anon mapping Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 07/12] tools lib api fs: Add hugetlbfs filesystem detector Arnaldo Carvalho de Melo
2016-09-08 20:46 ` Arnaldo Carvalho de Melo [this message]
2016-09-08 20:46 ` [PATCH 09/12] perf annotate: Add branch stack / basic block Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 10/12] perf evlist: Only open events on CPUs an evsel permits Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 11/12] perf pmu: Support alternative sysfs cpumask Arnaldo Carvalho de Melo
2016-09-08 20:46 ` [PATCH 12/12] perf powerpc: Fix build-test failure Arnaldo Carvalho de Melo
2016-09-09 5:47 ` [GIT PULL 00/12] perf/core improvements and fixes Ingo Molnar
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=1473367581-5996-9-git-send-email-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=hekuang@huawei.com \
--cc=houpengyang@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=mingo@kernel.org \
--cc=wangnan0@huawei.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).