From: mjeanson@efficios.com (Michael Jeanson)
Subject: [lttng-dev] [PATCH lttng-modules 1/5] fix: timer/trace: Improve timer tracing (v5.2)
Date: Tue, 21 May 2019 16:33:10 -0400 [thread overview]
Message-ID: <20190521203314.8577-1-mjeanson@efficios.com> (raw)
See upstream commit:
commit f28d3d5346e97e60c81f933ac89ccf015430e5cf
Author: Anna-Maria Gleixner <anna-maria at linutronix.de>
Date: Thu Mar 21 13:09:21 2019 +0100
timer/trace: Improve timer tracing
Timers are added to the timer wheel off by one. This is required in
case a timer is queued directly before incrementing jiffies to prevent
early timer expiry.
When reading a timer trace and relying only on the expiry time of the timer
in the timer_start trace point and on the now in the timer_expiry_entry
trace point, it seems that the timer fires late. With the current
timer_expiry_entry trace point information only now=jiffies is printed but
not the value of base->clk. This makes it impossible to draw a conclusion
to the index of base->clk and makes it impossible to examine timer problems
without additional trace points.
Therefore add the base->clk value to the timer_expire_entry trace
point, to be able to calculate the index the timer base is located at
during collecting expired timers.
Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
---
instrumentation/events/lttng-module/timer.h | 22 +++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/instrumentation/events/lttng-module/timer.h b/instrumentation/events/lttng-module/timer.h
index 8703ea0..997084f 100644
--- a/instrumentation/events/lttng-module/timer.h
+++ b/instrumentation/events/lttng-module/timer.h
@@ -89,6 +89,27 @@ LTTNG_TRACEPOINT_EVENT(timer_start,
)
#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0))
+/**
+ * timer_expire_entry - called immediately before the timer callback
+ * @timer: pointer to struct timer_list
+ *
+ * Allows to determine the timer latency.
+ */
+LTTNG_TRACEPOINT_EVENT(timer_expire_entry,
+
+ TP_PROTO(struct timer_list *timer, unsigned long baseclk),
+
+ TP_ARGS(timer, baseclk),
+
+ TP_FIELDS(
+ ctf_integer_hex(void *, timer, timer)
+ ctf_integer(unsigned long, now, jiffies)
+ ctf_integer_hex(void *, function, timer->function)
+ ctf_integer(unsigned long, baseclk, baseclk)
+ )
+)
+#else
/**
* timer_expire_entry - called immediately before the timer callback
* @timer: pointer to struct timer_list
@@ -107,6 +128,7 @@ LTTNG_TRACEPOINT_EVENT(timer_expire_entry,
ctf_integer_hex(void *, function, timer->function)
)
)
+#endif
/**
* timer_expire_exit - called immediately after the timer callback returns
--
2.17.1
next reply other threads:[~2019-05-21 20:33 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-21 20:33 Michael Jeanson [this message]
2019-05-21 20:33 ` [lttng-dev] [PATCH lttng-modules 2/5] fix: mm/vmscan: drop may_writepage and classzone_idx from direct reclaim begin template (v5.2) Michael Jeanson
2019-05-21 20:33 ` [lttng-dev] [PATCH lttng-modules 3/5] fix: mm/vmscan: simplify trace_reclaim_flags and trace_shrink_flags (v5.2) Michael Jeanson
2019-05-21 20:33 ` [lttng-dev] [PATCH lttng-modules 4/5] fix: mm: move recent_rotated pages calculation to shrink_inactive_list() (v5.2) Michael Jeanson
2019-05-21 20:53 ` Mathieu Desnoyers
2019-05-21 21:16 ` Steven Rostedt
2019-05-22 8:37 ` Kirill Tkhai
2019-05-21 20:33 ` [lttng-dev] [PATCH lttng-modules 5/5] fix: random: only read from /dev/random after its pool has received 128 bits (v5.2) Michael Jeanson
2019-05-22 15:37 ` [lttng-dev] [PATCH lttng-modules 1/5] fix: timer/trace: Improve timer tracing (v5.2) Mathieu Desnoyers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190521203314.8577-1-mjeanson@efficios.com \
--to=mjeanson@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox