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?
Maybe.
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?
To be honest I'd happy to make the change if this is critical for you since almost anything is better than dumping a non-printable character (which does all sorts of different things depending on the combination of terminal emuluator/screen/minicom I need to access the board or emulator).
On the other hand if you really mean "perhaps and maybe" then I'd prefer to leave it as it it.
Daniel.