blktrace: add definitions for blk_user_trace_setup2

Add definitions for a version 2 of the blk_user_trace_setup ioctl. This
new ioctl will enable a different struct layout of the binary data passed
to user-space when using a new version of the blktrace utility requesting
the new struct layout.

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Johannes Thumshirn
2025-10-22 13:41:06 +02:00
committed by Jens Axboe
parent 42da88a724
commit 0d8627cc93
3 changed files with 20 additions and 0 deletions

View File

@@ -129,6 +129,7 @@ enum {
};
#define BLKTRACE_BDEV_SIZE 32
#define BLKTRACE_BDEV_SIZE2 64
/*
* User setup structure passed with BLKTRACESETUP
@@ -143,4 +144,19 @@ struct blk_user_trace_setup {
__u32 pid;
};
/*
* User setup structure passed with BLKTRACESETUP2
*/
struct blk_user_trace_setup2 {
char name[BLKTRACE_BDEV_SIZE2]; /* output */
__u64 act_mask; /* input */
__u32 buf_size; /* input */
__u32 buf_nr; /* input */
__u64 start_lba;
__u64 end_lba;
__u32 pid;
__u32 flags; /* currently unused */
__u64 reserved[11];
};
#endif /* _UAPIBLKTRACE_H */

View File

@@ -300,6 +300,7 @@ struct file_attr {
#define BLKGETDISKSEQ _IOR(0x12,128,__u64)
/* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */
/* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */
#define BLKTRACESETUP2 _IOWR(0x12, 142, struct blk_user_trace_setup2)
#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
#define FIBMAP _IO(0x00,1) /* bmap access */

View File

@@ -1601,6 +1601,9 @@ static int __init init_blk_tracer(void)
return 1;
}
BUILD_BUG_ON(__alignof__(struct blk_user_trace_setup2) %
__alignof__(long));
return 0;
}