linux/arch/sparc64/kernel
David S. Miller 93dae5b70e sparc64: Add global register dumping facility.
When a cpu really is stuck in the kernel, it can be often
impossible to figure out which cpu is stuck where.  The
worst case is when the stuck cpu has interrupts disabled.

Therefore, implement a global cpu state capture that uses
SMP message interrupts which are not disabled by the
normal IRQ enable/disable APIs of the kernel.

As long as we can get a sysrq 'y' to the kernel, we can
get a dump.  Even if the console interrupt cpu is wedged,
we can trigger it from userspace using /proc/sysrq-trigger

The output is made compact so that this facility is more
useful on high cpu count systems, which is where this
facility will likely find itself the most useful :)

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-05-20 00:33:45 -07:00
..
asm-offsets.c kbuild: frv,m32r,sparc64 introduce fake asm-offsets.h file 2005-09-09 22:47:53 +02:00
audit.c sparc64: Kill CONFIG_SPARC32_COMPAT 2008-04-26 21:41:19 -07:00
auxio.c [SPARC/64]: Move of_platform_driver initialisations: arch/sparc{,64}. 2007-10-13 21:53:12 -07:00
central.c [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
cherrs.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
chmc.c [SPARC64]: Fix memory controller register access when non-SMP. 2007-12-07 01:10:14 -08:00
compat_audit.c [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
cpu.c [SPARC64]: Fix sparse warnings in arch/sparc64/kernel/{cpu,setup}.c 2008-03-25 21:51:40 -07:00
ds.c [SPARC64]: Use shorter list_splice_init() for brevity. 2008-03-23 22:48:29 -07:00
dtlb_miss.S [SPARC64]: More TLB/TSB handling fixes. 2006-03-20 01:13:34 -08:00
dtlb_prot.S sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
ebus.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
entry.h [SPARC64]: %l6 trap return handling no longer necessary. 2008-04-24 03:15:22 -07:00
etrap.S sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
fpu_traps.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
getsetcc.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
head.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
helpers.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
hvapi.c [SPARC64]: Report proper system soft state to the hypervisor. 2007-05-29 02:49:29 -07:00
hvcalls.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
hvtramp.S [SPARC64]: Fix cpu trampoline et al. mismatch warnings. 2008-02-20 22:22:16 -08:00
idprom.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
init_task.c [PATCH] take init_files to fs/file.c 2008-05-16 17:22:20 -04:00
iommu_common.h sparc64: remove unused calc_npages() in iommu_common.h 2008-03-28 15:56:01 -07:00
iommu.c [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
irq.c sparc64: Fix wedged irq regression. 2008-04-26 21:41:15 -07:00
itlb_miss.S [SPARC64]: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler. 2007-05-29 02:50:15 -07:00
ivec.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
kgdb.c sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
kprobes.c [SPARC64]: Fix sparse warnings wrt. __show_regs(). 2008-02-19 20:48:58 -08:00
ktlb.S [SPARC64]: Fix build with SPARSEMEM_VMEMMAP disabled. 2008-01-12 21:52:16 -08:00
ldc.c [SPARC64]: Missing mdesc_release() in ldc_init(). 2007-12-05 05:37:55 -08:00
Makefile sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
mdesc.c [SPARC64]: Initialize MDESC earlier and use lmb_alloc() 2008-04-23 23:32:12 -07:00
misctrap.S sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
module.c [SPARC]: Remove duplicate includes. 2007-11-06 21:23:11 -08:00
of_device.c sparc64: Do not ignore 'pmu' device ranges. 2008-04-26 21:41:20 -07:00
pci_common.c sparc64: Stop creating dummy root PCI host controller devices. 2008-05-02 05:22:50 -07:00
pci_fire.c [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
pci_impl.h sparc64: Stop creating dummy root PCI host controller devices. 2008-05-02 05:22:50 -07:00
pci_msi.c [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
pci_psycho.c [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
pci_sabre.c [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
pci_schizo.c [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
pci_sun4v_asm.S [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci_sun4v.c [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
pci_sun4v.h [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci.c sparc64: Stop creating dummy root PCI host controller devices. 2008-05-02 05:22:50 -07:00
power.c [SPARC64]: Fix sparse warnings wrt. machine_alt_power_off(). 2008-02-19 20:39:18 -08:00
process.c sparc64: Add global register dumping facility. 2008-05-20 00:33:45 -07:00
prom.c [SPARC64]: Use lmb_alloc() for PROM device tree. 2008-04-23 23:32:11 -07:00
ptrace.c sparc: Fix debugger syscall restart interactions. 2008-05-11 02:07:19 -07:00
rtrap.S sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
sbus.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
setup.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
signal32.c sparc64: Use a TS_RESTORE_SIGMASK 2008-05-12 22:45:15 -07:00
signal.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
smp.c sparc64: Add global register dumping facility. 2008-05-20 00:33:45 -07:00
sparc64_ksyms.c sparc64: Kill unused local ISA bus layer. 2008-04-26 21:41:23 -07:00
spiterrs.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
sstate.c [SPARC64]: Report proper system soft state to the hypervisor. 2007-05-29 02:49:29 -07:00
stacktrace.c [SPARC64]: Detect trap frames in stack backtraces. 2008-04-24 03:28:52 -07:00
starfire.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
sun4v_ivec.S [SPARC64]: Use sun4v VIRQ interfaces as intended. 2007-10-13 21:53:16 -07:00
sun4v_tlb_miss.S [SPARC64]: %l6 trap return handling no longer necessary. 2008-04-24 03:15:22 -07:00
sys32.S sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
sys_sparc32.c sparc: Fix mremap address range validation. 2008-05-12 16:33:33 -07:00
sys_sparc.c sparc: Fix mremap address range validation. 2008-05-12 16:33:33 -07:00
syscalls.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
sysfs.c [SPARC64]: Add NUMA support. 2008-04-23 23:32:17 -07:00
systbls.h [SPARC]: Remove SunOS and Solaris binary support. 2008-04-21 15:10:15 -07:00
systbls.S sparc64: use compat_sys_utimes instead of home-grown local copy. 2008-05-05 12:32:39 -07:00
time.c [SPARC64]: Fix sparse warnings in arch/sparc64/kernel/time.c 2008-03-26 01:11:55 -07:00
trampoline.S sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
traps.c [SPARC64]: Detect trap frames in stack backtraces. 2008-04-24 03:28:52 -07:00
tsb.S [SPARC64]: %l6 trap return handling no longer necessary. 2008-04-24 03:15:22 -07:00
ttable.S sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
una_asm.S [SPARC64]: Mark __ex_table section correctly. 2006-03-04 23:23:56 -08:00
unaligned.c sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
us2e_cpufreq.c [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core 2007-10-04 18:40:57 -04:00
us3_cpufreq.c [SPARC64]: kzalloc() conversion 2006-03-20 01:14:19 -08:00
utrap.S sparc64: Split entry.S up into seperate files. 2008-04-28 00:47:20 -07:00
vio.c [SPARC64]: Fix of section mismatch warnings. 2008-01-21 22:34:30 -08:00
viohs.c viohs: extern on function definition 2007-07-26 11:11:56 -07:00
visemul.c [SPARC64]: Call do_mathemu on illegal instruction traps too. 2006-12-10 02:39:32 -08:00
vmlinux.lds.S all archs: consolidate init and exit sections in vmlinux.lds.h 2008-01-28 23:21:17 +01:00
winfixup.S [SPARC64]: %l6 trap return handling no longer necessary. 2008-04-24 03:15:22 -07:00