From 7b1c2d7547943ddb0d425138b3b42262ff92eea3 Mon Sep 17 00:00:00 2001 From: "Vineeth Pillai (Google)" Date: Mon, 23 Mar 2026 12:00:21 -0400 Subject: [PATCH] kernel: Use trace_call__##name() at guarded tracepoint call sites Replace trace_foo() with the new trace_call__foo() at sites already guarded by trace_foo_enabled(), avoiding a redundant static_branch_unlikely() re-evaluation inside the tracepoint. trace_call__foo() calls the tracepoint callbacks directly without utilizing the static branch again. Cc: David Vernet Cc: Andrea Righi Cc: Changwoo Min Cc: Ingo Molnar Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Ben Segall Cc: Mel Gorman Cc: Valentin Schneider Cc: Thomas Gleixner Cc: "Yury Norov [NVIDIA]" Cc: "Paul E. McKenney" Cc: Rik van Riel Cc: Roman Kisel Cc: Joel Fernandes Cc: "Rafael J. Wysocki" Cc: Ulf Hansson Link: https://patch.msgid.link/20260323160052.17528-3-vineeth@bitbyteword.org Suggested-by: Steven Rostedt Suggested-by: Peter Zijlstra Signed-off-by: Vineeth Pillai (Google) Assisted-by: Claude:claude-sonnet-4-6 Acked-by: Tejun Heo Acked-by: Thomas Gleixner Acked-by: Masami Hiramatsu (Google) Signed-off-by: Steven Rostedt (Google) --- kernel/irq_work.c | 2 +- kernel/sched/ext.c | 2 +- kernel/smp.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/irq_work.c b/kernel/irq_work.c index 73f7e1fd4ab4..120fd7365fbe 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -79,7 +79,7 @@ void __weak arch_irq_work_raise(void) static __always_inline void irq_work_raise(struct irq_work *work) { if (trace_ipi_send_cpu_enabled() && arch_irq_work_has_interrupt()) - trace_ipi_send_cpu(smp_processor_id(), _RET_IP_, work->func); + trace_call__ipi_send_cpu(smp_processor_id(), _RET_IP_, work->func); arch_irq_work_raise(); } diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 26a6ac2f8826..7da8be1b0f26 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -4493,7 +4493,7 @@ static __printf(2, 3) void dump_line(struct seq_buf *s, const char *fmt, ...) vscnprintf(line_buf, sizeof(line_buf), fmt, args); va_end(args); - trace_sched_ext_dump(line_buf); + trace_call__sched_ext_dump(line_buf); } #endif /* @s may be zero sized and seq_buf triggers WARN if so */ diff --git a/kernel/smp.c b/kernel/smp.c index f349960f79ca..537cf1f461d7 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -394,7 +394,7 @@ void __smp_call_single_queue(int cpu, struct llist_node *node) func = CSD_TYPE(csd) == CSD_TYPE_TTWU ? sched_ttwu_pending : csd->func; - trace_csd_queue_cpu(cpu, _RET_IP_, func, csd); + trace_call__csd_queue_cpu(cpu, _RET_IP_, func, csd); } /*