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


Groups > linux.kernel > #1321001 > unrolled thread

[PATCH 17/31] Add debugger entry points for ARM

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

Back to article view | Back to linux.kernel


Contents

  [PATCH 17/31] Add debugger entry points for ARM Jeffrey Merkey <jeffmerkey@gmail.com> - 2016-01-28 21:00 +0100
    Re: [PATCH 17/31] Add debugger entry points for ARM kbuild test robot <lkp@intel.com> - 2016-01-28 22:30 +0100

#1321001 — [PATCH 17/31] Add debugger entry points for ARM

FromJeffrey Merkey <jeffmerkey@gmail.com>
Date2016-01-28 21:00 +0100
Subject[PATCH 17/31] Add debugger entry points for ARM
Message-ID<qW0Tx-8hX-27@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/arm/include/asm/kdebug.h | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 arch/arm/include/asm/kdebug.h

diff --git a/arch/arm/include/asm/kdebug.h b/arch/arm/include/asm/kdebug.h
new file mode 100644
index 0000000..c60dad1
--- /dev/null
+++ b/arch/arm/include/asm/kdebug.h
@@ -0,0 +1,5 @@
+
+static inline void arch_breakpoint(void)
+{
+	asm(__inst_arm(0xe7ffdeff));
+}
-- 
1.8.3.1

[toc] | [next] | [standalone]


#1321073

Fromkbuild test robot <lkp@intel.com>
Date2016-01-28 22:30 +0100
Message-ID<qW2iC-UG-23@gated-at.bofh.it>
In reply to#1321001

[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: arm-sa1100 (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=arm 

All errors (new ones prefixed by >>):

   In file included from arch/arm/kernel/traps.c:21:0:
   include/linux/kdebug.h:20:16: warning: 'enum die_val' declared inside parameter list
            struct pt_regs *regs, long err, int trap, int sig);
                   ^
   include/linux/kdebug.h:20:16: warning: its scope is only this definition or declaration, which is probably not what you want
   arch/arm/kernel/traps.c: In function '__die':
>> arch/arm/kernel/traps.c:247:19: error: 'DIE_OOPS' undeclared (first use in this function)
     ret = notify_die(DIE_OOPS, str, regs, err, tsk->thread.trap_no, SIGSEGV);
                      ^
   arch/arm/kernel/traps.c:247:19: note: each undeclared identifier is reported only once for each function it appears in
>> arch/arm/kernel/traps.c:247:2: error: type of formal parameter 1 is incomplete
     ret = notify_die(DIE_OOPS, str, regs, err, tsk->thread.trap_no, SIGSEGV);
     ^
--
   In file included from include/linux/kdebug.h:4:0,
                    from kernel/notifier.c:1:
   arch/arm/include/asm/kdebug.h: In function 'arch_breakpoint':
>> arch/arm/include/asm/kdebug.h:4:6: error: expected string literal before '__inst_arm'
     asm(__inst_arm(0xe7ffdeff));
         ^
   In file included from kernel/notifier.c:1:0:
   include/linux/kdebug.h: At top level:
   include/linux/kdebug.h:20:16: warning: 'enum die_val' declared inside parameter list
            struct pt_regs *regs, long err, int trap, int sig);
                   ^
   include/linux/kdebug.h:20:16: warning: its scope is only this definition or declaration, which is probably not what you want
   kernel/notifier.c:537:16: warning: 'enum die_val' declared inside parameter list
            struct pt_regs *regs, long err, int trap, int sig)
                   ^
   kernel/notifier.c:536:37: error: parameter 1 ('val') has incomplete type
    int notrace notify_die(enum die_val val, const char *str,
                                        ^
   kernel/notifier.c: In function 'notify_die':
   kernel/notifier.c:550:1: warning: control reaches end of non-void function [-Wreturn-type]
    }
    ^

vim +/__inst_arm +4 arch/arm/include/asm/kdebug.h

     1	
     2	static inline void arch_breakpoint(void)
     3	{
   > 4		asm(__inst_arm(0xe7ffdeff));
     5	}

---
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