Commit 5cea6ff265e6979226b751f5ebfdda4594322523
1 parent
eac032c54b
Exists in
master
and in
16 other branches
perf trace: Beautify flock 'cmd' arg
4735.638 ( 0.003 ms): man/19881 flock(fd: 3, cmd: SH|NB) = 0 4735.832 ( 0.002 ms): man/19881 flock(fd: 3, cmd: UN ) = 0 Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-amh3y88kh1nmclpwezqlarl8@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Showing 1 changed file with 33 additions and 0 deletions Side-by-side Diff
tools/perf/builtin-trace.c
... | ... | @@ -189,6 +189,37 @@ |
189 | 189 | |
190 | 190 | #define SCA_MADV_BHV syscall_arg__scnprintf_madvise_behavior |
191 | 191 | |
192 | +static size_t syscall_arg__scnprintf_flock(char *bf, size_t size, | |
193 | + struct syscall_arg *arg) | |
194 | +{ | |
195 | + int printed = 0, op = arg->val; | |
196 | + | |
197 | + if (op == 0) | |
198 | + return scnprintf(bf, size, "NONE"); | |
199 | +#define P_CMD(cmd) \ | |
200 | + if ((op & LOCK_##cmd) == LOCK_##cmd) { \ | |
201 | + printed += scnprintf(bf + printed, size - printed, "%s%s", printed ? "|" : "", #cmd); \ | |
202 | + op &= ~LOCK_##cmd; \ | |
203 | + } | |
204 | + | |
205 | + P_CMD(SH); | |
206 | + P_CMD(EX); | |
207 | + P_CMD(NB); | |
208 | + P_CMD(UN); | |
209 | + P_CMD(MAND); | |
210 | + P_CMD(RW); | |
211 | + P_CMD(READ); | |
212 | + P_CMD(WRITE); | |
213 | +#undef P_OP | |
214 | + | |
215 | + if (op) | |
216 | + printed += scnprintf(bf + printed, size - printed, "%s%#x", printed ? "|" : "", op); | |
217 | + | |
218 | + return printed; | |
219 | +} | |
220 | + | |
221 | +#define SCA_FLOCK syscall_arg__scnprintf_flock | |
222 | + | |
192 | 223 | static size_t syscall_arg__scnprintf_futex_op(char *bf, size_t size, struct syscall_arg *arg) |
193 | 224 | { |
194 | 225 | enum syscall_futex_args { |
... | ... | @@ -554,6 +585,8 @@ |
554 | 585 | { .name = "fcntl", .errmsg = true, |
555 | 586 | .arg_scnprintf = { [1] = SCA_STRARRAY, /* cmd */ }, |
556 | 587 | .arg_parm = { [1] = &strarray__fcntl_cmds, /* cmd */ }, }, |
588 | + { .name = "flock", .errmsg = true, | |
589 | + .arg_scnprintf = { [1] = SCA_FLOCK, /* cmd */ }, }, | |
557 | 590 | { .name = "fstat", .errmsg = true, .alias = "newfstat", }, |
558 | 591 | { .name = "fstatat", .errmsg = true, .alias = "newfstatat", }, |
559 | 592 | { .name = "futex", .errmsg = true, |