On 14/12/2017 at 13:31:43 +0800, Baolin Wang wrote: > It will be more helpful to add some tracepoints to track RTC actions when > debugging RTC driver. Below sample is that we set/read the RTC time, then > set 2 alarms, so we can see the trace logs: > > set/read RTC time: > kworker/0:1-67 [000] 21.814245: rtc_set_time: UTC (1510301580) (0) > kworker/0:1-67 [000] 21.814312: rtc_read_time: UTC (1510301580) (0) > > set the first alarm timer: > kworker/0:1-67 [000] 21.829238: rtc_timer_enqueue: RTC timer:(ffffffc15eb49bc8) expires:1510301700000000000 period:0 > kworker/0:1-67 [000] 22.018279: rtc_set_alarm: UTC (1510301700) (0) > > set the second alarm timer: > kworker/0:1-67 [000] 22.230284: rtc_timer_enqueue: RTC timer:(ffffff80088e6430) expires:1510301820000000000 period:0 > > the first alarm timer was expired: > kworker/0:1-67 [000] 145.155584: rtc_timer_dequeue: RTC timer:(ffffffc15eb49bc8) expires:1510301700000000000 period:0 > kworker/0:1-67 [000] 145.155593: rtc_timer_fired: RTC timer:(ffffffc15eb49bc8) expires:1510301700000000000 period:0 > kworker/0:1-67 [000] 145.172504: rtc_set_alarm: UTC (1510301820) (0) > > the second alarm timer was expired: > kworker/0:1-67 [000] 269.102353: rtc_timer_dequeue: RTC timer:(ffffff80088e6430) expires:1510301820000000000 period:0 > kworker/0:1-67 [000] 269.102360: rtc_timer_fired: RTC timer:(ffffff80088e6430) expires:1510301820000000000 period:0 > > disable alarm irq: > kworker/0:1-67 [000] 269.102469: rtc_alarm_irq_enable: disable RTC alarm IRQ (0) > > Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx> > --- > Changes since v2: > - Only keep time64_t in the buffer. > > Changes since v1: > - Use unconditional tracepoints with tracing the failures. > - Simplify the rtc_timer_class. > --- > drivers/rtc/interface.c | 30 +++++++ > include/trace/events/rtc.h | 206 ++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 236 insertions(+) > create mode 100644 include/trace/events/rtc.h > Applied, thanks. -- Alexandre Belloni, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering http://bootlin.com