writeback: add more tracing bits
[linux-2.6-block.git] / include / trace / events / writeback.h
CommitLineData
3cf992ce
JA
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM writeback
3
4#if !defined(_TRACE_WRITEBACK_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_WRITEBACK_H
6
7#include <linux/backing-dev.h>
8#include <linux/writeback.h>
9
10TRACE_EVENT(writeback_queue,
11
12 TP_PROTO(struct wb_writeback_args *args),
13
14 TP_ARGS(args),
15
16 TP_STRUCT__entry(
17 __field(long, nr_pages)
18 __field(int, sb)
19 __field(int, sync_mode)
20 __field(int, for_kupdate)
21 __field(int, range_cyclic)
22 __field(int, for_background)
23 ),
24
25 TP_fast_assign(
26 __entry->nr_pages = args->nr_pages;
27 __entry->sb = !!args->sb;
28 __entry->for_kupdate = args->for_kupdate;
29 __entry->range_cyclic = args->range_cyclic;
30 __entry->for_background = args->for_background;
31 ),
32
33 TP_printk("pages=%ld, sb=%d, kupdate=%d, range_cyclic=%d "
34 "for_background=%d", __entry->nr_pages, __entry->sb,
35 __entry->for_kupdate, __entry->range_cyclic,
36 __entry->for_background)
37);
38
39TRACE_EVENT(writeback_sched,
40
41 TP_PROTO(struct bdi_work *work, const char *msg),
42
43 TP_ARGS(work, msg),
44
45 TP_STRUCT__entry(
46 __field(struct bdi_work *, work)
47 __array(char, task, 8)
48 ),
49
50 TP_fast_assign(
51 __entry->work = work;
52 snprintf(__entry->task, 8, "%s", msg);
53 ),
54
55 TP_printk("work=%p, task=%s", __entry->work, __entry->task)
56);
57
58TRACE_EVENT(writeback_exec,
59
60 TP_PROTO(struct bdi_work *work),
61
62 TP_ARGS(work),
63
64 TP_STRUCT__entry(
65 __field(struct bdi_work *, work)
66 __field(long, nr_pages)
67 __field(int, sb)
68 __field(int, sync_mode)
69 __field(int, for_kupdate)
70 __field(int, range_cyclic)
71 __field(int, for_background)
72 ),
73
74 TP_fast_assign(
75 __entry->work = work;
76 __entry->nr_pages = work->args.nr_pages;
77 __entry->sb = !!work->args.sb;
78 __entry->for_kupdate = work->args.for_kupdate;
79 __entry->range_cyclic = work->args.range_cyclic;
80 __entry->for_background = work->args.for_background;
81
82 ),
83
84 TP_printk("work=%p pages=%ld, sb=%d, kupdate=%d, range_cyclic=%d"
85 " for_background=%d", __entry->work,
86 __entry->nr_pages, __entry->sb, __entry->for_kupdate,
87 __entry->range_cyclic, __entry->for_background)
88);
89
8707ba9a
JA
90TRACE_EVENT(writeback_done,
91
92 TP_PROTO(struct bdi_work *work, long pages),
93
94 TP_ARGS(work, pages),
95
96 TP_STRUCT__entry(
97 __field(unsigned int, work)
98 __field(long, pages)
99 ),
100
101 TP_fast_assign(
102 __entry->work = (unsigned long) work & 0xffff;
103 __entry->pages = pages;
104
105 ),
106
107 TP_printk("work=%x pages=%ld", __entry->work, __entry->pages)
108);
109
3cf992ce
JA
110TRACE_EVENT(writeback_clear,
111
112 TP_PROTO(struct bdi_work *work),
113
114 TP_ARGS(work),
115
116 TP_STRUCT__entry(
117 __field(struct bdi_work *, work)
118 __field(int, refs)
119 ),
120
121 TP_fast_assign(
122 __entry->work = work;
123 __entry->refs = atomic_read(&work->pending);
124 ),
125
126 TP_printk("work=%p, refs=%d", __entry->work, __entry->refs)
127);
128
129TRACE_EVENT(writeback_pages_written,
130
131 TP_PROTO(long pages_written),
132
133 TP_ARGS(pages_written),
134
135 TP_STRUCT__entry(
136 __field(long, pages)
137 ),
138
139 TP_fast_assign(
140 __entry->pages = pages_written;
141 ),
142
143 TP_printk("%ld", __entry->pages)
144);
145
146
147TRACE_EVENT(writeback_thread_start,
148
149 TP_PROTO(int start),
150
151 TP_ARGS(start),
152
153 TP_STRUCT__entry(
154 __field(int, start)
155 ),
156
157 TP_fast_assign(
158 __entry->start = start;
159 ),
160
161 TP_printk("%s", __entry->start ? "started" : "exited")
162);
163
164TRACE_EVENT(writeback_bdi_register,
165
166 TP_PROTO(const char *name, int start),
167
168 TP_ARGS(name, start),
169
170 TP_STRUCT__entry(
171 __array(char, name, 16)
172 __field(int, start)
173 ),
174
175 TP_fast_assign(
176 strncpy(__entry->name, name, 16);
177 __entry->start = start;
178 ),
179
180 TP_printk("%s: %s", __entry->name,
181 __entry->start ? "registered" : "unregistered")
182);
183
8707ba9a
JA
184TRACE_EVENT(writeback_inode_wait,
185
186 TP_PROTO(int start),
187
188 TP_ARGS(start),
189
190 TP_STRUCT__entry(
191 __field(int, start)
192 ),
193
194 TP_fast_assign(
195 __entry->start = start;
196 ),
197
198 TP_printk("%s", __entry->start ? "start" : "end")
199);
200
201TRACE_EVENT(writeback_bdp_start,
202
203 TP_PROTO(unsigned long reclaim, unsigned long thresh),
204
205 TP_ARGS(reclaim, thresh),
206
207 TP_STRUCT__entry(
208 __field(unsigned long, reclaim)
209 __field(unsigned long, thresh)
210 ),
211
212 TP_fast_assign(
213 __entry->reclaim = reclaim;
214 __entry->thresh = thresh;
215 ),
216
217 TP_printk("reclaimable=%lu, threshold=%lu", __entry->reclaim,
218 __entry->thresh)
219);
220
221TRACE_EVENT(writeback_bdp_end,
222
223 TP_PROTO(unsigned long wrote),
224
225 TP_ARGS(wrote),
226
227 TP_STRUCT__entry(
228 __field(unsigned long, wrote)
229 ),
230
231 TP_fast_assign(
232 __entry->wrote = wrote;
233 ),
234
235 TP_printk("wrote=%lu", __entry->wrote)
236);
237
3cf992ce
JA
238#endif /* _TRACE_WRITEBACK_H */
239
240/* This part must be outside protection */
241#include <trace/define_trace.h>