Re: printk: what is going on with additional newlines?

From: Sergey Senozhatsky
Date: Tue Aug 29 2017 - 21:49:15 EST


On (08/29/17 21:10), Steven Rostedt wrote:
> > On (08/29/17 19:50), Steven Rostedt wrote:
> > [..]
> > > > A private buffer has none of those issues.
> > >
> > > What about using the seq_buf*() then?
> > >
> > > struct seq_buf s;
> > >
> > > buf = kmalloc(mysize);
> > > seq_buf_init(&s, buf, mysize);
> > >
> > > seq_printf(&s,"blah blah %d", bah_blah);
> > > [...]
> > > seq_printf(&s, "my last print\n");
> > >
> > > printk("%.*s", s.len, s.buffer);
> > >
> > > kfree(buf);
> >
> > could do. for a single continuation line printk("%.*s", s.len, s.buffer)
> > this will work perfectly fine. for a more general case - backtraces, dumps,
> > etc. - this requires some tweaks.
>
> We could simply add a seq_buf_printk() that is implemented in the printk
> proper, to parse the seq_buf buffer properly, and add the timestamps and
> such.

sounds like a plan :)

-ss