linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Ellerman <mpe@ellerman.id.au>
To: Petr Mladek <pmladek@suse.com>
Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	syzkaller <syzkaller@googlegroups.com>
Subject: Re: [PATCH] printk: Add caller information to printk() output.
Date: Fri, 22 Mar 2019 11:48:04 +1100	[thread overview]
Message-ID: <877ecrka4b.fsf@concordia.ellerman.id.au> (raw)
In-Reply-To: <20190321102013.yxs4v4pcrq44jktm@pathway.suse.cz>

Petr Mladek <pmladek@suse.com> writes:
> On Thu 2019-03-21 13:59:53, Michael Ellerman wrote:
>> Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp> writes:
>> ...
>> > From 91f85d2bd494df2f73c605d8b4747e8cc0a61ae2 Mon Sep 17 00:00:00 2001
>> > From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
>> > Date: Tue, 18 Dec 2018 05:53:04 +0900
>> > Subject: [PATCH] printk: Add caller information to printk() output.
>> >
>> > Sometimes we want to print a series of printk() messages to consoles
>> > without being disturbed by concurrent printk() from interrupts and/or
>> > other threads. But we can't enforce printk() callers to use their local
>> > buffers because we need to ask them to make too much changes. Also, even
>> > buffering up to one line inside printk() might cause failing to emit
>> > an important clue under critical situation.
>> >
>> > Therefore, instead of trying to help buffering, let's try to help
>> > reconstructing messages by saving caller information as of calling
>> > log_store() and adding it as "[T$thread_id]" or "[C$processor_id]"
>> > upon printing to consoles.
>> >
>> > Some examples for console output:
>> >
>> >   [    1.222773][    T1] x86: Booting SMP configuration:
>> >   [    2.779635][    T1] pci 0000:00:01.0: PCI bridge to [bus 01]
>> >   [    5.069193][  T268] Fusion MPT base driver 3.04.20
>> >   [    9.316504][    C2] random: fast init done
>> >   [   13.413336][ T3355] Initialized host personality
>> >
>> > Some examples for /dev/kmsg output:
>> >
>> >   6,496,1222773,-,caller=T1;x86: Booting SMP configuration:
>> >   6,968,2779635,-,caller=T1;pci 0000:00:01.0: PCI bridge to [bus 01]
>> >    SUBSYSTEM=pci
>> >    DEVICE=+pci:0000:00:01.0
>> >   6,1353,5069193,-,caller=T268;Fusion MPT base driver 3.04.20
>> >   5,1526,9316504,-,caller=C2;random: fast init done
>> >   6,1575,13413336,-,caller=T3355;Initialized host personality
>> >
>> > Note that this patch changes max length of messages which can be printed
>> > by printk() or written to /dev/kmsg interface from 992 bytes to 976 bytes,
>> > based on an assumption that userspace won't try to write messages hitting
>> > that border line to /dev/kmsg interface.
>> 
>> Do you have any plans to update dmesg or other userspace tools to show
>> the caller information?
>
> dmesg already works via the syslog interface, try dmesg -S.

Oh nice, thanks.

> The current implementation does not pass the information into
> the /dev/kmsg interface. It has the following format:
>
>     "<level>,<sequnum>,<timestamp>,<contflag>[,additional_values, ... ];<message text>\n"
>
> It would be possible to add it as an additional value. To be hones
> I am not sure how they are handled by userspace tools.

OK, yeah I guess there's the potential for a backward compatibility can
of worms there.

I'm happy with dmesg -S :)

cheers

      reply	other threads:[~2019-03-22  0:48 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-24  7:37 [PATCH] printk: Add caller information to printk() output Tetsuo Handa
2018-11-30 15:40 ` Petr Mladek
2018-12-01 14:44   ` Tetsuo Handa
2018-12-02 11:23     ` Tetsuo Handa
2018-12-04  2:02       ` Sergey Senozhatsky
2018-12-04 10:16         ` Tetsuo Handa
2018-12-04 10:38           ` Sergey Senozhatsky
2018-12-04 15:31           ` Petr Mladek
2018-12-03 15:06     ` Petr Mladek
2018-12-03 21:10       ` Tetsuo Handa
2018-12-04 15:27         ` Petr Mladek
2018-12-05 10:42           ` Tetsuo Handa
2018-12-05 11:50             ` Sergey Senozhatsky
2018-12-07  4:58               ` Tetsuo Handa
2018-12-07  5:31                 ` Sergey Senozhatsky
2018-12-10 13:09             ` Petr Mladek
2018-12-10 14:01               ` Tetsuo Handa
2018-12-11 10:26                 ` Tetsuo Handa
2018-12-12  2:25                   ` Sergey Senozhatsky
2018-12-12  2:29                     ` Sergey Senozhatsky
2018-12-13 12:18                   ` Petr Mladek
2018-12-13 12:42                     ` Sergey Senozhatsky
2018-12-17 14:54                       ` Petr Mladek
2018-12-17 15:40                         ` Sergey Senozhatsky
2018-12-17 21:05                         ` Tetsuo Handa
2018-12-18  8:39                           ` Petr Mladek
2018-12-18  8:58                             ` Sergey Senozhatsky
2019-01-02 16:09                               ` Dmitry Vyukov
2019-01-03 18:27                                 ` Dmitry Vyukov
2019-01-04  7:33                                   ` Fengguang Wu
2019-01-11 19:34                                   ` Kevin Hilman
2019-01-10 11:27                               ` Tetsuo Handa
2018-12-18  8:55                           ` Sergey Senozhatsky
2018-12-18 10:01                             ` Petr Mladek
2018-12-18 10:10                               ` Sergey Senozhatsky
2019-03-21  2:59                           ` Michael Ellerman
2019-03-21 10:20                             ` Petr Mladek
2019-03-22  0:48                               ` Michael Ellerman [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877ecrka4b.fsf@concordia.ellerman.id.au \
    --to=mpe@ellerman.id.au \
    --cc=akpm@linux-foundation.org \
    --cc=dvyukov@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=sergey.senozhatsky.work@gmail.com \
    --cc=sergey.senozhatsky@gmail.com \
    --cc=syzkaller@googlegroups.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).