On Mon, 31 Aug 2026 22:06:35 +0530
Praveen Talari <[email protected]> wrote:
> +TRACE_EVENT(gpi_ev_process,
> + TP_PROTO(struct device *dev, u32 chid, u32 ev_type, u8 code,
> + u16 status, u32 length),
> + TP_ARGS(dev, chid, ev_type, code, status, length),
> +
> + TP_STRUCT__entry(__string(name, dev_name(dev))
> + __field(u32, chid)
> + __field(u32, ev_type)
> + __field(u8, code)
> + __field(u16, status)
> + __field(u32, length)
I would swap the above a little to have the u8 code at the end to remove
any holes. It may have a hole at the end of the event, but you don't want
holes in the middle.
__field(u32, chid)
__field(u32, ev_type)
__field(u32, length)
__field(u16, status)
__field(u8, code)
> + ),
> +
> + TP_fast_assign(__assign_str(name);
> + __entry->chid = chid;
> + __entry->ev_type = ev_type;
> + __entry->code = code;
> + __entry->status = status;
> + __entry->length = length;
> + ),
> +
> + TP_printk("%s: chid=%u ev_type=0x%02x code=%u status=%u length=%u",
> + __get_str(name), __entry->chid, __entry->ev_type,
> + __entry->code, __entry->status, __entry->length)
> +);
> +
>
> +TRACE_EVENT(gpi_alloc_ring,
> + TP_PROTO(struct device *dev, u32 elements, u32 el_size,
> + u32 req_len, u64 len, size_t alloc_size),
> + TP_ARGS(dev, elements, el_size, req_len, len, alloc_size),
> +
> + TP_STRUCT__entry(__string(name, dev_name(dev))
> + __field(u32, elements)
> + __field(u32, el_size)
> + __field(u32, req_len)
> + __field(u64, len)
> + __field(size_t, alloc_size)
Same here. I would move the 64 and size to the beginning and the other 4
byte fields to the end:
TP_STRUCT__entry(__field(u64, len)
__field(size_t, alloc_size)
__string(name, dev_name(dev))
__field(u32, elements)
__field(u32, el_size)
__field(u32, req_len)
And yes, the __string() is a 4 byte meta-data and should be treated as 4
bytes.
> + ),
> +
> + TP_fast_assign(__assign_str(name);
> + __entry->elements = elements;
> + __entry->el_size = el_size;
> + __entry->req_len = req_len;
> + __entry->len = len;
> + __entry->alloc_size = alloc_size;
> + ),
> +
> + TP_printk("%s: elements=%u el_size=%u req_len=%u len=%llu
> alloc_size=%zu",
> + __get_str(name), __entry->elements, __entry->el_size,
> + __entry->req_len, __entry->len, __entry->alloc_size)
> +);
> +
> +TRACE_EVENT(gpi_ring_info,
> + TP_PROTO(struct device *dev, dma_addr_t dma_handle, phys_addr_t
> phys_addr,
> + u32 len, u32 el_size, u32 elements),
> + TP_ARGS(dev, dma_handle, phys_addr, len, el_size, elements),
> +
> + TP_STRUCT__entry(__string(name, dev_name(dev))
Move the __string() to after phys_addr.
> + __field(u64, dma_handle)
> + __field(u64, phys_addr)
> + __field(u32, len)
> + __field(u32, el_size)
> + __field(u32, elements)
> + ),
> +
> + TP_fast_assign(__assign_str(name);
> + __entry->dma_handle = dma_handle;
> + __entry->phys_addr = phys_addr;
> + __entry->len = len;
> + __entry->el_size = el_size;
> + __entry->elements = elements;
> + ),
> +
> + TP_printk("%s: dma_handle=%llx phys_addr=%llx len=%u el_size=%u
> elements=%u",
> + __get_str(name), __entry->dma_handle, __entry->phys_addr,
> + __entry->len, __entry->el_size, __entry->elements)
> +);
> +
-- Steve