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

From: Ingo Molnar
Date: Sat Mar 07 2015 - 04:50:32 EST



* John Stultz <john.stultz@xxxxxxxxxx> wrote:

> Print the mask, max_cycles, and max_idle_ns values for clocksources
> being registered.
>
> Cc: Dave Jones <davej@xxxxxxxxxxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Richard Cochran <richardcochran@xxxxxxxxx>
> Cc: Prarit Bhargava <prarit@xxxxxxxxxx>
> Cc: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Signed-off-by: John Stultz <john.stultz@xxxxxxxxxx>
> ---
> 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?

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

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

Thanks,

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