aboutsummaryrefslogtreecommitdiff
path: root/include/linux/kdb.h
AgeCommit message (Collapse)AuthorFilesLines
2013-10-03kdb: Add support for external NMI handler to call KGDB/KDBMike Travis1-0/+1
This patch adds a kgdb_nmicallin() interface that can be used by external NMI handlers to call the KGDB/KDB handler. The primary need for this is for those types of NMI interrupts where all the CPUs have already received the NMI signal. Therefore no send_IPI(NMI) is required, and in fact it will cause a 2nd unhandled NMI to occur. This generates the "Dazed and Confuzed" messages. Since all the CPUs are getting the NMI at roughly the same time, it's not guaranteed that the first CPU that hits the NMI handler will manage to enter KGDB and set the dbg_master_lock before the slaves start entering. The new argument "send_ready" was added for KGDB to signal the NMI handler to release the slave CPUs for entry into KGDB. Signed-off-by: Mike Travis <[email protected]> Acked-by: Jason Wessel <[email protected]> Reviewed-by: Dimitri Sivanich <[email protected]> Reviewed-by: Hedi Berriche <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
2012-09-26kdb: Turn KGDB_KDB=n stubs into static inlinesAnton Vorontsov1-13/+16
This makes the stubs actually usable, since e.g. 'foo = kdb_register();' leads to build errors in !KGDB_KDB case. Plus, with static inlines we do type checking. Signed-off-by: Anton Vorontsov <[email protected]> Acked-by: Jason Wessel <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2012-07-31kdb: Remove unused KDB_FLAG_ONLY_DO_DUMPJason Wessel1-2/+0
This code cleanup was missed in the original kdb merge, and this code is simply not used at all. The code that was previously used to set the KDB_FLAG_ONLY_DO_DUMP was removed prior to the initial kdb merge. Signed-off-by: Jason Wessel <[email protected]>
2011-10-31treewide: use __printf not __attribute__((format(printf,...)))Joe Perches1-6/+3
Standardize the style for compiler based printf format verification. Standardized the location of __printf too. Done via script and a little typing. $ grep -rPl --include=*.[ch] -w "__attribute__" * | \ grep -vP "^(tools|scripts|include/linux/compiler-gcc.h)" | \ xargs perl -n -i -e 'local $/; while (<>) { s/\b__attribute__\s*\(\s*\(\s*format\s*\(\s*printf\s*,\s*(.+)\s*,\s*(.+)\s*\)\s*\)\s*\)/__printf($1, $2)/g ; print; }' [[email protected]: revert arch bits] Signed-off-by: Joe Perches <[email protected]> Cc: "Kirill A. Shutemov" <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-07-26atomic: use <linux/atomic.h>Arun Sharma1-1/+1
This allows us to move duplicated code in <asm/atomic.h> (atomic_inc_not_zero() for now) to <linux/atomic.h> Signed-off-by: Arun Sharma <[email protected]> Reviewed-by: Eric Dumazet <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: David Miller <[email protected]> Cc: Eric Dumazet <[email protected]> Acked-by: Mike Frysinger <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2010-10-22kdb,kgdb: fix sparse fixupsJason Wessel1-0/+8
Fix the following sparse warnings: kdb_main.c:328:5: warning: symbol 'kdbgetu64arg' was not declared. Should it be static? kgdboc.c:246:12: warning: symbol 'kgdboc_early_init' was not declared. Should it be static? kgdb.c:652:26: warning: incorrect type in argument 1 (different address spaces) kgdb.c:652:26: expected void const *ptr kgdb.c:652:26: got struct perf_event *[noderef] <asn:3>*pev The one in kgdb.c required the (void * __force) because of the return code from register_wide_hw_breakpoint looking like: return (void __percpu __force *)ERR_PTR(err); Signed-off-by: Jason Wessel <[email protected]>
2010-10-22kdb: Allow kernel loadable modules to add kdb shell functionsJason Wessel1-0/+43
In order to allow kernel modules to dynamically add a command to the kdb shell the kdb_register, kdb_register_repeat, kdb_unregister, and kdb_printf need to be exported as GPL symbols. Any kernel module that adds a dynamic kdb shell function should only need to include linux/kdb.h. Signed-off-by: Jason Wessel <[email protected]>
2010-08-05vt,console,kdb: automatically set kdb LINES variableJason Wessel1-0/+4
The kernel console interface stores the number of lines it is configured to use. The kdb debugger can greatly benefit by knowing how many lines there are on the console for the pager functionality without having the end user compile in the setting or have to repeatedly change it at run time. Signed-off-by: Jason Wessel <[email protected]> Signed-off-by: Jesse Barnes <[email protected]> CC: David Airlie <[email protected]> CC: Andrew Morton <[email protected]>
2010-05-20printk,kdb: capture printk() when in kdb shellJason Wessel1-0/+3
Certain calls from the kdb shell will call out to printk(), and any of these calls should get vectored back to the kdb_printf() so that the kdb pager and processing can be used, as well as to properly channel I/O to the polled I/O devices. CC: Randy Dunlap <[email protected]> Signed-off-by: Jason Wessel <[email protected]> Acked-by: Andrew Morton <[email protected]>
2010-05-20kgdb,8250,pl011: Return immediately from console pollJason Wessel1-0/+1
The design of the kdb shell requires that every device that can provide input to kdb have a polling routine that exits immediately if there is no character available. This is required in order to get the page scrolling mechanism working. Changing the kernel debugger I/O API to require all polling character routines to exit immediately if there is no data allows the kernel debugger to process multiple input channels. NO_POLL_CHAR will be the return code to the polling routine when ever there is no character available. CC: [email protected] Signed-off-by: Jason Wessel <[email protected]>
2010-05-20kdb: core for kgdb back end (1 of 2)Jason Wessel1-0/+113
This patch contains only the kdb core. Because the change set was large, it was split. The next patch in the series includes the instrumentation into the core kernel which are mainly helper functions for kdb. This work is directly derived from kdb v4.4 found at: ftp://oss.sgi.com/projects/kdb/download/v4.4/ The kdb internals have been re-organized to make them mostly platform independent and to connect everything to the debug core which is used by gdbstub (which has long been known as kgdb). The original version of kdb was 58,000 lines worth of changes to support x86. From that implementation only the kdb shell, and basic commands for memory access, runcontrol, lsmod, and dmesg where carried forward. This is a generic implementation which aims to cover all the current architectures using the kgdb core: ppc, arm, x86, mips, sparc, sh and blackfin. More archictectures can be added by implementing the architecture specific kgdb functions. [[email protected]: Compile fix with hugepages enabled] [[email protected]: Clean breakpoint code renaming kdba_ -> kdb_] [[email protected]: fix new line after printing registers] [[email protected]: Remove the concept of global vs. local breakpoints] [[email protected]: Rework kdb_si_swapinfo to use more generic name] [[email protected]: fix the information dump macros, remove 'arch' from the names] [[email protected]: include fixup to include linux/slab.h] CC: [email protected] Signed-off-by: Jason Wessel <[email protected]> Signed-off-by: Martin Hicks <[email protected]>