]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
tracing: Report ipi_raise target CPUs as cpumask
authorCaoRuichuang <create0818@163.com>
Mon, 6 Apr 2026 16:24:34 +0000 (00:24 +0800)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 8 Apr 2026 20:26:22 +0000 (16:26 -0400)
Bugzilla 217447 points out that ftrace bitmask fields still use the
legacy dynamic-array format, which makes trace consumers treat them
as unsigned long arrays instead of bitmaps.

This is visible in the ipi events today: ipi_send_cpumask already
reports its CPU mask as '__data_loc cpumask_t', but ipi_raise still
exposes target_cpus as '__data_loc unsigned long[]'.

Switch ipi_raise to __cpumask() and the matching helpers so its
tracefs format matches the existing cpumask representation used by
the other ipi event. The underlying storage size stays the same, but
trace data consumers can now recognize the field as a cpumask
directly.

Link: https://patch.msgid.link/20260406162434.40767-1-create0818@163.com
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217447
Signed-off-by: CaoRuichuang <create0818@163.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
include/trace/events/ipi.h

index 9912f0ded81d530123ed49b2ce4eb46b5aa0ce6e..fae4f8eac4112d301e50ae25e6aa9aed4306d3ae 100644 (file)
@@ -68,16 +68,16 @@ TRACE_EVENT(ipi_raise,
        TP_ARGS(mask, reason),
 
        TP_STRUCT__entry(
-               __bitmask(target_cpus, nr_cpumask_bits)
+               __cpumask(target_cpus)
                __field(const char *, reason)
        ),
 
        TP_fast_assign(
-               __assign_bitmask(target_cpus, cpumask_bits(mask), nr_cpumask_bits);
+               __assign_cpumask(target_cpus, cpumask_bits(mask));
                __entry->reason = reason;
        ),
 
-       TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason)
+       TP_printk("target_mask=%s (%s)", __get_cpumask(target_cpus), __entry->reason)
 );
 
 DECLARE_EVENT_CLASS(ipi_handler,