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>
10 TRACE_EVENT(lttng_statedump_start
,
11 TP_PROTO(struct lttng_session
*session
),
20 TRACE_EVENT(lttng_statedump_end
,
21 TP_PROTO(struct lttng_session
*session
),
30 TRACE_EVENT(lttng_statedump_process_state
,
31 TP_PROTO(struct lttng_session
*session
,
32 struct task_struct
*p
,
33 int type
, int mode
, int submode
, int status
),
34 TP_ARGS(session
, p
, type
, mode
, submode
, status
),
42 __array_text(char, name
, TASK_COMM_LEN
)
49 tp_assign(tid
, p
->pid
)
52 struct nsproxy
*proxy
;
56 proxy
= task_nsproxy(p
);
58 ret
= task_pid_nr_ns(p
,
64 tp_assign(pid
, p
->tgid
)
67 struct nsproxy
*proxy
;
71 proxy
= task_nsproxy(p
);
73 ret
= task_tgid_nr_ns(p
,
84 ret
= task_tgid_nr(p
->real_parent
);
90 struct task_struct
*parent
;
91 struct nsproxy
*proxy
;
95 parent
= rcu_dereference(p
->real_parent
);
96 proxy
= task_nsproxy(parent
);
98 ret
= task_tgid_nr_ns(parent
,
104 tp_memcpy(name
, p
->comm
, TASK_COMM_LEN
)
105 tp_assign(type
, type
)
106 tp_assign(mode
, mode
)
107 tp_assign(submode
, submode
)
108 tp_assign(status
, status
)
113 TRACE_EVENT(lttng_statedump_file_descriptor
,
114 TP_PROTO(struct lttng_session
*session
,
115 struct task_struct
*p
, int fd
, const char *filename
),
116 TP_ARGS(session
, p
, fd
, filename
),
120 __string(filename
, filename
)
123 tp_assign(pid
, p
->tgid
)
125 tp_strcpy(filename
, filename
)
130 TRACE_EVENT(lttng_statedump_vm_map
,
131 TP_PROTO(struct lttng_session
*session
,
132 struct task_struct
*p
, struct vm_area_struct
*map
,
133 unsigned long inode
),
134 TP_ARGS(session
, p
, map
, inode
),
137 __field_hex(unsigned long, start
)
138 __field_hex(unsigned long, end
)
139 __field_hex(unsigned long, flags
)
140 __field(unsigned long, inode
)
141 __field(unsigned long, pgoff
)
144 tp_assign(pid
, p
->tgid
)
145 tp_assign(start
, map
->vm_start
)
146 tp_assign(end
, map
->vm_end
)
147 tp_assign(flags
, map
->vm_flags
)
148 tp_assign(inode
, inode
)
149 tp_assign(pgoff
, map
->vm_pgoff
<< PAGE_SHIFT
)
154 TRACE_EVENT(lttng_statedump_network_interface
,
155 TP_PROTO(struct lttng_session
*session
,
156 struct net_device
*dev
, struct in_ifaddr
*ifa
),
157 TP_ARGS(session
, dev
, ifa
),
159 __string(name
, dev
->name
)
160 __field_network_hex(uint32_t, address_ipv4
)
163 tp_strcpy(name
, dev
->name
)
164 tp_assign(address_ipv4
, ifa
? ifa
->ifa_address
: 0U)
169 /* Called with desc->lock held */
170 TRACE_EVENT(lttng_statedump_interrupt
,
171 TP_PROTO(struct lttng_session
*session
,
172 unsigned int irq
, const char *chip_name
,
173 struct irqaction
*action
),
174 TP_ARGS(session
, irq
, chip_name
, action
),
176 __field(unsigned int, irq
)
177 __string(name
, chip_name
)
178 __string(action
, action
->name
)
182 tp_strcpy(name
, chip_name
)
183 tp_strcpy(action
, action
->name
)
188 #endif /* _TRACE_LTTNG_STATEDUMP_H */
190 /* This part must be outside protection */
191 #include "../../../probes/define_trace.h"