Messages in this thread | | | Subject | Re: [RESEND PATCH 3.18-rc3] kdb: Avoid printing KERN_ levels to consoles | From | Joe Perches <> | Date | Thu, 06 Nov 2014 09:43:55 -0800 |
| |
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);
| |