Re: [PATCH 4/5] printk: Minimize time zero output

Ingo Molnar
2011-02-18T07:34:14Z

* Mike Travis <travis@sgi.com> wrote:

> Reduce the length for time zero messages by only printing "[0] ".
>
> v2: updated to apply to x86-tip
>
> Signed-off-by: Mike Travis <travis@sgi.com>
> Reviewed-by: Jack Steiner <steiner@sgi.com>
> Reviewed-by: Robin Holt <holt@sgi.com>
> ---
> kernel/printk.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> --- linux.orig/kernel/printk.c
> +++ linux/kernel/printk.c
> @@ -818,11 +818,13 @@ asmlinkage int vprintk(const char *fmt,
> unsigned long nanosec_rem;
>
> t = cpu_clock(printk_cpu);
> - nanosec_rem = do_div(t, 1000000000);
> - tlen = sprintf(tbuf, "[%5lu.%06lu] ",
> + if (likely(t)) {
> + nanosec_rem = do_div(t, 1000000000);
> + tlen = sprintf(tbuf, "[%5lu.%06lu] ",
> (unsigned long) t,
> nanosec_rem / 1000);

The excessive number of very ugly linebreaks in this statement should have told you
that the whole printk_time function wants to be broken out of vsprintk(), into a
helper function.

Please make it two patches: one cleanup-only patch that factors out the code, the
second one that modifies it materially.

Thanks,

Ingo