X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fblock.h;h=2af4fb326ba911e2d686a932069d0cd54e68fdc8;hb=1c53e689434a6bdd7dc3f54c07bfb72750d1d24c;hp=f3b8bffd6f0853bc46044059de63183ed756d4c7;hpb=217f66c6128e0804dcafc87870977a9b13c27419;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/block.h b/instrumentation/events/lttng-module/block.h index f3b8bffd..2af4fb32 100644 --- a/instrumentation/events/lttng-module/block.h +++ b/instrumentation/events/lttng-module/block.h @@ -221,6 +221,57 @@ DEFINE_EVENT(block_rq_with_error, block_rq_requeue, TP_ARGS(q, rq) ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) + +/** + * block_rq_complete - block IO operation completed by device driver + * @q: queue containing the block operation request + * @rq: block operations request + * @nr_bytes: number of completed bytes + * + * The block_rq_complete tracepoint event indicates that some portion + * of operation request has been completed by the device driver. If + * the @rq->bio is %NULL, then there is absolutely no additional work to + * do for the request. If @rq->bio is non-NULL then there is + * additional work required to complete the request. + */ +TRACE_EVENT(block_rq_complete, + + TP_PROTO(struct request_queue *q, struct request *rq, + unsigned int nr_bytes), + + TP_ARGS(q, rq, nr_bytes), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( int, errors ) + __field( unsigned int, rwbs ) + __dynamic_array_hex( unsigned char, cmd, + (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd_len : 0) + ), + + TP_fast_assign( + tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0) + tp_assign(sector, blk_rq_pos(rq)) + tp_assign(nr_sector, nr_bytes >> 9) + tp_assign(errors, rq->errors) + blk_fill_rwbs(rwbs, rq->cmd_flags, nr_bytes) + tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd : NULL) + ), + + TP_printk("%d,%d %s (%s) %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->rwbs, __get_str(cmd), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->errors) +) + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */ + /** * block_rq_complete - block IO operation completed by device driver * @q: queue containing the block operation request @@ -239,6 +290,8 @@ DEFINE_EVENT(block_rq_with_error, block_rq_complete, TP_ARGS(q, rq) ) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */ + DECLARE_EVENT_CLASS(block_rq, TP_PROTO(struct request_queue *q, struct request *rq), @@ -339,12 +392,21 @@ TRACE_EVENT(block_bio_bounce, ), TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) + tp_assign(dev, bio->bi_bdev ? + bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio->bi_iter.bi_sector) + tp_assign(nr_sector, bio_sectors(bio)) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ tp_assign(dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0) tp_assign(sector, bio->bi_sector) tp_assign(nr_sector, bio->bi_size >> 9) blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ ), TP_printk("%d,%d %s %llu + %u [%s]", @@ -384,6 +446,13 @@ TRACE_EVENT(block_bio_complete, ), TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_iter.bi_sector) + tp_assign(nr_sector, bio_sectors(bio)) + tp_assign(error, error) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ tp_assign(dev, bio->bi_bdev->bd_dev) tp_assign(sector, bio->bi_sector) tp_assign(nr_sector, bio->bi_size >> 9) @@ -393,6 +462,7 @@ TRACE_EVENT(block_bio_complete, tp_assign(error, 0) #endif blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ ), TP_printk("%d,%d %s %llu + %u [%d]", @@ -418,11 +488,19 @@ DECLARE_EVENT_CLASS(block_bio_merge, ), TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_iter.bi_sector) + tp_assign(nr_sector, bio_sectors(bio)) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ tp_assign(dev, bio->bi_bdev->bd_dev) tp_assign(sector, bio->bi_sector) tp_assign(nr_sector, bio->bi_size >> 9) blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ ), TP_printk("%d,%d %s %llu + %u [%s]", @@ -484,11 +562,19 @@ TRACE_EVENT(block_bio_queue, ), TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_iter.bi_sector) + tp_assign(nr_sector, bio_sectors(bio)) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ tp_assign(dev, bio->bi_bdev->bd_dev) tp_assign(sector, bio->bi_sector) tp_assign(nr_sector, bio->bi_size >> 9) blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ ), TP_printk("%d,%d %s %llu + %u [%s]", @@ -586,12 +672,21 @@ DECLARE_EVENT_CLASS(block_get_rq, ), TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) + tp_assign(dev, bio ? bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio ? bio->bi_iter.bi_sector : 0) + tp_assign(nr_sector, bio ? bio_sectors(bio) : 0) + blk_fill_rwbs(rwbs, bio ? bio->bi_rw : 0, + bio ? bio_sectors(bio) : 0) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ tp_assign(dev, bio ? bio->bi_bdev->bd_dev : 0) tp_assign(sector, bio ? bio->bi_sector : 0) tp_assign(nr_sector, bio ? bio->bi_size >> 9 : 0) blk_fill_rwbs(rwbs, bio ? bio->bi_rw : 0, bio ? bio->bi_size >> 9 : 0) tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ ), TP_printk("%d,%d %s %llu + %u [%s]", @@ -758,11 +853,19 @@ TRACE_EVENT(block_split, ), TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_iter.bi_sector) + tp_assign(new_sector, new_sector) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ tp_assign(dev, bio->bi_bdev->bd_dev) tp_assign(sector, bio->bi_sector) tp_assign(new_sector, new_sector) blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) tp_memcpy(comm, current->comm, TASK_COMM_LEN) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ ), TP_printk("%d,%d %s %llu / %llu [%s]", @@ -804,12 +907,21 @@ TRACE_EVENT(block_remap, ), TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_iter.bi_sector) + tp_assign(nr_sector, bio_sectors(bio)) + tp_assign(old_dev, dev) + tp_assign(old_sector, from) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_iter.bi_size) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ tp_assign(dev, bio->bi_bdev->bd_dev) tp_assign(sector, bio->bi_sector) tp_assign(nr_sector, bio->bi_size >> 9) tp_assign(old_dev, dev) tp_assign(old_sector, from) blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) */ ), TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",