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

David Rientjes
2011-02-22T00:13:19Z

On Mon, 21 Feb 2011, Mike Travis 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 | 11 ++++++++---
> > > 1 file changed, 8 insertions(+), 3 deletions(-)
> > >
> > > --- linux.orig/kernel/printk.c
> > > +++ linux/kernel/printk.c
> > > @@ -735,9 +735,14 @@ static inline int printk_emit_time(void)
> > > unsigned long microsec_rem;
> > > t = cpu_clock(printk_cpu);
> > > - microsec_rem = do_div(t, 1000000000) / 1000;
> > > - tlen = sprintf(tbuf, "[%5lu.%06lu] ", (unsigned long)t, microsec_rem);
> > > -
> > > + if (likely(t)) {
> > > + microsec_rem = do_div(t, 1000000000) / 1000;
> > > + tlen = sprintf(tbuf, "[%5lu.%06lu] ",
> > > + (unsigned long)t, microsec_rem);
> >
> > The definition of microsec_rem can become local to this clause.
>
> Ok.
> >
> > > + } else {
> > > + /* reduce byte count in log when time is zero */
> > > + tlen = sprintf(tbuf, "[0] ");
> >
> > If we know the padding when cpu_clock() is non-zero, then why not make sure
> > the kernel log is aligned properly by using the same padding here?
>
> I'm not sure I understand what you are asking. The whole point of this
> exercise is to remove bytes from the early log buffer so it does not
> overflow. What would you like me to change?
>

Based on your changelog, it looks like you're trying to avoid the time
spent calculating the time (the divides), not trying to optimize for
space, so I recommended "[ 0.000000]" so the log is aligned. If the
patchset is reducing the number of lines emitted to the log, then this
shouldn't be as significant of an issue?