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

From: Baolin Wang
Date: Tue Sep 06 2016 - 21:58:40 EST


Hi John and Ingo,

On 7 September 2016 at 08:10, John Stultz <john.stultz@xxxxxxxxxx> wrote:
> 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.

I am sorry for the build failure on S390. I will send out the new
version to fix it ASAP. Thanks for John's help.

>
> 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



--
Baolin.wang
Best Regards