lttng-dev.lists.lttng.org archive mirror
 help / color / mirror / Atom feed
* [PATCH lttng-modules 1/5] fix: timer/trace: Improve timer tracing (v5.2)
@ 2019-05-21 20:33 Michael Jeanson
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Jeanson @ 2019-05-21 20:33 UTC (permalink / raw)
  To: lttng-dev

See upstream commit:

  commit f28d3d5346e97e60c81f933ac89ccf015430e5cf
  Author: Anna-Maria Gleixner <anna-maria@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@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

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-05-22 15:37 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20190521203314.8577-1-mjeanson@efficios.com>
2019-05-21 20:33 ` [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 ` [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 ` [PATCH lttng-modules 4/5] fix: mm: move recent_rotated pages calculation to shrink_inactive_list() (v5.2) Michael Jeanson
2019-05-21 20:33 ` [PATCH lttng-modules 5/5] fix: random: only read from /dev/random after its pool has received 128 bits (v5.2) Michael Jeanson
     [not found] ` <20190521203314.8577-4-mjeanson@efficios.com>
2019-05-21 20:53   ` [PATCH lttng-modules 4/5] fix: mm: move recent_rotated pages calculation to shrink_inactive_list() (v5.2) Mathieu Desnoyers
     [not found]   ` <1045726286.6695.1558472016130.JavaMail.zimbra@efficios.com>
2019-05-21 21:16     ` Steven Rostedt
2019-05-22  8:37     ` Kirill Tkhai
2019-05-22 15:37 ` [PATCH lttng-modules 1/5] fix: timer/trace: Improve timer tracing (v5.2) Mathieu Desnoyers
2019-05-21 20:33 Michael Jeanson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).