Messages in this thread | | | Date | Thu, 24 Sep 2020 13:58:14 +0200 | From | Petr Mladek <> | Subject | Re: [RFC 2/2] printk: Add more information about the printk caller |
| |
On Thu 2020-09-24 10:40:10, Sergey Senozhatsky wrote: > On (20/09/23 15:56), Petr Mladek wrote: > > The information about the printk caller has been added by the commit > > 15ff2069cb7f967da ("printk: Add caller information to printk() output."). > > The main motivation was to reconstruct original messages when they > > longer output from different CPUs got mixed. > > > > But there are more usecases. The number of CPUs and tasks running on > > a single system is growing. It brings bigger challenges when debugging > > problems. The context in which kernel reports its state is sometimes > > pretty useful. > > > > In particular, people suggest to remember the task id, cpu id, more details > > about the interrupt context, and even the task name [0][1]. > > > > Prepare for extending the caller information by replacing caller_id > > with struct printk_caller. And always store task id, cpu id, and > > exact interrupt context. > > Wild idea: > > Currently, we have two sides to the problem, I think. There are tasks > that store messages, but then there are tasks that print those messages > on the consoles. And those tasks and contexts are not always the same. > What I found helpful in the past was not only the caller_id, but the > emitter_id (especially preemption count and irqs state of the context > that prints messages on the slow consoles).
Yeah, it might be useful. But it should get discussed in a separate thread.
The information about the emitter do not need to get stored into the metadata. It is mostly need only for debugging printk-related problems. It should become less important if we succeed with introducing the printk kthreads.
Best Regards, Petr
| |