lkml.org 
[lkml]   [2018]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: printk feature for syzbot?
From
Date
Sergey Senozhatsky wrote:
> On (04/26/18 12:06), Petr Mladek wrote:
> >
> > > Petr, Steven, Fengguang, what do you think? Do you have any objections?
> > > Ideas?
> >
> > I wonder if we could create some mechanism that would help to extend
> > struct printk_log easier in the future.
>
> Hm, interesting idea.
>
> > I know only about crash tool implementation. It uses information provided
> > by log_buf_vmcoreinfo_setup(). The size of the structure is already
> > public. Therefore crash should be able to find all existing information
> > even if we increase the size of the structure.
> >
> > log_buf_vmcoreinfo_setup() even allows to inform about newly added
> > structure items. We could probably extend it to inform also about
> > the offset of the new optional elements.
>
> I vaguely remember that the last time Thomas Gleixner modified
> printk_log you managed to find a case that broke crash tool.
> ... Or may be I'm mistaken.
>
> > I am not sure about other tools. But I think that it should be
> > doable.
>
> Good. So there are no objections, so far.
>
> Tetsuo, Dmitry, care to send a patch?
>
> -ss
>

What I meant is nothing but something like below (i.e. inject context ID before
string to print)

-sprintf(printk_buf + offset, "[ %s] %s", stamp, string_to_print);
+cpu = smp_processor_id()
+if (in_nmi())
+ sprintf(printk_buf + offset, "[ %s](N%u) %s", stamp, cpu, string_to_print);
+else if (in_irq())
+ sprintf(printk_buf + offset, "[ %s](I%u) %s", stamp, cpu, string_to_print);
+else if (in_serving_softirq())
+ sprintf(printk_buf + offset, "[ %s](S%u) %s", stamp, cpu, string_to_print);
+else
+ sprintf(printk_buf + offset, "[ %s](%u) %s", stamp, current->pid, string_to_print);

without touching any struct.

\
 
 \ /
  Last update: 2018-05-10 16:51    [W:0.373 / U:0.216 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site