lttng-modules: Fix trace_hrtimer_start build failure

Fix the following build failure

probes/../../include/lttng/tracepoint-event-impl.h:133:6: error: conflicting
types for 'trace_hrtimer_start'; have 'void(struct hrtimer *, enum hrtimer_mode)'
  133 | void trace_##_name(_proto);
      |      ^~~~~~

(From OE-Core rev: e0598e2bbf9513ad71dea185a540de16996c4114)

Signed-off-by: He Zhe <zhe.he@windriver.com>
[YC: backported from wrynose commit e32cbc177dae ("lttng-modules: Fix
trace_hrtimer_start build failure").
This is a partial backport of commit 7dae5f40e394 ("lttng-modules:
fix build against kernel 7.1+")]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
This commit is contained in:
He Zhe
2026-05-29 12:34:38 +08:00
committed by Paul Barker
parent b61b34f6f8
commit e5db0f30c8
2 changed files with 107 additions and 2 deletions

View File

@@ -0,0 +1,103 @@
From c370026b0a077ba9491b07c559b343fde6353074 Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Mon, 25 May 2026 10:38:18 -0400
Subject: [PATCH] fix: hrtimer: Reduce trace noise in hrtimer_start() (v7.1)
See upstream commit:
commit f2e388a019e4cf83a15883a3d1f1384298e9a6aa
Author: Thomas Gleixner <tglx@kernel.org>
Date: Tue Feb 24 17:36:59 2026 +0100
hrtimer: Reduce trace noise in hrtimer_start()
hrtimer_start() when invoked with an already armed timer traces like:
<comm>-.. [032] d.h2. 5.002263: hrtimer_cancel: hrtimer= ....
<comm>-.. [032] d.h1. 5.002263: hrtimer_start: hrtimer= ....
Which is incorrect as the timer doesn't get canceled. Just the expiry time
changes. The internal dequeue operation which is required for that is not
really interesting for trace analysis. But it makes it tedious to keep real
cancellations and the above case apart.
Remove the cancel tracing in hrtimer_start() and add a 'was_armed'
indicator to the hrtimer start tracepoint, which clearly indicates what the
state of the hrtimer is when hrtimer_start() is invoked:
<comm>-.. [032] d.h1. 6.200103: hrtimer_start: hrtimer= .... was_armed=0
<comm>-.. [032] d.h1. 6.200558: hrtimer_start: hrtimer= .... was_armed=1
Change-Id: I37ee0ae0af665a51fd4f92adffb6b1dcb2ecd9d2
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/b77f94c7a7109e70a97bf936b72d66d611187d61]
Signed-off-by: He Zhe <zhe.he@windriver.com>
[YC: Backport: revert usage of non-defined-yet ctf_enum]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
include/instrumentation/events/timer.h | 39 ++++++++++++++++++++++++--
1 file changed, 37 insertions(+), 2 deletions(-)
diff --git a/include/instrumentation/events/timer.h b/include/instrumentation/events/timer.h
index bd21c03..9d4476a 100644
--- a/include/instrumentation/events/timer.h
+++ b/include/instrumentation/events/timer.h
@@ -203,12 +203,43 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_init,
)
)
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(7,1,0) || \
+ LTTNG_KERNEL_RANGE(7,0,10, 7,1,0) || \
+ LTTNG_KERNEL_RANGE(6,18,33, 6,19,0) || \
+ LTTNG_KERNEL_RANGE(6,12,91, 6,13,0) || \
+ LTTNG_KERNEL_RANGE(6,6,141, 6,7,0))
/**
* hrtimer_start - called when the hrtimer is started
- * @timer: pointer to struct hrtimer
+ * @hrtimer: pointer to struct hrtimer
+ * @mode: the hrtimers mode
+ * @was_armed: Was armed when hrtimer_start*() was invoked
*/
-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0) || \
+LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
+
+ timer_hrtimer_start,
+
+ TP_PROTO(struct hrtimer *hrtimer, enum hrtimer_mode mode, bool was_armed),
+
+ TP_ARGS(hrtimer, mode, was_armed),
+
+ TP_FIELDS(
+ ctf_integer_hex(void *, hrtimer, hrtimer)
+ ctf_integer_hex(void *, function, hrtimer->function)
+ ctf_integer(s64, expires,
+ lttng_ktime_get_tv64(hrtimer_get_expires(hrtimer)))
+ ctf_integer(s64, softexpires,
+ lttng_ktime_get_tv64(hrtimer_get_softexpires(hrtimer)))
+ ctf_integer(enum hrtimer_mode, mode, mode)
+ ctf_integer(bool, was_armed, was_armed)
+ )
+)
+#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,16,0) || \
LTTNG_RT_KERNEL_RANGE(4,14,0,0, 4,15,0,0))
+/**
+ * hrtimer_start - called when the hrtimer is started
+ * @hrtimer: pointer to struct hrtimer
+ * @mode: the hrtimers mode
+ */
LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
timer_hrtimer_start,
@@ -228,6 +259,10 @@ LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
)
)
#else
+/**
+ * hrtimer_start - called when the hrtimer is started
+ * @hrtimer: pointer to struct hrtimer
+ */
LTTNG_TRACEPOINT_EVENT_MAP(hrtimer_start,
timer_hrtimer_start,

View File

@@ -15,10 +15,12 @@ SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
file://0003-Fix-mm_compaction_migratepages-changed-in-linux-6.9-.patch \
file://0004-Fix-dev_base_lock-removed-in-linux-6.9-rc1.patch \
file://0001-Fix-sched_stat_runtime-changed-in-Linux-6.6.66.patch \
"
"
# Use :append here so that the patch is applied also when using devupstream
SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"
SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch \
file://0001-fix-hrtimer-Reduce-trace-noise-in-hrtimer_start-v7.1.patch \
"
SRC_URI[sha256sum] = "d85fcb66c7bd31003ab8735e8c77700e5e4f417b4c22fe1f20112cf435abad79"