Re: [PATCH v2] Add hard/soft lockup debugger entry points

From: Jeff Merkey
Date: Tue Jan 26 2016 - 12:27:03 EST


On 1/26/16, Chris Metcalf <cmetcalf@xxxxxxxxxx> wrote:
> On 01/26/2016 12:04 PM, Jeff Merkey wrote:
>> This patch adds an export which can be set by system debuggers to direct
>> the hard lockup and soft lockup detector to trigger a breakpoint
>> exception
>> and enter a debugger if one is active. It is assumed that if someone
>> sets this variable, then an breakpoint handler of some sort will be
>> actively
>> loaded or registered via the notify die handler chain.
>>
>> This addition is extremely useful for debugging hard and soft lockups
>> real time and quickly from a console debugger.
>>
>> Signed-off-by: Jeff Merkey<linux.mdb@xxxxxxxxx>
>> ---
>> kernel/watchdog.c | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>
> You probably should reach out to someone who uses this stuff more
> regularly - I actually wonder if the kgdb_breakpoint() API is the
> right thing, though, not the internal arch_kgdb_breakpoint().
>
> Of course any of these strategies also assume you are building
> the kernel with CONFIG_KGDB set, and I'm pretty sure will cause
> your build to fail if it isn't. You likely need to guard this
> stuff locally within watchdog.c for !CONFIG_KGDB.
>
> --
> Chris Metcalf, EZChip Semiconductor
> http://www.ezchip.com
>
>

I'll go review that code carefully. What would ideal is to have the
breakpoint abstraction independent of kgdb entirely. That would not
be a simple patch but more involved. We really just need the
breakpoint instruction for each arch, not all of kgdb and it should
not depend on KGB being enabled. I looked over those includes and
this may work, but you are correct, it's not squeaky clean to do it
that way. I'll get to work on v3.

:-)

Jeff