Message ID | 1454010468-29651-1-git-send-email-jeffmerkey@gmail.com |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
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
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 -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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 -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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
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
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(+)