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

Reply via email to