On Wed, 30 Aug 2017 10:03:48 +0900 Sergey Senozhatsky <sergey.senozhatsky.w...@gmail.com> wrote:
> Hello, > > 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. -- Steve