Re: [PATCH] printk, allow different timestamps for printk.time

From: Thomas Gleixner
Date: Tue Jan 26 2016 - 15:35:55 EST


Prarit,

On Mon, 25 Jan 2016, Prarit Bhargava wrote:
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 87d40a7..2cf6692 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -3060,8 +3060,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> Format: <bool> (1/Y/y=enable, 0/N/n=disable)
> default: disabled
>
> - printk.time= Show timing data prefixed to each printk message line
> - Format: <bool> (1/Y/y=enable, 0/N/n=disable)
> + printk.time= Show timestamp prefixed to each printk message line
> + Format: [0-2] (0 = disable,
> + 1 = monotonic clock, 2 = real clock)

Doesn't this break systems, which have 'Y/y' on the command line?

> static DEFINE_RAW_SPINLOCK(timekeeper_lock);
> static struct timekeeper shadow_timekeeper;
> +static int timekeeping_active;
>
> /**
> * struct tk_fast - NMI safe timekeeper
> @@ -401,6 +402,16 @@ u64 ktime_get_raw_fast_ns(void)
> }
> EXPORT_SYMBOL_GPL(ktime_get_raw_fast_ns);
>
> +u64 ktime_get_log_ts(u64 *offset_real)
> +{
> + *offset_real = ktime_to_ns(tk_core.timekeeper.offs_real);
> +
> + if (timekeeping_active)
> + return ktime_get_mono_fast_ns();
> + else
> + return local_clock();

Just for the record: The fast timekeeper stops across the inner workings of
suspend/resume. But I think that doesn't matter much.

Otherwise, this looks good now.

Thanks,

tglx