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:4.113 / U:1.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site