Merge branch 'kvm-updates/2.6.32' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[deliverable/linux.git] / include / trace / events / block.h
CommitLineData
d0b6e04a
LZ
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM block
3
55782138
LZ
4#if !defined(_TRACE_BLOCK_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_BLOCK_H
6
7#include <linux/blktrace_api.h>
8#include <linux/blkdev.h>
9#include <linux/tracepoint.h>
10
55782138
LZ
11TRACE_EVENT(block_rq_abort,
12
13 TP_PROTO(struct request_queue *q, struct request *rq),
14
15 TP_ARGS(q, rq),
16
17 TP_STRUCT__entry(
18 __field( dev_t, dev )
19 __field( sector_t, sector )
20 __field( unsigned int, nr_sector )
21 __field( int, errors )
22 __array( char, rwbs, 6 )
23 __dynamic_array( char, cmd, blk_cmd_buf_len(rq) )
24 ),
25
26 TP_fast_assign(
27 __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0;
c9059598
LT
28 __entry->sector = blk_pc_request(rq) ? 0 : blk_rq_pos(rq);
29 __entry->nr_sector = blk_pc_request(rq) ? 0 : blk_rq_sectors(rq);
55782138
LZ
30 __entry->errors = rq->errors;
31
32 blk_fill_rwbs_rq(__entry->rwbs, rq);
33 blk_dump_cmd(__get_str(cmd), rq);
34 ),
35
36 TP_printk("%d,%d %s (%s) %llu + %u [%d]",
37 MAJOR(__entry->dev), MINOR(__entry->dev),
38 __entry->rwbs, __get_str(cmd),
6556d1df
SR
39 (unsigned long long)__entry->sector,
40 __entry->nr_sector, __entry->errors)
55782138
LZ
41);
42
43TRACE_EVENT(block_rq_insert,
44
45 TP_PROTO(struct request_queue *q, struct request *rq),
46
47 TP_ARGS(q, rq),
48
49 TP_STRUCT__entry(
50 __field( dev_t, dev )
51 __field( sector_t, sector )
52 __field( unsigned int, nr_sector )
53 __field( unsigned int, bytes )
54 __array( char, rwbs, 6 )
55 __array( char, comm, TASK_COMM_LEN )
56 __dynamic_array( char, cmd, blk_cmd_buf_len(rq) )
57 ),
58
59 TP_fast_assign(
60 __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0;
c9059598
LT
61 __entry->sector = blk_pc_request(rq) ? 0 : blk_rq_pos(rq);
62 __entry->nr_sector = blk_pc_request(rq) ? 0 : blk_rq_sectors(rq);
63 __entry->bytes = blk_pc_request(rq) ? blk_rq_bytes(rq) : 0;
55782138
LZ
64
65 blk_fill_rwbs_rq(__entry->rwbs, rq);
66 blk_dump_cmd(__get_str(cmd), rq);
67 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
68 ),
69
70 TP_printk("%d,%d %s %u (%s) %llu + %u [%s]",
71 MAJOR(__entry->dev), MINOR(__entry->dev),
72 __entry->rwbs, __entry->bytes, __get_str(cmd),
6556d1df
SR
73 (unsigned long long)__entry->sector,
74 __entry->nr_sector, __entry->comm)
55782138
LZ
75);
76
77TRACE_EVENT(block_rq_issue,
78
79 TP_PROTO(struct request_queue *q, struct request *rq),
80
81 TP_ARGS(q, rq),
82
83 TP_STRUCT__entry(
84 __field( dev_t, dev )
85 __field( sector_t, sector )
86 __field( unsigned int, nr_sector )
87 __field( unsigned int, bytes )
88 __array( char, rwbs, 6 )
89 __array( char, comm, TASK_COMM_LEN )
90 __dynamic_array( char, cmd, blk_cmd_buf_len(rq) )
91 ),
92
93 TP_fast_assign(
94 __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0;
c9059598
LT
95 __entry->sector = blk_pc_request(rq) ? 0 : blk_rq_pos(rq);
96 __entry->nr_sector = blk_pc_request(rq) ? 0 : blk_rq_sectors(rq);
97 __entry->bytes = blk_pc_request(rq) ? blk_rq_bytes(rq) : 0;
55782138
LZ
98
99 blk_fill_rwbs_rq(__entry->rwbs, rq);
100 blk_dump_cmd(__get_str(cmd), rq);
101 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
102 ),
103
104 TP_printk("%d,%d %s %u (%s) %llu + %u [%s]",
105 MAJOR(__entry->dev), MINOR(__entry->dev),
106 __entry->rwbs, __entry->bytes, __get_str(cmd),
6556d1df
SR
107 (unsigned long long)__entry->sector,
108 __entry->nr_sector, __entry->comm)
55782138
LZ
109);
110
111TRACE_EVENT(block_rq_requeue,
112
113 TP_PROTO(struct request_queue *q, struct request *rq),
114
115 TP_ARGS(q, rq),
116
117 TP_STRUCT__entry(
118 __field( dev_t, dev )
119 __field( sector_t, sector )
120 __field( unsigned int, nr_sector )
121 __field( int, errors )
122 __array( char, rwbs, 6 )
123 __dynamic_array( char, cmd, blk_cmd_buf_len(rq) )
124 ),
125
126 TP_fast_assign(
127 __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0;
c9059598
LT
128 __entry->sector = blk_pc_request(rq) ? 0 : blk_rq_pos(rq);
129 __entry->nr_sector = blk_pc_request(rq) ? 0 : blk_rq_sectors(rq);
55782138
LZ
130 __entry->errors = rq->errors;
131
132 blk_fill_rwbs_rq(__entry->rwbs, rq);
133 blk_dump_cmd(__get_str(cmd), rq);
134 ),
135
136 TP_printk("%d,%d %s (%s) %llu + %u [%d]",
137 MAJOR(__entry->dev), MINOR(__entry->dev),
138 __entry->rwbs, __get_str(cmd),
6556d1df
SR
139 (unsigned long long)__entry->sector,
140 __entry->nr_sector, __entry->errors)
55782138
LZ
141);
142
143TRACE_EVENT(block_rq_complete,
144
145 TP_PROTO(struct request_queue *q, struct request *rq),
146
147 TP_ARGS(q, rq),
148
149 TP_STRUCT__entry(
150 __field( dev_t, dev )
151 __field( sector_t, sector )
152 __field( unsigned int, nr_sector )
153 __field( int, errors )
154 __array( char, rwbs, 6 )
155 __dynamic_array( char, cmd, blk_cmd_buf_len(rq) )
156 ),
157
158 TP_fast_assign(
159 __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0;
c9059598
LT
160 __entry->sector = blk_pc_request(rq) ? 0 : blk_rq_pos(rq);
161 __entry->nr_sector = blk_pc_request(rq) ? 0 : blk_rq_sectors(rq);
55782138
LZ
162 __entry->errors = rq->errors;
163
164 blk_fill_rwbs_rq(__entry->rwbs, rq);
165 blk_dump_cmd(__get_str(cmd), rq);
166 ),
167
168 TP_printk("%d,%d %s (%s) %llu + %u [%d]",
169 MAJOR(__entry->dev), MINOR(__entry->dev),
170 __entry->rwbs, __get_str(cmd),
6556d1df
SR
171 (unsigned long long)__entry->sector,
172 __entry->nr_sector, __entry->errors)
55782138 173);
fe63b94a 174
55782138
LZ
175TRACE_EVENT(block_bio_bounce,
176
177 TP_PROTO(struct request_queue *q, struct bio *bio),
178
179 TP_ARGS(q, bio),
180
181 TP_STRUCT__entry(
182 __field( dev_t, dev )
183 __field( sector_t, sector )
184 __field( unsigned int, nr_sector )
185 __array( char, rwbs, 6 )
186 __array( char, comm, TASK_COMM_LEN )
187 ),
188
189 TP_fast_assign(
fe63b94a
CE
190 __entry->dev = bio->bi_bdev ?
191 bio->bi_bdev->bd_dev : 0;
55782138
LZ
192 __entry->sector = bio->bi_sector;
193 __entry->nr_sector = bio->bi_size >> 9;
194 blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
195 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
196 ),
197
198 TP_printk("%d,%d %s %llu + %u [%s]",
199 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
200 (unsigned long long)__entry->sector,
201 __entry->nr_sector, __entry->comm)
55782138
LZ
202);
203
204TRACE_EVENT(block_bio_complete,
205
206 TP_PROTO(struct request_queue *q, struct bio *bio),
207
208 TP_ARGS(q, bio),
209
210 TP_STRUCT__entry(
211 __field( dev_t, dev )
212 __field( sector_t, sector )
213 __field( unsigned, nr_sector )
214 __field( int, error )
215 __array( char, rwbs, 6 )
216 ),
217
218 TP_fast_assign(
219 __entry->dev = bio->bi_bdev->bd_dev;
220 __entry->sector = bio->bi_sector;
221 __entry->nr_sector = bio->bi_size >> 9;
222 blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
223 ),
224
225 TP_printk("%d,%d %s %llu + %u [%d]",
226 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
227 (unsigned long long)__entry->sector,
228 __entry->nr_sector, __entry->error)
55782138
LZ
229);
230
231TRACE_EVENT(block_bio_backmerge,
232
233 TP_PROTO(struct request_queue *q, struct bio *bio),
234
235 TP_ARGS(q, bio),
236
237 TP_STRUCT__entry(
238 __field( dev_t, dev )
239 __field( sector_t, sector )
240 __field( unsigned int, nr_sector )
241 __array( char, rwbs, 6 )
242 __array( char, comm, TASK_COMM_LEN )
243 ),
244
245 TP_fast_assign(
246 __entry->dev = bio->bi_bdev->bd_dev;
247 __entry->sector = bio->bi_sector;
248 __entry->nr_sector = bio->bi_size >> 9;
249 blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
250 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
251 ),
252
253 TP_printk("%d,%d %s %llu + %u [%s]",
254 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
255 (unsigned long long)__entry->sector,
256 __entry->nr_sector, __entry->comm)
55782138
LZ
257);
258
259TRACE_EVENT(block_bio_frontmerge,
260
261 TP_PROTO(struct request_queue *q, struct bio *bio),
262
263 TP_ARGS(q, bio),
264
265 TP_STRUCT__entry(
266 __field( dev_t, dev )
267 __field( sector_t, sector )
268 __field( unsigned, nr_sector )
269 __array( char, rwbs, 6 )
270 __array( char, comm, TASK_COMM_LEN )
271 ),
272
273 TP_fast_assign(
274 __entry->dev = bio->bi_bdev->bd_dev;
275 __entry->sector = bio->bi_sector;
276 __entry->nr_sector = bio->bi_size >> 9;
277 blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
278 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
279 ),
280
281 TP_printk("%d,%d %s %llu + %u [%s]",
282 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
283 (unsigned long long)__entry->sector,
284 __entry->nr_sector, __entry->comm)
55782138
LZ
285);
286
287TRACE_EVENT(block_bio_queue,
288
289 TP_PROTO(struct request_queue *q, struct bio *bio),
290
291 TP_ARGS(q, bio),
292
293 TP_STRUCT__entry(
294 __field( dev_t, dev )
295 __field( sector_t, sector )
296 __field( unsigned int, nr_sector )
297 __array( char, rwbs, 6 )
298 __array( char, comm, TASK_COMM_LEN )
299 ),
300
301 TP_fast_assign(
302 __entry->dev = bio->bi_bdev->bd_dev;
303 __entry->sector = bio->bi_sector;
304 __entry->nr_sector = bio->bi_size >> 9;
305 blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
306 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
307 ),
308
309 TP_printk("%d,%d %s %llu + %u [%s]",
310 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
311 (unsigned long long)__entry->sector,
312 __entry->nr_sector, __entry->comm)
55782138
LZ
313);
314
315TRACE_EVENT(block_getrq,
316
317 TP_PROTO(struct request_queue *q, struct bio *bio, int rw),
318
319 TP_ARGS(q, bio, rw),
320
321 TP_STRUCT__entry(
322 __field( dev_t, dev )
323 __field( sector_t, sector )
324 __field( unsigned int, nr_sector )
325 __array( char, rwbs, 6 )
326 __array( char, comm, TASK_COMM_LEN )
327 ),
328
329 TP_fast_assign(
330 __entry->dev = bio ? bio->bi_bdev->bd_dev : 0;
331 __entry->sector = bio ? bio->bi_sector : 0;
332 __entry->nr_sector = bio ? bio->bi_size >> 9 : 0;
333 blk_fill_rwbs(__entry->rwbs,
334 bio ? bio->bi_rw : 0, __entry->nr_sector);
335 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
336 ),
337
338 TP_printk("%d,%d %s %llu + %u [%s]",
339 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
340 (unsigned long long)__entry->sector,
341 __entry->nr_sector, __entry->comm)
55782138
LZ
342);
343
344TRACE_EVENT(block_sleeprq,
345
346 TP_PROTO(struct request_queue *q, struct bio *bio, int rw),
347
348 TP_ARGS(q, bio, rw),
349
350 TP_STRUCT__entry(
351 __field( dev_t, dev )
352 __field( sector_t, sector )
353 __field( unsigned int, nr_sector )
354 __array( char, rwbs, 6 )
355 __array( char, comm, TASK_COMM_LEN )
356 ),
357
358 TP_fast_assign(
359 __entry->dev = bio ? bio->bi_bdev->bd_dev : 0;
360 __entry->sector = bio ? bio->bi_sector : 0;
361 __entry->nr_sector = bio ? bio->bi_size >> 9 : 0;
362 blk_fill_rwbs(__entry->rwbs,
363 bio ? bio->bi_rw : 0, __entry->nr_sector);
364 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
365 ),
366
367 TP_printk("%d,%d %s %llu + %u [%s]",
368 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
369 (unsigned long long)__entry->sector,
370 __entry->nr_sector, __entry->comm)
55782138
LZ
371);
372
373TRACE_EVENT(block_plug,
374
375 TP_PROTO(struct request_queue *q),
376
377 TP_ARGS(q),
378
379 TP_STRUCT__entry(
380 __array( char, comm, TASK_COMM_LEN )
381 ),
382
383 TP_fast_assign(
384 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
385 ),
386
387 TP_printk("[%s]", __entry->comm)
388);
389
390TRACE_EVENT(block_unplug_timer,
391
392 TP_PROTO(struct request_queue *q),
393
394 TP_ARGS(q),
395
396 TP_STRUCT__entry(
397 __field( int, nr_rq )
398 __array( char, comm, TASK_COMM_LEN )
399 ),
400
401 TP_fast_assign(
402 __entry->nr_rq = q->rq.count[READ] + q->rq.count[WRITE];
403 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
404 ),
405
406 TP_printk("[%s] %d", __entry->comm, __entry->nr_rq)
407);
408
409TRACE_EVENT(block_unplug_io,
410
411 TP_PROTO(struct request_queue *q),
412
413 TP_ARGS(q),
414
415 TP_STRUCT__entry(
416 __field( int, nr_rq )
417 __array( char, comm, TASK_COMM_LEN )
418 ),
419
420 TP_fast_assign(
421 __entry->nr_rq = q->rq.count[READ] + q->rq.count[WRITE];
422 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
423 ),
424
425 TP_printk("[%s] %d", __entry->comm, __entry->nr_rq)
426);
427
428TRACE_EVENT(block_split,
429
430 TP_PROTO(struct request_queue *q, struct bio *bio,
431 unsigned int new_sector),
432
433 TP_ARGS(q, bio, new_sector),
434
435 TP_STRUCT__entry(
436 __field( dev_t, dev )
437 __field( sector_t, sector )
438 __field( sector_t, new_sector )
439 __array( char, rwbs, 6 )
440 __array( char, comm, TASK_COMM_LEN )
441 ),
442
443 TP_fast_assign(
444 __entry->dev = bio->bi_bdev->bd_dev;
445 __entry->sector = bio->bi_sector;
446 __entry->new_sector = new_sector;
447 blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
448 memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
449 ),
450
451 TP_printk("%d,%d %s %llu / %llu [%s]",
452 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
453 (unsigned long long)__entry->sector,
454 (unsigned long long)__entry->new_sector,
455 __entry->comm)
55782138
LZ
456);
457
458TRACE_EVENT(block_remap,
459
460 TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev,
461 sector_t from),
462
463 TP_ARGS(q, bio, dev, from),
464
465 TP_STRUCT__entry(
466 __field( dev_t, dev )
467 __field( sector_t, sector )
468 __field( unsigned int, nr_sector )
469 __field( dev_t, old_dev )
470 __field( sector_t, old_sector )
471 __array( char, rwbs, 6 )
472 ),
473
474 TP_fast_assign(
475 __entry->dev = bio->bi_bdev->bd_dev;
476 __entry->sector = bio->bi_sector;
477 __entry->nr_sector = bio->bi_size >> 9;
478 __entry->old_dev = dev;
479 __entry->old_sector = from;
480 blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size);
481 ),
482
483 TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
484 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
6556d1df
SR
485 (unsigned long long)__entry->sector,
486 __entry->nr_sector,
55782138 487 MAJOR(__entry->old_dev), MINOR(__entry->old_dev),
6556d1df 488 (unsigned long long)__entry->old_sector)
55782138
LZ
489);
490
b0da3f0d
JN
491TRACE_EVENT(block_rq_remap,
492
493 TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev,
494 sector_t from),
495
496 TP_ARGS(q, rq, dev, from),
497
498 TP_STRUCT__entry(
499 __field( dev_t, dev )
500 __field( sector_t, sector )
501 __field( unsigned int, nr_sector )
502 __field( dev_t, old_dev )
503 __field( sector_t, old_sector )
504 __array( char, rwbs, 6 )
505 ),
506
507 TP_fast_assign(
508 __entry->dev = disk_devt(rq->rq_disk);
509 __entry->sector = blk_rq_pos(rq);
510 __entry->nr_sector = blk_rq_sectors(rq);
511 __entry->old_dev = dev;
512 __entry->old_sector = from;
513 blk_fill_rwbs_rq(__entry->rwbs, rq);
514 ),
515
516 TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
517 MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs,
518 (unsigned long long)__entry->sector,
519 __entry->nr_sector,
520 MAJOR(__entry->old_dev), MINOR(__entry->old_dev),
521 (unsigned long long)__entry->old_sector)
522);
523
55782138
LZ
524#endif /* _TRACE_BLOCK_H */
525
526/* This part must be outside protection */
527#include <trace/define_trace.h>
528
This page took 0.080835 seconds and 5 git commands to generate.