diff options
| author | Christoph Hellwig <hch@lst.de> | 2016-10-28 10:48:16 -0400 |
|---|---|---|
| committer | Jens Axboe <axboe@fb.com> | 2016-10-28 10:48:16 -0400 |
| commit | ef295ecf090d3e86e5b742fc6ab34f1122a43773 (patch) | |
| tree | e52e8be789b5654dfc43f626c50261f80615c03f /include/trace | |
| parent | e806402130c9c494e22c73ae9ead4e79d2a5811c (diff) | |
block: better op and flags encoding
Now that we don't need the common flags to overflow outside the range
of a 32-bit type we can encode them the same way for both the bio and
request fields. This in addition allows us to place the operation
first (and make some room for more ops while we're at it) and to
stop having to shift around the operation values.
In addition this allows passing around only one value in the block layer
instead of two (and eventuall also in the file systems, but we can do
that later) and thus clean up a lot of code.
Last but not least this allows decreasing the size of the cmd_flags
field in struct request to 32-bits. Various functions passing this
value could also be updated, but I'd like to avoid the churn for now.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'include/trace')
| -rw-r--r-- | include/trace/events/bcache.h | 12 | ||||
| -rw-r--r-- | include/trace/events/block.h | 31 |
2 files changed, 15 insertions, 28 deletions
diff --git a/include/trace/events/bcache.h b/include/trace/events/bcache.h index d336b890e31f..df3e9ae5ad8d 100644 --- a/include/trace/events/bcache.h +++ b/include/trace/events/bcache.h | |||
| @@ -27,8 +27,7 @@ DECLARE_EVENT_CLASS(bcache_request, | |||
| 27 | __entry->sector = bio->bi_iter.bi_sector; | 27 | __entry->sector = bio->bi_iter.bi_sector; |
| 28 | __entry->orig_sector = bio->bi_iter.bi_sector - 16; | 28 | __entry->orig_sector = bio->bi_iter.bi_sector - 16; |
| 29 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 29 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
| 30 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 30 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 31 | bio->bi_iter.bi_size); | ||
| 32 | ), | 31 | ), |
| 33 | 32 | ||
| 34 | TP_printk("%d,%d %s %llu + %u (from %d,%d @ %llu)", | 33 | TP_printk("%d,%d %s %llu + %u (from %d,%d @ %llu)", |
| @@ -102,8 +101,7 @@ DECLARE_EVENT_CLASS(bcache_bio, | |||
| 102 | __entry->dev = bio->bi_bdev->bd_dev; | 101 | __entry->dev = bio->bi_bdev->bd_dev; |
| 103 | __entry->sector = bio->bi_iter.bi_sector; | 102 | __entry->sector = bio->bi_iter.bi_sector; |
| 104 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 103 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
| 105 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 104 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 106 | bio->bi_iter.bi_size); | ||
| 107 | ), | 105 | ), |
| 108 | 106 | ||
| 109 | TP_printk("%d,%d %s %llu + %u", | 107 | TP_printk("%d,%d %s %llu + %u", |
| @@ -138,8 +136,7 @@ TRACE_EVENT(bcache_read, | |||
| 138 | __entry->dev = bio->bi_bdev->bd_dev; | 136 | __entry->dev = bio->bi_bdev->bd_dev; |
| 139 | __entry->sector = bio->bi_iter.bi_sector; | 137 | __entry->sector = bio->bi_iter.bi_sector; |
| 140 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 138 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
| 141 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 139 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 142 | bio->bi_iter.bi_size); | ||
| 143 | __entry->cache_hit = hit; | 140 | __entry->cache_hit = hit; |
| 144 | __entry->bypass = bypass; | 141 | __entry->bypass = bypass; |
| 145 | ), | 142 | ), |
| @@ -170,8 +167,7 @@ TRACE_EVENT(bcache_write, | |||
| 170 | __entry->inode = inode; | 167 | __entry->inode = inode; |
| 171 | __entry->sector = bio->bi_iter.bi_sector; | 168 | __entry->sector = bio->bi_iter.bi_sector; |
| 172 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; | 169 | __entry->nr_sector = bio->bi_iter.bi_size >> 9; |
| 173 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 170 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 174 | bio->bi_iter.bi_size); | ||
| 175 | __entry->writeback = writeback; | 171 | __entry->writeback = writeback; |
| 176 | __entry->bypass = bypass; | 172 | __entry->bypass = bypass; |
| 177 | ), | 173 | ), |
diff --git a/include/trace/events/block.h b/include/trace/events/block.h index 8f3a163b8166..3e02e3a25413 100644 --- a/include/trace/events/block.h +++ b/include/trace/events/block.h | |||
| @@ -84,8 +84,7 @@ DECLARE_EVENT_CLASS(block_rq_with_error, | |||
| 84 | 0 : blk_rq_sectors(rq); | 84 | 0 : blk_rq_sectors(rq); |
| 85 | __entry->errors = rq->errors; | 85 | __entry->errors = rq->errors; |
| 86 | 86 | ||
| 87 | blk_fill_rwbs(__entry->rwbs, req_op(rq), rq->cmd_flags, | 87 | blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); |
| 88 | blk_rq_bytes(rq)); | ||
| 89 | blk_dump_cmd(__get_str(cmd), rq); | 88 | blk_dump_cmd(__get_str(cmd), rq); |
| 90 | ), | 89 | ), |
| 91 | 90 | ||
| @@ -163,7 +162,7 @@ TRACE_EVENT(block_rq_complete, | |||
| 163 | __entry->nr_sector = nr_bytes >> 9; | 162 | __entry->nr_sector = nr_bytes >> 9; |
| 164 | __entry->errors = rq->errors; | 163 | __entry->errors = rq->errors; |
| 165 | 164 | ||
| 166 | blk_fill_rwbs(__entry->rwbs, req_op(rq), rq->cmd_flags, nr_bytes); | 165 | blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, nr_bytes); |
| 167 | blk_dump_cmd(__get_str(cmd), rq); | 166 | blk_dump_cmd(__get_str(cmd), rq); |
| 168 | ), | 167 | ), |
| 169 | 168 | ||
| @@ -199,8 +198,7 @@ DECLARE_EVENT_CLASS(block_rq, | |||
| 199 | __entry->bytes = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? | 198 | __entry->bytes = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? |
| 200 | blk_rq_bytes(rq) : 0; | 199 | blk_rq_bytes(rq) : 0; |
| 201 | 200 | ||
| 202 | blk_fill_rwbs(__entry->rwbs, req_op(rq), rq->cmd_flags, | 201 | blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); |
| 203 | blk_rq_bytes(rq)); | ||
| 204 | blk_dump_cmd(__get_str(cmd), rq); | 202 | blk_dump_cmd(__get_str(cmd), rq); |
| 205 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 203 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
| 206 | ), | 204 | ), |
| @@ -274,8 +272,7 @@ TRACE_EVENT(block_bio_bounce, | |||
| 274 | bio->bi_bdev->bd_dev : 0; | 272 | bio->bi_bdev->bd_dev : 0; |
| 275 | __entry->sector = bio->bi_iter.bi_sector; | 273 | __entry->sector = bio->bi_iter.bi_sector; |
| 276 | __entry->nr_sector = bio_sectors(bio); | 274 | __entry->nr_sector = bio_sectors(bio); |
| 277 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 275 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 278 | bio->bi_iter.bi_size); | ||
| 279 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 276 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
| 280 | ), | 277 | ), |
| 281 | 278 | ||
| @@ -313,8 +310,7 @@ TRACE_EVENT(block_bio_complete, | |||
| 313 | __entry->sector = bio->bi_iter.bi_sector; | 310 | __entry->sector = bio->bi_iter.bi_sector; |
| 314 | __entry->nr_sector = bio_sectors(bio); | 311 | __entry->nr_sector = bio_sectors(bio); |
| 315 | __entry->error = error; | 312 | __entry->error = error; |
| 316 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 313 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 317 | bio->bi_iter.bi_size); | ||
| 318 | ), | 314 | ), |
| 319 | 315 | ||
| 320 | TP_printk("%d,%d %s %llu + %u [%d]", | 316 | TP_printk("%d,%d %s %llu + %u [%d]", |
| @@ -341,8 +337,7 @@ DECLARE_EVENT_CLASS(block_bio_merge, | |||
| 341 | __entry->dev = bio->bi_bdev->bd_dev; | 337 | __entry->dev = bio->bi_bdev->bd_dev; |
| 342 | __entry->sector = bio->bi_iter.bi_sector; | 338 | __entry->sector = bio->bi_iter.bi_sector; |
| 343 | __entry->nr_sector = bio_sectors(bio); | 339 | __entry->nr_sector = bio_sectors(bio); |
| 344 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 340 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 345 | bio->bi_iter.bi_size); | ||
| 346 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 341 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
| 347 | ), | 342 | ), |
| 348 | 343 | ||
| @@ -409,8 +404,7 @@ TRACE_EVENT(block_bio_queue, | |||
| 409 | __entry->dev = bio->bi_bdev->bd_dev; | 404 | __entry->dev = bio->bi_bdev->bd_dev; |
| 410 | __entry->sector = bio->bi_iter.bi_sector; | 405 | __entry->sector = bio->bi_iter.bi_sector; |
| 411 | __entry->nr_sector = bio_sectors(bio); | 406 | __entry->nr_sector = bio_sectors(bio); |
| 412 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 407 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 413 | bio->bi_iter.bi_size); | ||
| 414 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 408 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
| 415 | ), | 409 | ), |
| 416 | 410 | ||
| @@ -438,7 +432,7 @@ DECLARE_EVENT_CLASS(block_get_rq, | |||
| 438 | __entry->dev = bio ? bio->bi_bdev->bd_dev : 0; | 432 | __entry->dev = bio ? bio->bi_bdev->bd_dev : 0; |
| 439 | __entry->sector = bio ? bio->bi_iter.bi_sector : 0; | 433 | __entry->sector = bio ? bio->bi_iter.bi_sector : 0; |
| 440 | __entry->nr_sector = bio ? bio_sectors(bio) : 0; | 434 | __entry->nr_sector = bio ? bio_sectors(bio) : 0; |
| 441 | blk_fill_rwbs(__entry->rwbs, bio ? bio_op(bio) : 0, | 435 | blk_fill_rwbs(__entry->rwbs, |
| 442 | bio ? bio->bi_opf : 0, __entry->nr_sector); | 436 | bio ? bio->bi_opf : 0, __entry->nr_sector); |
| 443 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 437 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
| 444 | ), | 438 | ), |
| @@ -573,8 +567,7 @@ TRACE_EVENT(block_split, | |||
| 573 | __entry->dev = bio->bi_bdev->bd_dev; | 567 | __entry->dev = bio->bi_bdev->bd_dev; |
| 574 | __entry->sector = bio->bi_iter.bi_sector; | 568 | __entry->sector = bio->bi_iter.bi_sector; |
| 575 | __entry->new_sector = new_sector; | 569 | __entry->new_sector = new_sector; |
| 576 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 570 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 577 | bio->bi_iter.bi_size); | ||
| 578 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); | 571 | memcpy(__entry->comm, current->comm, TASK_COMM_LEN); |
| 579 | ), | 572 | ), |
| 580 | 573 | ||
| @@ -617,8 +610,7 @@ TRACE_EVENT(block_bio_remap, | |||
| 617 | __entry->nr_sector = bio_sectors(bio); | 610 | __entry->nr_sector = bio_sectors(bio); |
| 618 | __entry->old_dev = dev; | 611 | __entry->old_dev = dev; |
| 619 | __entry->old_sector = from; | 612 | __entry->old_sector = from; |
| 620 | blk_fill_rwbs(__entry->rwbs, bio_op(bio), bio->bi_opf, | 613 | blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); |
| 621 | bio->bi_iter.bi_size); | ||
| 622 | ), | 614 | ), |
| 623 | 615 | ||
| 624 | TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", | 616 | TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", |
| @@ -664,8 +656,7 @@ TRACE_EVENT(block_rq_remap, | |||
| 664 | __entry->old_dev = dev; | 656 | __entry->old_dev = dev; |
| 665 | __entry->old_sector = from; | 657 | __entry->old_sector = from; |
| 666 | __entry->nr_bios = blk_rq_count_bios(rq); | 658 | __entry->nr_bios = blk_rq_count_bios(rq); |
| 667 | blk_fill_rwbs(__entry->rwbs, req_op(rq), rq->cmd_flags, | 659 | blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); |
| 668 | blk_rq_bytes(rq)); | ||
| 669 | ), | 660 | ), |
| 670 | 661 | ||
| 671 | TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu %u", | 662 | TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu %u", |
