diff mbox

[12/12] clocksource: Add some debug info about clocksources being registered

Message ID 1425696603-16878-13-git-send-email-john.stultz@linaro.org
State New
Headers show

Commit Message

John Stultz March 7, 2015, 2:50 a.m. UTC
Print the mask, max_cycles, and max_idle_ns values for clocksources
being registered.

Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
 kernel/time/clocksource.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

John Stultz March 12, 2015, 3:16 a.m. UTC | #1
On Sat, Mar 7, 2015 at 1:50 AM, Ingo Molnar <mingo@kernel.org> wrote:
>
> * John Stultz <john.stultz@linaro.org> wrote:
>
>> Print the mask, max_cycles, and max_idle_ns values for clocksources
>> being registered.
>>
>> Cc: Dave Jones <davej@codemonkey.org.uk>
>> Cc: Linus Torvalds <torvalds@linux-foundation.org>
>> Cc: Thomas Gleixner <tglx@linutronix.de>
>> Cc: Richard Cochran <richardcochran@gmail.com>
>> Cc: Prarit Bhargava <prarit@redhat.com>
>> Cc: Stephen Boyd <sboyd@codeaurora.org>
>> Cc: Ingo Molnar <mingo@kernel.org>
>> Cc: Peter Zijlstra <peterz@infradead.org>
>> Signed-off-by: John Stultz <john.stultz@linaro.org>
>> ---
>>  kernel/time/clocksource.c | 4 ++++
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
>> index 3f24bb3..9b75316 100644
>> --- a/kernel/time/clocksource.c
>> +++ b/kernel/time/clocksource.c
>> @@ -697,6 +697,10 @@ void __clocksource_updatefreq_scale(struct clocksource *cs, u32 scale, u32 freq)
>
> So that name should really be something like __clocksource_update_freq_scale(),
> right?

Sure, I can add an extra patch to address that...


>>       cs->max_idle_ns = clocks_calc_max_nsecs(cs->mult, cs->shift,
>>                                                cs->maxadj, cs->mask,
>>                                                &cs->max_cycles);
>> +
>> +     pr_info("clocksource %s: mask: 0x%llx max_cycles: 0x%llx, max_idle_ns: %lld ns\n",
>> +                     cs->name, cs->mask, cs->max_cycles, cs->max_idle_ns);
>> +
>
> Also, why is this function exported? No in-tree module uses it.

So, its mostly due to the fact that the inline function
__clocksource_updatefreq_hz() in clocksource.h uses it, which may be
used by some clocksources in their enable() hooks. And those
clocksources may be compiled as a module.


> Also, when I read the code, I noticed:
>
> /**
>  * __clocksource_updatefreq_scale - Used update clocksource with new freq
>  * @cs:         clocksource to be registered
>  * @scale:      Scale factor multiplied against freq to get clocksource hz
>  * @freq:       clocksource frequency (cycles per second) divided by scale
>  *
>  * This should only be called from the clocksource->enable() method.
>  *
>  * This *SHOULD NOT* be called directly! Please use the
>  * clocksource_updatefreq_hz() or clocksource_updatefreq_khz helper functions.
>
> One more reason to not export it?
>
> Also, typo in the description.
>
> Plus, one helper function is marked with '()', the other not ...

I'll address that in the new patch as well.

thanks
-john
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
diff mbox

Patch

diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c
index 3f24bb3..9b75316 100644
--- a/kernel/time/clocksource.c
+++ b/kernel/time/clocksource.c
@@ -697,6 +697,10 @@  void __clocksource_updatefreq_scale(struct clocksource *cs, u32 scale, u32 freq)
 	cs->max_idle_ns = clocks_calc_max_nsecs(cs->mult, cs->shift,
 						 cs->maxadj, cs->mask,
 						 &cs->max_cycles);
+
+	pr_info("clocksource %s: mask: 0x%llx max_cycles: 0x%llx, max_idle_ns: %lld ns\n",
+			cs->name, cs->mask, cs->max_cycles, cs->max_idle_ns);
+
 }
 EXPORT_SYMBOL_GPL(__clocksource_updatefreq_scale);