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


Groups > linux.kernel > #1320983 > unrolled thread

[PATCH 30/31] Add debugger entry points for SPARC

Started byJeffrey Merkey <jeffmerkey@gmail.com>
First post2016-01-28 20:50 +0100
Last post2016-01-28 22:50 +0100
Articles 5 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 30/31] Add debugger entry points for SPARC Jeffrey Merkey <jeffmerkey@gmail.com> - 2016-01-28 20:50 +0100
    Re: [PATCH 30/31] Add debugger entry points for SPARC Sam Ravnborg <sam@ravnborg.org> - 2016-01-28 22:40 +0100
      Re: [PATCH 30/31] Add debugger entry points for SPARC Jeffrey Merkey <jeffmerkey@gmail.com> - 2016-01-28 22:40 +0100
    Re: [PATCH 30/31] Add debugger entry points for SPARC kbuild test robot <lkp@intel.com> - 2016-01-28 22:40 +0100
    Re: [PATCH 30/31] Add debugger entry points for SPARC kbuild test robot <lkp@intel.com> - 2016-01-28 22:50 +0100

#1320983 — [PATCH 30/31] Add debugger entry points for SPARC

FromJeffrey Merkey <jeffmerkey@gmail.com>
Date2016-01-28 20:50 +0100
Subject[PATCH 30/31] Add debugger entry points for SPARC
Message-ID<qW0JQ-8ef-33@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/sparc/include/asm/kdebug.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/sparc/include/asm/kdebug.h b/arch/sparc/include/asm/kdebug.h
index 8d12581..a4b78d3 100644
--- a/arch/sparc/include/asm/kdebug.h
+++ b/arch/sparc/include/asm/kdebug.h
@@ -5,4 +5,9 @@
 #else
 #include <asm/kdebug_32.h>
 #endif
+
+static inline void arch_breakpoint(void)
+{
+	asm("ta	$0x7d");
+}
 #endif
-- 
1.8.3.1

[toc] | [next] | [standalone]


#1321078

FromSam Ravnborg <sam@ravnborg.org>
Date2016-01-28 22:40 +0100
Message-ID<qW2si-Yt-9@gated-at.bofh.it>
In reply to#1320983
Hi Jeff.

> +++ b/arch/sparc/include/asm/kdebug.h
> @@ -5,4 +5,9 @@
>  #else
>  #include <asm/kdebug_32.h>
>  #endif
> +
> +static inline void arch_breakpoint(void)
> +{
> +	asm("ta	$0x7d");
> +}
>  #endif
There seems to be some debugger infrastructure present already for kgdb,
but I assume this cannot be used.
Anyway - trap 0x7d is a debugger trap in sparc32.
If CONFIG_KGDB is not defined then 0x7d is just a regular BAD_TRAP.

For sparc64 trap 0x7d is something different.
I did not conclude what was the right choice for neither.

	Sam

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


#1321083

FromJeffrey Merkey <jeffmerkey@gmail.com>
Date2016-01-28 22:40 +0100
Message-ID<qW2sj-Yt-27@gated-at.bofh.it>
In reply to#1321078
On 1/28/16, Sam Ravnborg <sam@ravnborg.org> wrote:
> Hi Jeff.
>
>> +++ b/arch/sparc/include/asm/kdebug.h
>> @@ -5,4 +5,9 @@
>>  #else
>>  #include <asm/kdebug_32.h>
>>  #endif
>> +
>> +static inline void arch_breakpoint(void)
>> +{
>> +	asm("ta	$0x7d");
>> +}
>>  #endif
> There seems to be some debugger infrastructure present already for kgdb,
> but I assume this cannot be used.
> Anyway - trap 0x7d is a debugger trap in sparc32.
> If CONFIG_KGDB is not defined then 0x7d is just a regular BAD_TRAP.
>
> For sparc64 trap 0x7d is something different.
> I did not conclude what was the right choice for neither.
>
> 	Sam
>

I'll go research that one.  If I am unsure I'll no-op the function for
sparc and let you guys decide how architecturally you wish to handle
that.

:-)

Jeff

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


#1321080

Fromkbuild test robot <lkp@intel.com>
Date2016-01-28 22:40 +0100
Message-ID<qW2si-Yt-17@gated-at.bofh.it>
In reply to#1320983

[Multipart message — attachments visible in raw view] — view raw

Hi Jeffrey,

[auto build test ERROR on v4.5-rc1]
[also build test ERROR on next-20160128]
[cannot apply to tip/x86/core]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Jeffrey-Merkey/Add-hard-soft-lockup-debugger-entry-points/20160129-035852
config: sparc64-defconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=sparc64 

All errors (new ones prefixed by >>):

   kernel/built-in.o: In function `watchdog_timer_fn':
>> watchdog.c:(.text+0x736ec): undefined reference to `$0x7d'
   watchdog.c:(.text+0x736ec): relocation truncated to fit: R_SPARC_13 against undefined symbol `$0x7d'

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

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


#1321086

Fromkbuild test robot <lkp@intel.com>
Date2016-01-28 22:50 +0100
Message-ID<qW2BY-13z-11@gated-at.bofh.it>
In reply to#1320983

[Multipart message — attachments visible in raw view] — view raw

Hi Jeffrey,

[auto build test ERROR on v4.5-rc1]
[also build test ERROR on next-20160128]
[cannot apply to tip/x86/core]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Jeffrey-Merkey/Add-hard-soft-lockup-debugger-entry-points/20160129-035852
config: sparc-defconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=sparc 

All errors (new ones prefixed by >>):

   arch/sparc/include/asm/kdebug.h: Assembler messages:
>> arch/sparc/include/asm/kdebug.h:9: Error: Unknown opcode: `static'
>> arch/sparc/include/asm/kdebug.h:10: Error: junk at end of line, first unrecognized character is `{'
>> arch/sparc/include/asm/kdebug.h:11: Error: Unknown opcode: `asm("ta	$0x7d")'
   arch/sparc/include/asm/kdebug.h:12: Error: junk at end of line, first unrecognized character is `}'

vim +9 arch/sparc/include/asm/kdebug.h

     3	#if defined(__sparc__) && defined(__arch64__)
     4	#include <asm/kdebug_64.h>
     5	#else
     6	#include <asm/kdebug_32.h>
     7	#endif
     8	
   > 9	static inline void arch_breakpoint(void)
  > 10	{
  > 11		asm("ta	$0x7d");
    12	}
    13	#endif

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web