2 #define TRACE_SYSTEM lttng_statedump
4 #if !defined(_TRACE_LTTNG_STATEDUMP_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_LTTNG_STATEDUMP_H
7 #include <linux/tracepoint.h>
8 #include <linux/nsproxy.h>
9 #include <linux/pid_namespace.h>
11 TRACE_EVENT(lttng_statedump_start,
12 TP_PROTO(struct lttng_session *session),
21 TRACE_EVENT(lttng_statedump_end,
22 TP_PROTO(struct lttng_session *session),
31 TRACE_EVENT(lttng_statedump_process_state,
32 TP_PROTO(struct lttng_session *session,
33 struct task_struct *p,
34 int type, int mode, int submode, int status,
35 struct pid_namespace *pid_ns),
36 TP_ARGS(session, p, type, mode, submode, status, pid_ns),
44 __array_text(char, name, TASK_COMM_LEN)
49 __field(int, ns_level)
52 tp_assign(tid, p->pid)
53 tp_assign(vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0)
54 tp_assign(pid, p->tgid)
55 tp_assign(vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0)
61 ret = task_tgid_nr(p->real_parent);
67 struct task_struct *parent;
72 parent = rcu_dereference(p->real_parent);
73 ret = task_tgid_nr_ns(parent, pid_ns);
78 tp_memcpy(name, p->comm, TASK_COMM_LEN)
81 tp_assign(submode, submode)
82 tp_assign(status, status)
83 tp_assign(ns_level, pid_ns ? pid_ns->level : 0)
88 TRACE_EVENT(lttng_statedump_file_descriptor,
89 TP_PROTO(struct lttng_session *session,
90 struct task_struct *p, int fd, const char *filename),
91 TP_ARGS(session, p, fd, filename),
95 __string(filename, filename)
98 tp_assign(pid, p->tgid)
100 tp_strcpy(filename, filename)
105 TRACE_EVENT(lttng_statedump_vm_map,
106 TP_PROTO(struct lttng_session *session,
107 struct task_struct *p, struct vm_area_struct *map,
108 unsigned long inode),
109 TP_ARGS(session, p, map, inode),
112 __field_hex(unsigned long, start)
113 __field_hex(unsigned long, end)
114 __field_hex(unsigned long, flags)
115 __field(unsigned long, inode)
116 __field(unsigned long, pgoff)
119 tp_assign(pid, p->tgid)
120 tp_assign(start, map->vm_start)
121 tp_assign(end, map->vm_end)
122 tp_assign(flags, map->vm_flags)
123 tp_assign(inode, inode)
124 tp_assign(pgoff, map->vm_pgoff << PAGE_SHIFT)
129 TRACE_EVENT(lttng_statedump_network_interface,
130 TP_PROTO(struct lttng_session *session,
131 struct net_device *dev, struct in_ifaddr *ifa),
132 TP_ARGS(session, dev, ifa),
134 __string(name, dev->name)
135 __field_network_hex(uint32_t, address_ipv4)
138 tp_strcpy(name, dev->name)
139 tp_assign(address_ipv4, ifa ? ifa->ifa_address : 0U)
144 /* Called with desc->lock held */
145 TRACE_EVENT(lttng_statedump_interrupt,
146 TP_PROTO(struct lttng_session *session,
147 unsigned int irq, const char *chip_name,
148 struct irqaction *action),
149 TP_ARGS(session, irq, chip_name, action),
151 __field(unsigned int, irq)
152 __string(name, chip_name)
153 __string(action, action->name ? : "")
157 tp_strcpy(name, chip_name)
158 tp_strcpy(action, action->name ? : "")
163 #endif /* _TRACE_LTTNG_STATEDUMP_H */
165 /* This part must be outside protection */
166 #include "../../../probes/define_trace.h"