Re: [RESEND PATCH blktrace v3 03/20] blktrace: add definitions for BLKTRACESETUP2

Damien Le Moal <[email protected]> Mon, 24 Nov 2025 17:57:42 +0900
Newsgroups org.kernel.vger.linux-btrace,org.kernel.vger.linux-block
Organization Western Digital Research
Message-ID <[email protected]>
On 2025/11/24 16:37, Johannes Thumshirn wrote:
> Add definitions for a new BLKTRACESETUP2 ioctl(2).
> 
> This new ioctl(2) will request a new, updated structure layout from the
> kernel which enhances the storage size of the 'action' field in order to
> store additional tracepoints.
> 
> Signed-off-by: Johannes Thumshirn <[email protected]>
> ---
>  blktrace_api.h | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/blktrace_api.h b/blktrace_api.h
> index 172b4c2..ecffe6e 100644
> --- a/blktrace_api.h
> +++ b/blktrace_api.h
> @@ -139,9 +139,25 @@ struct blk_user_trace_setup {
>  	__u32 pid;
>  };
>  
> +/*
> + * User setup structure passed with BLKTRACESETUP2
> + */
> +struct blk_user_trace_setup2 {
> +	char name[64];			/* 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];
> +};

Any particular reason to go for 192B ? Why not 128B with a __u64 reserved[3] at
the end ? Not enough to future proof it ?

> +
>  #define BLKTRACESETUP _IOWR(0x12,115,struct blk_user_trace_setup)
>  #define BLKTRACESTART _IO(0x12,116)
>  #define BLKTRACESTOP _IO(0x12,117)
>  #define BLKTRACETEARDOWN _IO(0x12,118)
> +#define BLKTRACESETUP2 _IOWR(0x12, 142, struct blk_user_trace_setup2)
>  
>  #endif


-- 
Damien Le Moal
Western Digital Research