Re: [PATCH 02/31] Add debugger entry points for X86

From: Jeffrey Merkey
Date: Thu Jan 28 2016 - 15:22:25 EST


On 1/28/16, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> On 01/28/16 11:46, Jeffrey Merkey wrote:
>> This patch series 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: Jeffrey Merkey <jeffmerkey@xxxxxxxxx>
>> ---
>> arch/x86/include/asm/kdebug.h | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/arch/x86/include/asm/kdebug.h
>> b/arch/x86/include/asm/kdebug.h
>> index e5f5dc9..cbe9004 100644
>> --- a/arch/x86/include/asm/kdebug.h
>> +++ b/arch/x86/include/asm/kdebug.h
>> @@ -3,6 +3,11 @@
>>
>> #include <linux/notifier.h>
>>
>> +static inline void arch_breakpoint(void)
>> +{
>> + asm(" int $3");
>> +}
>> +
>> struct pt_regs;
>>
>
> Even though apparently gas changed "int $3" to "int3" the latter is
> actually a different instruction (with subtly different behavior) and
> this may very well be corrected in gas at a future date.
>
> So please encode this as "int3". It should also be "asm volatile" since
> it has side effects unbeknownst to the compiler.
>
> -hpa
>
>

Yes sir, I'll add that to the to do list and resubmit after I get all
the comments back for all the changes. It may be important to note
that the arch_kgdb_breakpoint also uses this same syntax and needs
also to be fixed.

Jeff