Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1320976 > unrolled thread

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

Started byJeffrey Merkey <jeffmerkey@gmail.com>
First post2016-01-28 20:50 +0100
Last post2016-01-28 21:30 +0100
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 02/31] Add debugger entry points for X86 Jeffrey Merkey <jeffmerkey@gmail.com> - 2016-01-28 20:50 +0100
    Re: [PATCH 02/31] Add debugger entry points for X86 Jeffrey Merkey <jeffmerkey@gmail.com> - 2016-01-28 21:30 +0100
      Re: [PATCH 02/31] Add debugger entry points for X86 "H. Peter Anvin" <hpa@zytor.com> - 2016-01-28 22:20 +0100
    Re: [PATCH 02/31] Add debugger entry points for X86 "H. Peter Anvin" <hpa@zytor.com> - 2016-01-28 21:30 +0100

#1320976 — [PATCH 02/31] Add debugger entry points for X86

FromJeffrey Merkey <jeffmerkey@gmail.com>
Date2016-01-28 20:50 +0100
Subject[PATCH 02/31] Add debugger entry points for X86
Message-ID<qW0JQ-8ef-19@gated-at.bofh.it>
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@gmail.com>
---
 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;
 
 /* Grossly misnamed. */
-- 
1.8.3.1

[toc] | [next] | [standalone]


#1321029

FromJeffrey Merkey <jeffmerkey@gmail.com>
Date2016-01-28 21:30 +0100
Message-ID<qW1my-jc-5@gated-at.bofh.it>
In reply to#1320976
On 1/28/16, H. Peter Anvin <hpa@zytor.com> 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@gmail.com>
>> ---
>>  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

[toc] | [prev] | [next] | [standalone]


#1321062

From"H. Peter Anvin" <hpa@zytor.com>
Date2016-01-28 22:20 +0100
Message-ID<qW28V-R2-1@gated-at.bofh.it>
In reply to#1321029
On 01/28/16 12:22, Jeffrey Merkey wrote:
> 
> 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.
> 

That would be a great addition to the patchset, then.

	-hpa

[toc] | [prev] | [next] | [standalone]


#1321032

From"H. Peter Anvin" <hpa@zytor.com>
Date2016-01-28 21:30 +0100
Message-ID<qW1my-jc-7@gated-at.bofh.it>
In reply to#1320976
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@gmail.com>
> ---
>  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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web