Skip to contentSkip to conversation

perf trace beauty fcntl: Augment the return of F_DUPFD(_CLOEXEC)

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Jul 20, 2017 perf events

lore
Share & tools
lore
#0 lore raw
Commit-ID:  07a0572439450e2631f90d595965c379de105bab
Gitweb:     http://git.kernel.org/tip/07a0572439450e2631f90d595965c379de105bab
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Fri, 14 Jul 2017 15:24:19 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Tue, 18 Jul 2017 23:14:03 -0300

perf trace beauty fcntl: Augment the return of F_DUPFD(_CLOEXEC)

Using the existing 'fd' beautifier, now we can see the path for the just dup'ed fd:

18031.338 ( 0.009 ms): gnome-terminal/2472 fcntl(fd: 55, cmd: DUPFD_CLOEXEC) = 56</memfd:gdk-wayland (deleted)>

---
 tools/perf/trace/beauty/fcntl.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
tools/perf/trace/beauty/fcntl.c +5 -1
index 9de80a7..254ae435 100644
@@ -30,6 +30,10 @@ size_t syscall_arg__scnprintf_fcntl_cmd(char *bf, size_t size, struct syscall_ar
 		syscall_arg__set_ret_scnprintf(arg, syscall_arg__scnprintf_fcntl_getfd);
 		goto mask_arg;
 	}
+	if (arg->val == F_DUPFD_CLOEXEC || arg->val == F_DUPFD) {
+		syscall_arg__set_ret_scnprintf(arg, syscall_arg__scnprintf_fd);
+		goto out;
+	}
 	/*
 	 * Some commands ignore the third fcntl argument, "arg", so mask it
 	 */
@@ -38,7 +42,7 @@ size_t syscall_arg__scnprintf_fcntl_cmd(char *bf, size_t size, struct syscall_ar
 mask_arg:
 		arg->mask |= (1 << 2);
 	}
-
+out:
 	return syscall_arg__scnprintf_strarrays(bf, size, arg);
 }