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 <[email protected]>
> ---
>  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

Reply via email to