X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Flttng-statedump.h;h=985b71cf3cdba2fb440d0963bce9d2a6058334d3;hb=290d1667a36ec7b568ca6acfec732ffd62b4e67f;hp=5fc15a88be8234d7a7e576be12ef5e1f8d4a4ad0;hpb=90fffd13d9803770838eab195e4f091753cbc7b5;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/lttng-statedump.h b/instrumentation/events/lttng-module/lttng-statedump.h index 5fc15a88..985b71cf 100644 --- a/instrumentation/events/lttng-module/lttng-statedump.h +++ b/instrumentation/events/lttng-module/lttng-statedump.h @@ -1,13 +1,15 @@ #undef TRACE_SYSTEM #define TRACE_SYSTEM lttng_statedump -#if !defined(_TRACE_LTTNG_STATEDUMP_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_LTTNG_STATEDUMP_H +#if !defined(LTTNG_TRACE_LTTNG_STATEDUMP_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_LTTNG_STATEDUMP_H -#include +#include "../../../probes/lttng-tracepoint-event.h" #include +#include +#include -TRACE_EVENT(lttng_statedump_start, +LTTNG_TRACEPOINT_EVENT(lttng_statedump_start, TP_PROTO(struct lttng_session *session), TP_ARGS(session), TP_STRUCT__entry( @@ -17,7 +19,7 @@ TRACE_EVENT(lttng_statedump_start, TP_printk("") ) -TRACE_EVENT(lttng_statedump_end, +LTTNG_TRACEPOINT_EVENT(lttng_statedump_end, TP_PROTO(struct lttng_session *session), TP_ARGS(session), TP_STRUCT__entry( @@ -27,11 +29,12 @@ TRACE_EVENT(lttng_statedump_end, TP_printk("") ) -TRACE_EVENT(lttng_statedump_process_state, +LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state, TP_PROTO(struct lttng_session *session, struct task_struct *p, - int type, int mode, int submode, int status), - TP_ARGS(session, p, type, mode, submode, status), + int type, int mode, int submode, int status, + struct pid_namespace *pid_ns), + TP_ARGS(session, p, type, mode, submode, status, pid_ns), TP_STRUCT__entry( __field(pid_t, tid) __field(pid_t, vtid) @@ -44,38 +47,13 @@ TRACE_EVENT(lttng_statedump_process_state, __field(int, mode) __field(int, submode) __field(int, status) + __field(int, ns_level) ), TP_fast_assign( tp_assign(tid, p->pid) - tp_assign(vtid, - ({ - struct nsproxy *proxy; - pid_t ret = 0; - - rcu_read_lock(); - proxy = task_nsproxy(p); - if (proxy) { - ret = task_pid_nr_ns(p, - proxy->pid_ns); - } - rcu_read_unlock(); - ret; - })) + tp_assign(vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0) tp_assign(pid, p->tgid) - tp_assign(vpid, - ({ - struct nsproxy *proxy; - pid_t ret = 0; - - rcu_read_lock(); - proxy = task_nsproxy(p); - if (proxy) { - ret = task_tgid_nr_ns(p, - proxy->pid_ns); - } - rcu_read_unlock(); - ret; - })) + tp_assign(vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0) tp_assign(ppid, ({ pid_t ret; @@ -88,17 +66,14 @@ TRACE_EVENT(lttng_statedump_process_state, tp_assign(vppid, ({ struct task_struct *parent; - struct nsproxy *proxy; pid_t ret = 0; - rcu_read_lock(); - parent = rcu_dereference(p->real_parent); - proxy = task_nsproxy(parent); - if (proxy) { - ret = task_tgid_nr_ns(parent, - proxy->pid_ns); + if (pid_ns) { + rcu_read_lock(); + parent = rcu_dereference(p->real_parent); + ret = task_tgid_nr_ns(parent, pid_ns); + rcu_read_unlock(); } - rcu_read_unlock(); ret; })) tp_memcpy(name, p->comm, TASK_COMM_LEN) @@ -106,28 +81,34 @@ TRACE_EVENT(lttng_statedump_process_state, tp_assign(mode, mode) tp_assign(submode, submode) tp_assign(status, status) + tp_assign(ns_level, pid_ns ? pid_ns->level : 0) ), TP_printk("") ) -TRACE_EVENT(lttng_statedump_file_descriptor, +LTTNG_TRACEPOINT_EVENT(lttng_statedump_file_descriptor, TP_PROTO(struct lttng_session *session, - struct task_struct *p, int fd, const char *filename), - TP_ARGS(session, p, fd, filename), + struct task_struct *p, int fd, const char *filename, + unsigned int flags, fmode_t fmode), + TP_ARGS(session, p, fd, filename, flags, fmode), TP_STRUCT__entry( __field(pid_t, pid) __field(int, fd) + __field_oct(unsigned int, flags) + __field_hex(fmode_t, fmode) __string(filename, filename) ), TP_fast_assign( tp_assign(pid, p->tgid) tp_assign(fd, fd) + tp_assign(flags, flags) + tp_assign(fmode, fmode) tp_strcpy(filename, filename) ), TP_printk("") ) -TRACE_EVENT(lttng_statedump_vm_map, +LTTNG_TRACEPOINT_EVENT(lttng_statedump_vm_map, TP_PROTO(struct lttng_session *session, struct task_struct *p, struct vm_area_struct *map, unsigned long inode), @@ -151,7 +132,7 @@ TRACE_EVENT(lttng_statedump_vm_map, TP_printk("") ) -TRACE_EVENT(lttng_statedump_network_interface, +LTTNG_TRACEPOINT_EVENT(lttng_statedump_network_interface, TP_PROTO(struct lttng_session *session, struct net_device *dev, struct in_ifaddr *ifa), TP_ARGS(session, dev, ifa), @@ -166,8 +147,23 @@ TRACE_EVENT(lttng_statedump_network_interface, TP_printk("") ) +LTTNG_TRACEPOINT_EVENT(lttng_statedump_block_device, + TP_PROTO(struct lttng_session *session, + dev_t dev, const char *diskname), + TP_ARGS(session, dev, diskname), + TP_STRUCT__entry( + __field(dev_t, dev) + __string(diskname, diskname) + ), + TP_fast_assign( + tp_assign(dev, dev) + tp_strcpy(diskname, diskname) + ), + TP_printk("") +) + /* Called with desc->lock held */ -TRACE_EVENT(lttng_statedump_interrupt, +LTTNG_TRACEPOINT_EVENT(lttng_statedump_interrupt, TP_PROTO(struct lttng_session *session, unsigned int irq, const char *chip_name, struct irqaction *action), @@ -175,17 +171,17 @@ TRACE_EVENT(lttng_statedump_interrupt, TP_STRUCT__entry( __field(unsigned int, irq) __string(name, chip_name) - __string(action, action->name) + __string(action, action->name ? : "") ), TP_fast_assign( tp_assign(irq, irq) tp_strcpy(name, chip_name) - tp_strcpy(action, action->name) + tp_strcpy(action, action->name ? : "") ), TP_printk("") ) -#endif /* _TRACE_LTTNG_STATEDUMP_H */ +#endif /* LTTNG_TRACE_LTTNG_STATEDUMP_H */ /* This part must be outside protection */ #include "../../../probes/define_trace.h"