]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
timers/migration: Handle capacity in connect tracepoints
authorFrederic Weisbecker <frederic@kernel.org>
Thu, 23 Apr 2026 16:53:53 +0000 (18:53 +0200)
committerThomas Gleixner <tglx@kernel.org>
Wed, 6 May 2026 06:33:07 +0000 (08:33 +0200)
This let tracers know to which hierarchy a CPU belongs to.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260423165354.95152-6-frederic@kernel.org
include/trace/events/timer_migration.h
kernel/time/timer_migration.c

index 61171b13c687c2ffc77ff20f00e09fff7a17c8d1..0b135e9301b1df74f37a30259da3b84a5d53bc1f 100644 (file)
@@ -33,15 +33,16 @@ TRACE_EVENT(tmigr_group_set,
 
 TRACE_EVENT(tmigr_connect_child_parent,
 
-       TP_PROTO(struct tmigr_group *child),
+       TP_PROTO(struct tmigr_hierarchy *hier, struct tmigr_group *child),
 
-       TP_ARGS(child),
+       TP_ARGS(hier, child),
 
        TP_STRUCT__entry(
                __field( void *,        child           )
                __field( void *,        parent          )
                __field( unsigned int,  lvl             )
                __field( unsigned int,  numa_node       )
+               __field( unsigned int,  capacity        )
                __field( unsigned int,  num_children    )
                __field( u32,           groupmask       )
        ),
@@ -51,26 +52,28 @@ TRACE_EVENT(tmigr_connect_child_parent,
                __entry->parent         = child->parent;
                __entry->lvl            = child->parent->level;
                __entry->numa_node      = child->parent->numa_node;
+               __entry->capacity       = hier->capacity;
                __entry->num_children   = child->parent->num_children;
                __entry->groupmask      = child->groupmask;
        ),
 
-       TP_printk("group=%p groupmask=%0x parent=%p lvl=%d numa=%d num_children=%d",
-                 __entry->child,  __entry->groupmask, __entry->parent,
-                 __entry->lvl, __entry->numa_node, __entry->num_children)
+       TP_printk("group=%p groupmask=%0x parent=%p lvl=%d numa=%d capacity=%d num_children=%d",
+                 __entry->child,  __entry->groupmask, __entry->parent, __entry->lvl,
+                 __entry->numa_node, __entry->capacity, __entry->num_children)
 );
 
 TRACE_EVENT(tmigr_connect_cpu_parent,
 
-       TP_PROTO(struct tmigr_cpu *tmc),
+       TP_PROTO(struct tmigr_hierarchy *hier, struct tmigr_cpu *tmc),
 
-       TP_ARGS(tmc),
+       TP_ARGS(hier, tmc),
 
        TP_STRUCT__entry(
                __field( void *,        parent          )
                __field( unsigned int,  cpu             )
                __field( unsigned int,  lvl             )
                __field( unsigned int,  numa_node       )
+               __field( unsigned int,  capacity        )
                __field( unsigned int,  num_children    )
                __field( u32,           groupmask       )
        ),
@@ -80,13 +83,14 @@ TRACE_EVENT(tmigr_connect_cpu_parent,
                __entry->cpu            = tmc->cpuevt.cpu;
                __entry->lvl            = tmc->tmgroup->level;
                __entry->numa_node      = tmc->tmgroup->numa_node;
+               __entry->capacity       = hier->capacity;
                __entry->num_children   = tmc->tmgroup->num_children;
                __entry->groupmask      = tmc->groupmask;
        ),
 
-       TP_printk("cpu=%d groupmask=%0x parent=%p lvl=%d numa=%d num_children=%d",
-                 __entry->cpu,  __entry->groupmask, __entry->parent,
-                 __entry->lvl, __entry->numa_node, __entry->num_children)
+       TP_printk("cpu=%d groupmask=%0x parent=%p lvl=%d numa=%d capacity=%d num_children=%d",
+                 __entry->cpu,  __entry->groupmask, __entry->parent, __entry->lvl,
+                 __entry->numa_node, __entry->capacity, __entry->num_children)
 );
 
 DECLARE_EVENT_CLASS(tmigr_group_and_cpu,
index 03ae8c7dc331417776303500c02786e06056b1ba..25e3c563eb748586231b65c9be15c142215e0403 100644 (file)
@@ -1752,7 +1752,7 @@ static void tmigr_connect_child_parent(struct tmigr_hierarchy *hier, struct tmig
         */
        smp_store_release(&child->parent, parent);
 
-       trace_tmigr_connect_child_parent(child);
+       trace_tmigr_connect_child_parent(hier, child);
 }
 
 static int tmigr_setup_groups(struct tmigr_hierarchy *hier, unsigned int cpu,
@@ -1827,7 +1827,7 @@ static int tmigr_setup_groups(struct tmigr_hierarchy *hier, unsigned int cpu,
 
                        tmigr_init_root(hier, group, activate);
 
-                       trace_tmigr_connect_cpu_parent(tmc);
+                       trace_tmigr_connect_cpu_parent(hier, tmc);
 
                        /* There are no children that need to be connected */
                        continue;