On Wed, Jun 20, 2018 at 11:18 AM, Sergey Senozhatsky <sergey.senozhatsky.w...@gmail.com> wrote: > On (06/20/18 18:06), Sergey Senozhatsky wrote: >> >> b) printk_safe output is quite uncommon. And we flush per-CPU buffer >> from the same CPU which has caused printk_safe output [except for >> panic() flush] therefore logging the info available to log_store() >> seemed enough. IOW, once again, was a bit unsure if we want to add >> some complex code to already complex code, with just one potential >> user. > > BTW, pr_cont() handling is not so simple when we are in printk_safe() > context. Unlike vprintk_emit() [normal printk], we don't use any > dedicated pr_cont() buffer in printk_safe. So, at a glance, I suspect > that injecting context info at every printk_safe_log_store() call for > `for (...) pr_cont()' loop is going to produce something like this: > I<10> 23 I<10> 43 I<10> 47 .... > > // Hmm, maybe the line will endup having two prefixes. Once > // from printk_safe_log_store, the other from normal printk > // log_store(). > > While the same `for (...) pr_cont()' called from normal printk() context > will produce > I<10> 32 43 47 .... > > It could be that I'm wrong. > Tetsuo, have you tested pr_cont() from printk_safe() context?
So this is another reason to get rid of pr_cont entirely, right?