Re: [tip:timers/core] time: alarmtimer: Add tracepoints for alarmtimers

From: John Stultz
Date: Tue Sep 06 2016 - 20:10:53 EST


On Tue, Sep 6, 2016 at 2:49 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> * tip-bot for Baolin Wang <tipbot@xxxxxxxxx> wrote:
>
>> Commit-ID: a0a6e06d545a753740c9d8d5ce2c4fdd3ab1c021
>> Gitweb: http://git.kernel.org/tip/a0a6e06d545a753740c9d8d5ce2c4fdd3ab1c021
>> Author: Baolin Wang <baolin.wang@xxxxxxxxxx>
>> AuthorDate: Mon, 22 Aug 2016 12:23:14 +0800
>> Committer: John Stultz <john.stultz@xxxxxxxxxx>
>> CommitDate: Wed, 31 Aug 2016 14:44:18 -0700
>>
>> time: alarmtimer: Add tracepoints for alarmtimers
>
> FYI, this commit causes a build failure on the S390 defconfig:
>
> kernel/built-in.o:/home/mingo/tip/include/trace/events/alarmtimer.h:62: more undefined references to `rtc_ktime_to_tm' follow
>
> Removing that commit solved the build failure. Other architectures (that I
> checked) build fine.

Baolin: It looks like the issue is rtc_ktime_to_tm is defined in the
CONFIG_RTC_LIB optional drivers/rtc/rtc-lib.c, which s390 does not
include.

Something like (forgive the whitespace damage, as this was copied and pasted):
diff --git a/include/trace/events/alarmtimer.h
b/include/trace/events/alarmtimer.h
index 6a34bc9..a4f78cc 100644
--- a/include/trace/events/alarmtimer.h
+++ b/include/trace/events/alarmtimer.h
@@ -77,6 +77,7 @@ DECLARE_EVENT_CLASS(alarm_processing,
__string(name, process_name)
),

+#ifdef CONFIG_RTC_LIB
TP_fast_assign(
__entry->expires = alarm->node.expires.tv64;
__entry->second = rtc_ktime_to_tm(alarm->node.expires).tm_sec;
@@ -89,6 +90,20 @@ DECLARE_EVENT_CLASS(alarm_processing,
__assign_str(name, process_name);
),

+#else
+ TP_fast_assign(
+ __entry->expires = alarm->node.expires.tv64;
+ __entry->second = 0;
+ __entry->minute = 0;
+ __entry->hour = 0;
+ __entry->day = 0;
+ __entry->mon = 0;
+ __entry->year =0;
+ __entry->alarm_type = alarm->type;
+ __assign_str(name, process_name);
+ ),
+#endif
+
TP_printk("process:%s alarmtimer type:%s expires:%llu "
"time: %hu-%u-%u %u:%u:%u",
__get_str(name),

Seems to resolve it, but I think a better solution is needed.

thanks
-john