X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Finstrumentation%2Fevents%2Fblock.h;h=5d34c61f39a8c54bb928a562373634f2e79e0cfe;hb=b5211887dc5baf316322b67c3c433f2d77cd352a;hp=6782c36f8d2925619426dbe3d6048b39aa5ad8ad;hpb=ea49f07b5976c18457df38eaa842c919bcee9889;p=lttng-modules.git diff --git a/include/instrumentation/events/block.h b/include/instrumentation/events/block.h index 6782c36f..5d34c61f 100644 --- a/include/instrumentation/events/block.h +++ b/include/instrumentation/events/block.h @@ -11,9 +11,9 @@ #include #include -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) +#if LTTNG_KERNEL_RANGE(4,11,0, 5,18,0) #include -#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */ +#endif /* LTTNG_KERNEL_RANGE(4,11,0, 5,18,0) */ #ifndef _TRACE_BLOCK_DEF_ #define _TRACE_BLOCK_DEF_ @@ -66,10 +66,11 @@ LTTNG_TRACEPOINT_ENUM(block_rq_type, #define lttng_bio_op(bio) bio_op(bio) #define lttng_bio_rw(bio) ((bio)->bi_opf) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,18,0)) #ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM #define blk_rwbs_ctf_integer(type, rwbs, op, rw, bytes) \ ctf_enum(block_rq_type, type, rwbs, \ - (((op) == REQ_OP_WRITE || (op) == REQ_OP_WRITE_SAME) ? RWBS_FLAG_WRITE : \ + ( (op) == REQ_OP_WRITE ? RWBS_FLAG_WRITE : \ ( (op) == REQ_OP_DISCARD ? RWBS_FLAG_DISCARD : \ ( (op) == REQ_OP_SECURE_ERASE ? (RWBS_FLAG_DISCARD | RWBS_FLAG_SECURE) : \ ( (op) == REQ_OP_FLUSH ? RWBS_FLAG_FLUSH : \ @@ -83,7 +84,7 @@ LTTNG_TRACEPOINT_ENUM(block_rq_type, #else #define blk_rwbs_ctf_integer(type, rwbs, op, rw, bytes) \ ctf_integer(type, rwbs, \ - (((op) == REQ_OP_WRITE || (op) == REQ_OP_WRITE_SAME) ? RWBS_FLAG_WRITE : \ + ( (op) == REQ_OP_WRITE ? RWBS_FLAG_WRITE : \ ( (op) == REQ_OP_DISCARD ? RWBS_FLAG_DISCARD : \ ( (op) == REQ_OP_SECURE_ERASE ? (RWBS_FLAG_DISCARD | RWBS_FLAG_SECURE) : \ ( (op) == REQ_OP_FLUSH ? RWBS_FLAG_FLUSH : \ @@ -96,38 +97,38 @@ LTTNG_TRACEPOINT_ENUM(block_rq_type, | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0)) #endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */ -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,1,0)) - -#define lttng_req_op(rq) -#define lttng_req_rw(rq) ((rq)->cmd_flags) -#define lttng_bio_op(bio) -#define lttng_bio_rw(bio) ((bio)->bi_rw) +#else /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,18,0)) */ #ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM #define blk_rwbs_ctf_integer(type, rwbs, op, rw, bytes) \ - ctf_enum(block_rq_type, type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ - ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ - ( (bytes) ? RWBS_FLAG_READ : \ - ( 0 )))) \ + ctf_enum(block_rq_type, type, rwbs, \ + (((op) == REQ_OP_WRITE || (op) == REQ_OP_WRITE_SAME) ? RWBS_FLAG_WRITE : \ + ( (op) == REQ_OP_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (op) == REQ_OP_SECURE_ERASE ? (RWBS_FLAG_DISCARD | RWBS_FLAG_SECURE) : \ + ( (op) == REQ_OP_FLUSH ? RWBS_FLAG_FLUSH : \ + ( (op) == REQ_OP_READ ? RWBS_FLAG_READ : \ + ( 0 )))))) \ | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ - | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0) \ - | ((rw) & REQ_FLUSH ? RWBS_FLAG_FLUSH : 0) \ + | ((rw) & REQ_PREFLUSH ? RWBS_FLAG_PREFLUSH : 0) \ | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0)) #else #define blk_rwbs_ctf_integer(type, rwbs, op, rw, bytes) \ - ctf_integer(type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ - ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ - ( (bytes) ? RWBS_FLAG_READ : \ - ( 0 )))) \ + ctf_integer(type, rwbs, \ + (((op) == REQ_OP_WRITE || (op) == REQ_OP_WRITE_SAME) ? RWBS_FLAG_WRITE : \ + ( (op) == REQ_OP_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (op) == REQ_OP_SECURE_ERASE ? (RWBS_FLAG_DISCARD | RWBS_FLAG_SECURE) : \ + ( (op) == REQ_OP_FLUSH ? RWBS_FLAG_FLUSH : \ + ( (op) == REQ_OP_READ ? RWBS_FLAG_READ : \ + ( 0 )))))) \ | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ - | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0) \ - | ((rw) & REQ_FLUSH ? RWBS_FLAG_FLUSH : 0) \ + | ((rw) & REQ_PREFLUSH ? RWBS_FLAG_PREFLUSH : 0) \ | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0)) #endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */ +#endif /* (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,18,0)) */ #else @@ -138,14 +139,16 @@ LTTNG_TRACEPOINT_ENUM(block_rq_type, #ifdef CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM #define blk_rwbs_ctf_integer(type, rwbs, op, rw, bytes) \ - ctf_enum(block_rq_type, type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ctf_enum(block_rq_type, type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ ( (bytes) ? RWBS_FLAG_READ : \ ( 0 )))) \ | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ - | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0)) + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0) \ + | ((rw) & REQ_FLUSH ? RWBS_FLAG_FLUSH : 0) \ + | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0)) #else #define blk_rwbs_ctf_integer(type, rwbs, op, rw, bytes) \ ctf_integer(type, rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ @@ -155,12 +158,12 @@ LTTNG_TRACEPOINT_ENUM(block_rq_type, | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ - | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0)) + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0) \ + | ((rw) & REQ_FLUSH ? RWBS_FLAG_FLUSH : 0) \ + | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0)) #endif /* CONFIG_LTTNG_EXPERIMENTAL_BITWISE_ENUM */ - #endif -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) LTTNG_TRACEPOINT_EVENT_CLASS(block_buffer, TP_PROTO(struct buffer_head *bh), @@ -199,7 +202,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_buffer, block_dirty_buffer, TP_ARGS(bh) ) -#endif #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,12,0)) /* block_rq_with_error event class removed in kernel 4.12 */ @@ -310,7 +312,33 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_abort, ) #endif -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0)) +/** + * block_rq_requeue - place block IO request back on a queue + * @rq: block IO operation request + * + * The block operation request @rq is being placed back into queue + * @q. For some reason the request was not completed and needs to be + * put back in the queue. + */ +LTTNG_TRACEPOINT_EVENT(block_rq_requeue, + + TP_PROTO(struct request *rq), + + TP_ARGS(rq), + + TP_FIELDS( + ctf_integer(dev_t, dev, + rq->q->disk ? disk_devt(rq->q->disk) : 0) + ctf_integer(sector_t, sector, blk_rq_trace_sector(rq)) + ctf_integer(unsigned int, nr_sector, blk_rq_trace_nr_sectors(rq)) + blk_rwbs_ctf_integer(unsigned int, rwbs, + lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq)) + ) +) +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,372,0,0, 4,19,0,0,0,0)) /** * block_rq_requeue - place block IO request back on a queue * @rq: block IO operation request @@ -380,7 +408,24 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_requeue, * do for the request. If @rq->bio is non-NULL then there is * additional work required to complete the request. */ -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,16,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0)) +LTTNG_TRACEPOINT_EVENT(block_rq_complete, + + TP_PROTO(struct request *rq, blk_status_t error, unsigned int nr_bytes), + + TP_ARGS(rq, error, nr_bytes), + + TP_FIELDS( + ctf_integer(dev_t, dev, + rq->q->disk ? disk_devt(rq->q->disk) : 0) + ctf_integer(sector_t, sector, blk_rq_pos(rq)) + ctf_integer(unsigned int, nr_sector, nr_bytes >> 9) + ctf_integer(int, error, blk_status_to_errno(error)) + blk_rwbs_ctf_integer(unsigned int, rwbs, + lttng_req_op(rq), lttng_req_rw(rq), nr_bytes) + ) +) +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,16,0)) LTTNG_TRACEPOINT_EVENT(block_rq_complete, TP_PROTO(struct request *rq, blk_status_t error, unsigned int nr_bytes), @@ -452,14 +497,7 @@ LTTNG_TRACEPOINT_EVENT_CODE(block_rq_complete, TP_code_post() ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,5) \ - || LTTNG_KERNEL_RANGE(3,12,21, 3,13,0) \ - || LTTNG_KERNEL_RANGE(3,10,41, 3,11,0) \ - || LTTNG_KERNEL_RANGE(3,4,91, 3,5,0) \ - || LTTNG_KERNEL_RANGE(3,2,58, 3,3,0) \ - || LTTNG_UBUNTU_KERNEL_RANGE(3,13,11,28, 3,14,0,0) \ - || LTTNG_RHEL_KERNEL_RANGE(3,10,0,229,0,0, 3,11,0,0,0,0)) - +#else LTTNG_TRACEPOINT_EVENT_CODE(block_rq_complete, TP_PROTO(struct request_queue *q, struct request *rq, @@ -496,30 +534,30 @@ LTTNG_TRACEPOINT_EVENT_CODE(block_rq_complete, TP_code_post() ) +#endif -#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */ +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0)) +LTTNG_TRACEPOINT_EVENT_CLASS(block_rq, -/** - * block_rq_complete - block IO operation completed by device driver - * @q: queue containing the block operation request - * @rq: block operations request - * - * 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. - */ -LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq_with_error, block_rq_complete, + TP_PROTO(struct request *rq), - TP_PROTO(struct request_queue *q, struct request *rq), + TP_ARGS(rq), - TP_ARGS(q, rq) + TP_FIELDS( + ctf_integer(dev_t, dev, + rq->q->disk ? disk_devt(rq->q->disk) : 0) + ctf_integer(sector_t, sector, blk_rq_trace_sector(rq)) + ctf_integer(unsigned int, nr_sector, blk_rq_trace_nr_sectors(rq)) + ctf_integer(unsigned int, bytes, blk_rq_bytes(rq)) + ctf_integer(pid_t, tid, current->pid) + blk_rwbs_ctf_integer(unsigned int, rwbs, + lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq)) + ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) + ) ) - -#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,15,0)) */ - -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,372,0,0, 4,19,0,0,0,0)) LTTNG_TRACEPOINT_EVENT_CLASS(block_rq, TP_PROTO(struct request *rq), @@ -654,7 +692,9 @@ LTTNG_TRACEPOINT_EVENT_CLASS_CODE(block_rq, ) #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0)) */ -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,372,0,0, 4,19,0,0,0,0)) /** * block_rq_insert - insert block operation request into queue * @rq: block IO operation request @@ -689,7 +729,9 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_insert, ) #endif -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,372,0,0, 4,19,0,0,0,0)) /** * block_rq_issue - issue pending block IO request operation to device driver * @rq: block IO operation operation request @@ -720,7 +762,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_rq, block_rq_issue, ) #endif -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0)) /** * block_rq_merge - merge request with another one in the elevator * @rq: block IO operation operation request @@ -805,7 +848,7 @@ LTTNG_TRACEPOINT_EVENT(block_bio_complete, bio->bi_iter.bi_size) ) ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) +#else /** * block_bio_complete - completed all work on the block operation * @q: queue holding the block operation @@ -831,31 +874,6 @@ LTTNG_TRACEPOINT_EVENT(block_bio_complete, bio->bi_iter.bi_size) ) ) -#else -/** - * block_bio_complete - completed all work on the block operation - * @q: queue holding the block operation - * @bio: block operation completed - * @error: io error value - * - * This tracepoint indicates there is no further work to do on this - * block IO operation @bio. - */ -LTTNG_TRACEPOINT_EVENT(block_bio_complete, - - TP_PROTO(struct request_queue *q, struct bio *bio, int error), - - TP_ARGS(q, bio, error), - - TP_FIELDS( - ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) - ctf_integer(sector_t, sector, bio->bi_sector) - ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9) - ctf_integer(int, error, error) - blk_rwbs_ctf_integer(unsigned int, rwbs, - lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size) - ) -) #endif #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) @@ -894,7 +912,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge, ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) +#else LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge, TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), @@ -912,23 +930,6 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge, ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) -LTTNG_TRACEPOINT_EVENT_CLASS(block_bio_merge, - - TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), - - TP_ARGS(q, rq, bio), - - TP_FIELDS( - ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) - ctf_integer(sector_t, sector, bio->bi_sector) - ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9) - blk_rwbs_ctf_integer(unsigned int, rwbs, - lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size) - ctf_integer(pid_t, tid, current->pid) - ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) - ) -) #endif @@ -979,7 +980,7 @@ LTTNG_TRACEPOINT_EVENT(block_bio_bounce, ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) +#else LTTNG_TRACEPOINT_EVENT(block_bio_bounce, TP_PROTO(struct request_queue *q, struct bio *bio), @@ -997,24 +998,6 @@ LTTNG_TRACEPOINT_EVENT(block_bio_bounce, ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) ) -#else -LTTNG_TRACEPOINT_EVENT(block_bio_bounce, - - TP_PROTO(struct request_queue *q, struct bio *bio), - - TP_ARGS(q, bio), - - TP_FIELDS( - ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0) - ctf_integer(sector_t, sector, bio->bi_sector) - ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9) - blk_rwbs_ctf_integer(unsigned int, rwbs, - lttng_bio_op(bio), lttng_bio_rw(bio), - bio->bi_size) - ctf_integer(pid_t, tid, current->pid) - ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) - ) -) #endif @@ -1057,7 +1040,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_queue, TP_ARGS(bio) ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) +#else /** * block_bio_backmerge - merging block operation to the end of an existing operation * @q: queue holding operation @@ -1109,83 +1092,15 @@ LTTNG_TRACEPOINT_EVENT(block_bio_queue, #else ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) #endif -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) ctf_integer(sector_t, sector, bio->bi_iter.bi_sector) ctf_integer(unsigned int, nr_sector, bio_sectors(bio)) blk_rwbs_ctf_integer(unsigned int, rwbs, lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_iter.bi_size) -#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */ - ctf_integer(sector_t, sector, bio->bi_sector) - ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9) - blk_rwbs_ctf_integer(unsigned int, rwbs, - lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size) -#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */ ctf_integer(pid_t, tid, current->pid) ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) ) -#else /* if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) */ -LTTNG_TRACEPOINT_EVENT_CLASS(block_bio, - - TP_PROTO(struct request_queue *q, struct bio *bio), - - TP_ARGS(q, bio), - - TP_FIELDS( - ctf_integer(dev_t, dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0) - ctf_integer(sector_t, sector, bio->bi_sector) - ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9) - blk_rwbs_ctf_integer(unsigned int, rwbs, - lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size) - ctf_integer(pid_t, tid, current->pid) - ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) - ) -) - -/** - * block_bio_backmerge - merging block operation to the end of an existing operation - * @q: queue holding operation - * @bio: new block operation to merge - * - * Merging block request @bio to the end of an existing block request - * in queue @q. - */ -LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_backmerge, - - TP_PROTO(struct request_queue *q, struct bio *bio), - - TP_ARGS(q, bio) -) - -/** - * block_bio_frontmerge - merging block operation to the beginning of an existing operation - * @q: queue holding operation - * @bio: new block operation to merge - * - * Merging block IO operation @bio to the beginning of an existing block - * operation in queue @q. - */ -LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_frontmerge, - - TP_PROTO(struct request_queue *q, struct bio *bio), - - TP_ARGS(q, bio) -) - -/** - * block_bio_queue - putting new block IO operation in queue - * @q: queue holding operation - * @bio: new block operation - * - * About to place the block IO operation @bio into queue @q. - */ -LTTNG_TRACEPOINT_EVENT_INSTANCE(block_bio, block_bio_queue, - - TP_PROTO(struct request_queue *q, struct bio *bio), - - TP_ARGS(q, bio) -) #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,9,0)) */ #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) @@ -1214,7 +1129,6 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_get_rq, #else ctf_integer(dev_t, dev, bio ? bio->bi_bdev->bd_dev : 0) #endif -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) ctf_integer(sector_t, sector, bio ? bio->bi_iter.bi_sector : 0) ctf_integer(unsigned int, nr_sector, bio ? bio_sectors(bio) : 0) @@ -1222,15 +1136,6 @@ LTTNG_TRACEPOINT_EVENT_CLASS(block_get_rq, bio ? lttng_bio_op(bio) : 0, bio ? lttng_bio_rw(bio) : 0, bio ? bio->bi_iter.bi_size : 0) -#else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */ - ctf_integer(sector_t, sector, bio ? bio->bi_sector : 0) - ctf_integer(unsigned int, nr_sector, - bio ? bio->bi_size >> 9 : 0) - blk_rwbs_ctf_integer(unsigned int, rwbs, - bio ? lttng_bio_op(bio) : 0, - bio ? lttng_bio_rw(bio) : 0, - bio ? bio->bi_size : 0) -#endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) */ ctf_integer(pid_t, tid, current->pid) ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) @@ -1379,7 +1284,7 @@ LTTNG_TRACEPOINT_EVENT(block_split, ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) +#else LTTNG_TRACEPOINT_EVENT(block_split, TP_PROTO(struct request_queue *q, struct bio *bio, @@ -1398,24 +1303,6 @@ LTTNG_TRACEPOINT_EVENT(block_split, ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) ) ) -#else -LTTNG_TRACEPOINT_EVENT(block_split, - - TP_PROTO(struct request_queue *q, struct bio *bio, - unsigned int new_sector), - - TP_ARGS(q, bio, new_sector), - - TP_FIELDS( - ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) - ctf_integer(sector_t, sector, bio->bi_sector) - blk_rwbs_ctf_integer(unsigned int, rwbs, - lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size) - ctf_integer(sector_t, new_sector, new_sector) - ctf_integer(pid_t, tid, current->pid) - ctf_array_text(char, comm, current->comm, TASK_COMM_LEN) - ) -) #endif #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) @@ -1474,7 +1361,7 @@ LTTNG_TRACEPOINT_EVENT(block_bio_remap, ctf_integer(sector_t, old_sector, from) ) ) -#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,14,0)) +#else LTTNG_TRACEPOINT_EVENT(block_bio_remap, TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev, @@ -1493,27 +1380,38 @@ LTTNG_TRACEPOINT_EVENT(block_bio_remap, ctf_integer(sector_t, old_sector, from) ) ) -#else -LTTNG_TRACEPOINT_EVENT(block_bio_remap, +#endif - TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev, - sector_t from), +#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0)) +/** + * block_rq_remap - map request for a block operation request + * @rq: block IO operation request + * @dev: device for the operation + * @from: original sector for the operation + * + * The block operation request @rq in @q has been remapped. The block + * operation request @rq holds the current information and @from hold + * the original sector. + */ +LTTNG_TRACEPOINT_EVENT(block_rq_remap, - TP_ARGS(q, bio, dev, from), + TP_PROTO(struct request *rq, dev_t dev, sector_t from), + + TP_ARGS(rq, dev, from), TP_FIELDS( - ctf_integer(dev_t, dev, bio->bi_bdev->bd_dev) - ctf_integer(sector_t, sector, bio->bi_sector) - ctf_integer(unsigned int, nr_sector, bio->bi_size >> 9) - blk_rwbs_ctf_integer(unsigned int, rwbs, - lttng_bio_op(bio), lttng_bio_rw(bio), bio->bi_size) + ctf_integer(dev_t, dev, disk_devt(rq->q->disk)) + ctf_integer(sector_t, sector, blk_rq_pos(rq)) + ctf_integer(unsigned int, nr_sector, blk_rq_sectors(rq)) ctf_integer(dev_t, old_dev, dev) ctf_integer(sector_t, old_sector, from) + blk_rwbs_ctf_integer(unsigned int, rwbs, + lttng_req_op(rq), lttng_req_rw(rq), blk_rq_bytes(rq)) ) ) -#endif - -#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0)) +#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,11,0) \ + || LTTNG_KERNEL_RANGE(5,10,137, 5,11,0) \ + || LTTNG_RHEL_KERNEL_RANGE(4,18,0,372,0,0, 4,19,0,0,0,0)) /** * block_rq_remap - map request for a block operation request * @rq: block IO operation request