On Thu, 2014-11-06 at 17:22 +0000, Daniel Thompson wrote: > On 06/11/14 16:13, Joe Perches wrote: > > On Thu, 2014-11-06 at 15:27 +0000, Daniel Thompson wrote: > >> Currently when kdb traps printk messages then the raw log level prefix > >> (consisting of '\001' followed by a numeral) does not get stripped off > >> before the message is issued to the various I/O handlers supported by > >> kdb. This causes annoying visual noise as well as causing problems > >> grepping for ^. It is also a change of behaviour compared to normal usage > >> of printk() usage. For example <SysRq>-h ends up with different to that of > >> kdb's "sr h". > >> > >> This patch addresses the problem by stripping log levels from messages > >> before they are issued to the I/O handlers. > > > > Perhaps instead of stripping the logging level, > > maybe a KERN_SOH_ASCII 'char' sequence should be > > emitted as '<' 'char' '>' (see: printk:print_prefix) > > > > Maybe this should be added to stable from v3.6 > > when KERN_SOH_ASCII was first added. > > You mean call the problem a regression and try to restore the original > 3.5 behaviour?
Yes. I added KERN_SOH_ASCII so to me it's a regression. > However I have to confess that I don't really like the old behaviour. > I'd view it as contradicting the normal behaviours of consoles > (including the kgdbcon console). Why should printk() inside kdb show > different text to printk() outside kdb? For me, having <5> and <c> > scribbled all over the output of an "sr" command (which I think is > probably the heaviest user of printk() inside kdb) never struck me as > adding much value. > > Is the above paragraph convincing? I don't use it so I have a useful opinion. I don't recall that anyone has reported it in the 2+ years since so it doesn't seem widely used. But then again, this is a resend and I don't recall seeing it the first time either. > On the other hand if you really mean "perhaps and maybe" then I'd prefer > to leave it as it it. Your choice. btw: in the patch I suggest using printk_skip_level instead of the direct test here: + cp = kdb_buffer; + if (cp[0] == KERN_SOH_ASCII && cp[1] != '\0') + cp += 2; so this could be cp = printk_skip_level(kdb_buffer); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/