lkml.org 
[lkml]   [2014]   [Nov]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 3.18-rc3] kdb: Avoid printing KERN_ levels to consoles
On 07/11/14 17:16, Joe Perches wrote:
> On Fri, 2014-11-07 at 16:50 +0000, Daniel Thompson wrote:
>> On 07/11/14 16:04, Joe Perches wrote:
>>> why insert KERN_INFO?
>>
>> vkdb_printf() and printk() can appear either way round in a stack
>> trace. Each is capable of calling the other and a flag (kdb_trap_printk)
>> is used to prevent mutual recursion.
>
> I see.
>
>> A complete solution would require a means to know whether vkdb_printf()
>> were entered directly or from printk(). A flag passed to vkdb_printf()
>> would achieve this. I'll take a look.
>
> That bit seems pretty simple and sensible.
>
> I don't know this code at all but would it be better if
> the kdb_trap_printk accesses were converted to atomic_<foo>?
>
> Might this bit in vkdb_printf:
>
> saved_trap_printk = kdb_trap_printk;
> kdb_trap_printk = 0;
>
> be better atomic_xchg?
>
> and the kdb_trap_printk++ bits as atomic_inc, etc...

At present I don't think it would make any difference. All of this code
is single threaded; interrupts are masked and all other cores are
quiesced and held in a loop as part of the debugger entry protocol.

If a full asynchronous mode were ever added to kdb, meaning the ability
to run some some commands without halting all the other cores, then we'd
have to review quite a lot of code, including this bit. However in that
case I think that flags like kdb_trap_printk might actually end up as
per_cpu variables rather than atomics.


\
 
 \ /
  Last update: 2014-11-07 18:41    [W:0.041 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site