On Thu, Sep 25, 2025 at 05:02:25PM +0200, Johannes Thumshirn wrote: > Add definitions for the extended version of the blktrace protocol using a > wider action type to be able to record new actions in the kernel. > > Signed-off-by: Johannes Thumshirn <[email protected]> > --- > include/uapi/linux/blktrace_api.h | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/include/uapi/linux/blktrace_api.h > b/include/uapi/linux/blktrace_api.h > index a3b1f35ac026..d58ef484de49 100644 > --- a/include/uapi/linux/blktrace_api.h > +++ b/include/uapi/linux/blktrace_api.h > @@ -94,6 +94,7 @@ enum blktrace_notify { > > #define BLK_IO_TRACE_MAGIC 0x65617400 > #define BLK_IO_TRACE_VERSION 0x07 > +#define BLK_IO_TRACE2_VERSION 0x08 > > /* > * The trace itself > @@ -113,6 +114,21 @@ struct blk_io_trace { > /* cgroup id will be stored here if exists */ > }; > > +struct blk_io_trace2 { > + __u32 magic; /* MAGIC << 8 | BLK_IO_TRACE2_VERSION */ > + __u32 sequence; /* event number */ > + __u64 time; /* in nanoseconds */ > + __u64 sector; /* disk offset */ > + __u32 bytes; /* transfer length */ > + __u32 pid; /* who did it */ > + __u64 action; /* what happened */ > + __u32 device; /* device number */ > + __u32 cpu; /* on what cpu did it happen */ > + __u16 error; /* completion error */ > + __u16 pdu_len; /* length of data after this trace */ > + __u8 pad[8];
This will cause mismatching sizes between x86_32 and other architectures because the size is not 8-byte aligned. You'll need to add or remove 4 bytes of padding to ensure that. I really wish we could have good helpers to check for that.
