* [RESEND PATCH v3 1/2] perf trace beauty: Always show param if show_zero is set
2024-05-22 3:35 [RESEND PATCH v3 0/2] Always show mmap prot even though PROT_NONE Changbin Du
@ 2024-05-22 3:35 ` Changbin Du
2024-05-22 3:35 ` [RESEND PATCH v3 2/2] perf trace beauty: Always show mmap prot even though PROT_NONE Changbin Du
2024-05-31 21:13 ` [RESEND PATCH v3 0/2] " Namhyung Kim
2 siblings, 0 replies; 4+ messages in thread
From: Changbin Du @ 2024-05-22 3:35 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim
Cc: Mark Rutland, Alexander Shishkin, Jiri Olsa, Ian Rogers,
Adrian Hunter, Liang, Kan, linux-perf-users, linux-kernel,
Changbin Du
For some parameters, it is best to also display them when they are 0,
e.g. flags.
Here we only check the show_zero property and let arg printer handle
special cases.
Signed-off-by: Changbin Du <changbin.du@huawei.com>
---
tools/perf/builtin-trace.c | 29 +++++++----------------------
1 file changed, 7 insertions(+), 22 deletions(-)
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index e5fef39c34bf..915dcd258002 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -2091,17 +2091,11 @@ static size_t syscall__scnprintf_args(struct syscall *sc, char *bf, size_t size,
val = syscall_arg_fmt__mask_val(&sc->arg_fmt[arg.idx], &arg, val);
/*
- * Suppress this argument if its value is zero and
- * and we don't have a string associated in an
- * strarray for it.
- */
- if (val == 0 &&
- !trace->show_zeros &&
- !(sc->arg_fmt &&
- (sc->arg_fmt[arg.idx].show_zero ||
- sc->arg_fmt[arg.idx].scnprintf == SCA_STRARRAY ||
- sc->arg_fmt[arg.idx].scnprintf == SCA_STRARRAYS) &&
- sc->arg_fmt[arg.idx].parm))
+ * Suppress this argument if its value is zero and show_zero
+ * property isn't set.
+ */
+ if (val == 0 && !trace->show_zeros &&
+ !(sc->arg_fmt && sc->arg_fmt[arg.idx].show_zero))
continue;
printed += scnprintf(bf + printed, size - printed, "%s", printed ? ", " : "");
@@ -2796,17 +2790,8 @@ static size_t trace__fprintf_tp_fields(struct trace *trace, struct evsel *evsel,
*/
val = syscall_arg_fmt__mask_val(arg, &syscall_arg, val);
- /*
- * Suppress this argument if its value is zero and
- * we don't have a string associated in an
- * strarray for it.
- */
- if (val == 0 &&
- !trace->show_zeros &&
- !((arg->show_zero ||
- arg->scnprintf == SCA_STRARRAY ||
- arg->scnprintf == SCA_STRARRAYS) &&
- arg->parm))
+ /* Suppress this argument if its value is zero and show_zero property isn't set. */
+ if (val == 0 && !trace->show_zeros && !arg->show_zero)
continue;
printed += scnprintf(bf + printed, size - printed, "%s", printed ? ", " : "");
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [RESEND PATCH v3 2/2] perf trace beauty: Always show mmap prot even though PROT_NONE
2024-05-22 3:35 [RESEND PATCH v3 0/2] Always show mmap prot even though PROT_NONE Changbin Du
2024-05-22 3:35 ` [RESEND PATCH v3 1/2] perf trace beauty: Always show param if show_zero is set Changbin Du
@ 2024-05-22 3:35 ` Changbin Du
2024-05-31 21:13 ` [RESEND PATCH v3 0/2] " Namhyung Kim
2 siblings, 0 replies; 4+ messages in thread
From: Changbin Du @ 2024-05-22 3:35 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim
Cc: Mark Rutland, Alexander Shishkin, Jiri Olsa, Ian Rogers,
Adrian Hunter, Liang, Kan, linux-perf-users, linux-kernel,
Changbin Du
PROT_NONE is also useful information, so do not omit the mmap prot even
though it is 0. syscall_arg__scnprintf_mmap_prot() could print PROT_NONE
for prot 0.
Before: PROT_NONE is not shown.
$ sudo perf trace -e syscalls:sys_enter_mmap --filter prot==0 -- ls
0.000 ls/2979231 syscalls:sys_enter_mmap(len: 4220888, flags: PRIVATE|ANONYMOUS)
After: PROT_NONE is displayed.
$ sudo perf trace -e syscalls:sys_enter_mmap --filter prot==0 -- ls
0.000 ls/2975708 syscalls:sys_enter_mmap(len: 4220888, prot: NONE, flags: PRIVATE|ANONYMOUS)
Signed-off-by: Changbin Du <changbin.du@huawei.com>
---
tools/perf/builtin-trace.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
index 915dcd258002..919a462a7cb5 100644
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@ -1033,7 +1033,7 @@ static const struct syscall_fmt syscall_fmts[] = {
#if defined(__s390x__)
.alias = "old_mmap",
#endif
- .arg = { [2] = { .scnprintf = SCA_MMAP_PROT, /* prot */ },
+ .arg = { [2] = { .scnprintf = SCA_MMAP_PROT, .show_zero = true, /* prot */ },
[3] = { .scnprintf = SCA_MMAP_FLAGS, /* flags */
.strtoul = STUL_STRARRAY_FLAGS,
.parm = &strarray__mmap_flags, },
@@ -1050,7 +1050,7 @@ static const struct syscall_fmt syscall_fmts[] = {
[4] = { .scnprintf = SCA_MOVE_MOUNT_FLAGS, /* flags */ }, }, },
{ .name = "mprotect",
.arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
- [2] = { .scnprintf = SCA_MMAP_PROT, /* prot */ }, }, },
+ [2] = { .scnprintf = SCA_MMAP_PROT, .show_zero = true, /* prot */ }, }, },
{ .name = "mq_unlink",
.arg = { [0] = { .scnprintf = SCA_FILENAME, /* u_name */ }, }, },
{ .name = "mremap", .hexret = true,
@@ -1084,7 +1084,7 @@ static const struct syscall_fmt syscall_fmts[] = {
.arg = { [0] = { .scnprintf = SCA_INT, /* key */ }, }, },
{ .name = "pkey_mprotect",
.arg = { [0] = { .scnprintf = SCA_HEX, /* start */ },
- [2] = { .scnprintf = SCA_MMAP_PROT, /* prot */ },
+ [2] = { .scnprintf = SCA_MMAP_PROT, .show_zero = true, /* prot */ },
[3] = { .scnprintf = SCA_INT, /* pkey */ }, }, },
{ .name = "poll", .timeout = true, },
{ .name = "ppoll", .timeout = true, },
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [RESEND PATCH v3 0/2] Always show mmap prot even though PROT_NONE
2024-05-22 3:35 [RESEND PATCH v3 0/2] Always show mmap prot even though PROT_NONE Changbin Du
2024-05-22 3:35 ` [RESEND PATCH v3 1/2] perf trace beauty: Always show param if show_zero is set Changbin Du
2024-05-22 3:35 ` [RESEND PATCH v3 2/2] perf trace beauty: Always show mmap prot even though PROT_NONE Changbin Du
@ 2024-05-31 21:13 ` Namhyung Kim
2 siblings, 0 replies; 4+ messages in thread
From: Namhyung Kim @ 2024-05-31 21:13 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo, Ingo Molnar, Changbin Du,
Peter Zijlstra
Cc: Ian Rogers, linux-kernel, Alexander Shishkin, Adrian Hunter,
linux-perf-users, Liang, Kan, Jiri Olsa, Mark Rutland
On Wed, 22 May 2024 11:35:40 +0800, Changbin Du wrote:
> Before: PROT_NONE is not shown for prot 0.
> $ sudo perf trace -e syscalls:sys_enter_mmap --filter prot==0 -- ls
> 0.000 ls/2979231 syscalls:sys_enter_mmap(len: 4220888, flags: PRIVATE|ANONYMOUS)
>
> After: PROT_NONE is displayed.
> $ sudo perf trace -e syscalls:sys_enter_mmap --filter prot==0 -- ls
> 0.000 ls/2975708 syscalls:sys_enter_mmap(len: 4220888, prot: NONE, flags: PRIVATE|ANONYMOUS)
>
> [...]
Applied to perf-tools-next, thanks!
[1/2] perf trace beauty: Always show param if show_zero is set
commit: 92968dcc037fed045dab5c8e52b51255d77f5432
[2/2] perf trace beauty: Always show mmap prot even though PROT_NONE
commit: f975c13d2a34a335fc559aeff76dcaba456cced0
Best regards,
--
Namhyung Kim <namhyung@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread