Re: [PATCH v4 1/2] serial: qcom-geni: trace: Add tracepoint support for Qualcomm GENI serial
From: Praveen Talari
Date: Mon Jun 15 2026 - 05:56:53 EST
HI Steven,
On 29-05-2026 19:44, Steven Rostedt wrote:
On Tue, 26 May 2026 23:07:39 +0530
Praveen Talari <praveen.talari@xxxxxxxxxxxxxxxx> wrote:
+DECLARE_EVENT_CLASS(geni_serial_data,No need to save the length of the dynamic array in __entry->len because
+ TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
+ TP_ARGS(dev, buf, len),
+
+ TP_STRUCT__entry(__string(name, dev_name(dev))
+ __field(unsigned int, len)
+ __dynamic_array(u8, data, len)
+ ),
+
+ TP_fast_assign(__assign_str(name);
+ __entry->len = len;
+ memcpy(__get_dynamic_array(data), buf, len);
+ ),
+
+ TP_printk("%s: len=%u data=%s",
+ __get_str(name), __entry->len,
+ __print_hex(__get_dynamic_array(data), __entry->len))
+);
it's already saved in the metadata of the dynamic array that is stored
on the buffer. Instead you can have:
DECLARE_EVENT_CLASS(geni_serial_data,
TP_PROTO(struct device *dev, const u8 *buf, unsigned int len),
TP_ARGS(dev, buf, len),
TP_STRUCT__entry(__string(name, dev_name(dev))
__dynamic_array(u8, data, len)
),
TP_fast_assign(__assign_str(name);
memcpy(__get_dynamic_array(data), buf, len);
),
TP_printk("%s: len=%u data=%s",
__get_str(name), __entry->len,
__print_hex(__get_dynamic_array(data),
__get_dynamic_array_len(data)))
);
That will save you 4 bytes per event on the ring buffer. And a few
cycles not having to store the redundant information.
This patch has already been accepted and is available in linux-next.
Thanks,
Praveen Talari
-- Steve