[ltt-dev] [PATCH] Add dup tracepoint
Mathieu Desnoyers
compudj at krystal.dyndns.org
Wed May 18 18:00:32 EDT 2011
Merged, thanks! Will push a new lttng-stable (0.19) version soon.
Mathieu
* Francis Giraldeau (francis.giraldeau at usherbrooke.ca) wrote:
> This patch provides instrumentation for dup system call. It records the oldfd
> and newfd if the operation succeed. This is required to recover in the trace
> tre fd that newfd reference to.
>
> Signed-off-by: Francis Giraldeau <francis.giraldeau at usherbrooke.ca>
> ---
> fs/fcntl.c | 11 +++++++++--
> include/trace/fs.h | 3 +++
> 2 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/fs/fcntl.c b/fs/fcntl.c
> index cb10261..3d3b3ac 100644
> --- a/fs/fcntl.c
> +++ b/fs/fcntl.c
> @@ -20,11 +20,14 @@
> #include <linux/signal.h>
> #include <linux/rcupdate.h>
> #include <linux/pid_namespace.h>
> +#include <trace/fs.h>
>
> #include <asm/poll.h>
> #include <asm/siginfo.h>
> #include <asm/uaccess.h>
>
> +DEFINE_TRACE(fs_dup);
> +
> void set_close_on_exec(unsigned int fd, int flag)
> {
> struct files_struct *files = current->files;
> @@ -104,6 +107,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
> if (tofree)
> filp_close(tofree, files);
>
> + trace_fs_dup(oldfd, newfd);
> return newfd;
>
> Ebadf:
> @@ -135,11 +139,14 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
>
> if (file) {
> ret = get_unused_fd();
> - if (ret >= 0)
> + if (ret >= 0) {
> fd_install(ret, file);
> - else
> + trace_fs_dup(fildes, (unsigned int) ret);
> + } else {
> fput(file);
> + }
> }
> +
> return ret;
> }
>
> diff --git a/include/trace/fs.h b/include/trace/fs.h
> index efe7e47..7712331 100644
> --- a/include/trace/fs.h
> +++ b/include/trace/fs.h
> @@ -63,4 +63,7 @@ DECLARE_TRACE(fs_select,
> DECLARE_TRACE(fs_poll,
> TP_PROTO(int fd),
> TP_ARGS(fd));
> +DECLARE_TRACE(fs_dup,
> + TP_PROTO(unsigned int oldfd, unsigned int newfd),
> + TP_ARGS(oldfd, newfd));
> #endif
> --
> 1.7.1
>
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list