* [PATCH] perf trace: Add beautifier for mremap flags param
@ 2014-08-13 15:42 Alex Snast
2014-08-13 18:55 ` Arnaldo Carvalho de Melo
2014-08-14 8:44 ` [tip:perf/core] " tip-bot for Alex Snast
0 siblings, 2 replies; 3+ messages in thread
From: Alex Snast @ 2014-08-13 15:42 UTC (permalink / raw)
To: Peter Zijlstra, Paul Mackerras, Ingo Molnar,
Arnaldo Carvalho de Melo
Cc: linux-kernel, Alex Snast
~/devel/kernel/tools/perf(branch:master*) » sudo ./perf trace ~/mremap_test
0.543 ( 0.003 ms): mprotect(start: 0x600000, len: 4096, prot: READ ) = 0
0.550 ( 0.003 ms): mprotect(start: 0x7f441260d000, len: 4096, prot: READ ) = 0
0.561 ( 0.010 ms): munmap(addr: 0x7f44125e2000, len: 165572 ) = 0
0.595 ( 0.012 ms): mmap(len: 12288, prot: READ|WRITE, flags: SHARED|ANONYMOUS|LOCKED, fd: -1) = 0x12608000
0.603 ( 0.006 ms): mremap(addr: 0x7f4412608000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da295000) = 0xda295000
0.608 ( 0.003 ms): mremap(addr: 0x7f441260a000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da297000) = 0xda297000
0.612 ( 0.003 ms): mremap(addr: 0x7f4412609000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da296000) = 0xda296000
0.619 ( 0.000 ms): exit_group(
Signed-off-by: Alex Snast <asnast@gmail.com>
---
tools/perf/builtin-trace.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index a6c3752..717d7dc 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -402,6 +402,31 @@ static size_t syscall_arg__scnprintf_mmap_flags(char *bf, size_t size,
#define SCA_MMAP_FLAGS syscall_arg__scnprintf_mmap_flags
+static size_t syscall_arg__scnprintf_mremap_flags(char *bf, size_t size,
+ struct syscall_arg *arg)
+{
+ int printed = 0, flags = arg->val;
+
+#define P_MREMAP_FLAG(n) \
+ if (flags & MREMAP_##n) { \
+ printed += scnprintf(bf + printed, size - printed, "%s%s", printed ? "|" : "", #n); \
+ flags &= ~MREMAP_##n; \
+ }
+
+ P_MREMAP_FLAG(MAYMOVE);
+#ifdef MREMAP_FIXED
+ P_MREMAP_FLAG(FIXED);
+#endif
+#undef P_MREMAP_FLAG
+
+ if (flags)
+ printed += scnprintf(bf + printed, size - printed, "%s%#x", printed ? "|" : "", flags);
+
+ return printed;
+}
+
+#define SCA_MREMAP_FLAGS syscall_arg__scnprintf_mremap_flags
+
static size_t syscall_arg__scnprintf_madvise_behavior(char *bf, size_t size,
struct syscall_arg *arg)
{
@@ -1004,6 +1029,7 @@ static struct syscall_fmt {
[2] = SCA_MMAP_PROT, /* prot */ }, },
{ .name = "mremap", .hexret = true,
.arg_scnprintf = { [0] = SCA_HEX, /* addr */
+ [3] = SCA_MREMAP_FLAGS, /* flags */
[4] = SCA_HEX, /* new_addr */ }, },
{ .name = "munlock", .errmsg = true,
.arg_scnprintf = { [0] = SCA_HEX, /* addr */ }, },
--
2.0.4
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] perf trace: Add beautifier for mremap flags param
2014-08-13 15:42 [PATCH] perf trace: Add beautifier for mremap flags param Alex Snast
@ 2014-08-13 18:55 ` Arnaldo Carvalho de Melo
2014-08-14 8:44 ` [tip:perf/core] " tip-bot for Alex Snast
1 sibling, 0 replies; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-08-13 18:55 UTC (permalink / raw)
To: Alex Snast; +Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, linux-kernel
Em Wed, Aug 13, 2014 at 06:42:40PM +0300, Alex Snast escreveu:
> ~/devel/kernel/tools/perf(branch:master*) » sudo ./perf trace ~/mremap_test
> 0.543 ( 0.003 ms): mprotect(start: 0x600000, len: 4096, prot: READ ) = 0
> 0.550 ( 0.003 ms): mprotect(start: 0x7f441260d000, len: 4096, prot: READ ) = 0
> 0.561 ( 0.010 ms): munmap(addr: 0x7f44125e2000, len: 165572 ) = 0
> 0.595 ( 0.012 ms): mmap(len: 12288, prot: READ|WRITE, flags: SHARED|ANONYMOUS|LOCKED, fd: -1) = 0x12608000
> 0.603 ( 0.006 ms): mremap(addr: 0x7f4412608000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da295000) = 0xda295000
> 0.608 ( 0.003 ms): mremap(addr: 0x7f441260a000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da297000) = 0xda297000
> 0.612 ( 0.003 ms): mremap(addr: 0x7f4412609000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da296000) = 0xda296000
> 0.619 ( 0.000 ms): exit_group(
>
> Signed-off-by: Alex Snast <asnast@gmail.com>
Thanks, applied.
- Arnaldo
^ permalink raw reply [flat|nested] 3+ messages in thread
* [tip:perf/core] perf trace: Add beautifier for mremap flags param
2014-08-13 15:42 [PATCH] perf trace: Add beautifier for mremap flags param Alex Snast
2014-08-13 18:55 ` Arnaldo Carvalho de Melo
@ 2014-08-14 8:44 ` tip-bot for Alex Snast
1 sibling, 0 replies; 3+ messages in thread
From: tip-bot for Alex Snast @ 2014-08-14 8:44 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, paulus, mingo, hpa, mingo, asnast,
a.p.zijlstra, tglx
Commit-ID: 86998dda5d244f4b1b994dfe34a677f3b70cfdd3
Gitweb: http://git.kernel.org/tip/86998dda5d244f4b1b994dfe34a677f3b70cfdd3
Author: Alex Snast <asnast@gmail.com>
AuthorDate: Wed, 13 Aug 2014 18:42:40 +0300
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 13 Aug 2014 15:55:26 -0300
perf trace: Add beautifier for mremap flags param
~/devel/kernel/tools/perf(branch:master*) » sudo ./perf trace ~/mremap_test
0.543 ( 0.003 ms): mprotect(start: 0x600000, len: 4096, prot: READ ) = 0
0.550 ( 0.003 ms): mprotect(start: 0x7f441260d000, len: 4096, prot: READ) = 0
0.561 ( 0.010 ms): munmap(addr: 0x7f44125e2000, len: 165572 ) = 0
0.595 ( 0.012 ms): mmap(len: 12288, prot: READ|WRITE, flags: SHARED|ANONYMOUS|LOCKED, fd: -1) = 0x12608000
0.603 ( 0.006 ms): mremap(addr: 0x7f4412608000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da295000) = 0xda295000
0.608 ( 0.003 ms): mremap(addr: 0x7f441260a000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da297000) = 0xda297000
0.612 ( 0.003 ms): mremap(addr: 0x7f4412609000, old_len: 4096, new_len: 4096, flags: MAYMOVE|FIXED, new_addr: 0x7f16da296000) = 0xda296000
0.619 ( 0.000 ms): exit_group(
Signed-off-by: Alex Snast <asnast@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1407944560-26924-1-git-send-email-asnast@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-trace.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 36ae51d..20fac50 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -402,6 +402,31 @@ static size_t syscall_arg__scnprintf_mmap_flags(char *bf, size_t size,
#define SCA_MMAP_FLAGS syscall_arg__scnprintf_mmap_flags
+static size_t syscall_arg__scnprintf_mremap_flags(char *bf, size_t size,
+ struct syscall_arg *arg)
+{
+ int printed = 0, flags = arg->val;
+
+#define P_MREMAP_FLAG(n) \
+ if (flags & MREMAP_##n) { \
+ printed += scnprintf(bf + printed, size - printed, "%s%s", printed ? "|" : "", #n); \
+ flags &= ~MREMAP_##n; \
+ }
+
+ P_MREMAP_FLAG(MAYMOVE);
+#ifdef MREMAP_FIXED
+ P_MREMAP_FLAG(FIXED);
+#endif
+#undef P_MREMAP_FLAG
+
+ if (flags)
+ printed += scnprintf(bf + printed, size - printed, "%s%#x", printed ? "|" : "", flags);
+
+ return printed;
+}
+
+#define SCA_MREMAP_FLAGS syscall_arg__scnprintf_mremap_flags
+
static size_t syscall_arg__scnprintf_madvise_behavior(char *bf, size_t size,
struct syscall_arg *arg)
{
@@ -1004,6 +1029,7 @@ static struct syscall_fmt {
[2] = SCA_MMAP_PROT, /* prot */ }, },
{ .name = "mremap", .hexret = true,
.arg_scnprintf = { [0] = SCA_HEX, /* addr */
+ [3] = SCA_MREMAP_FLAGS, /* flags */
[4] = SCA_HEX, /* new_addr */ }, },
{ .name = "munlock", .errmsg = true,
.arg_scnprintf = { [0] = SCA_HEX, /* addr */ }, },
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-08-14 8:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-13 15:42 [PATCH] perf trace: Add beautifier for mremap flags param Alex Snast
2014-08-13 18:55 ` Arnaldo Carvalho de Melo
2014-08-14 8:44 ` [tip:perf/core] " tip-bot for Alex Snast
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox