linux/include/asm-sparc64
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
..
agp.h x86: remove flush_agp_mappings() 2008-01-30 13:34:07 +01:00
apb.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
asi.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
atomic.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
auxio.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
auxvec.h [SPARC]: Merge include/asm-sparc{,64}/auxvec.h 2008-02-09 04:00:03 -08:00
backoff.h [SPARC64]: Fix atomic backoff limit. 2008-03-19 01:04:48 -07:00
bbc.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
bitops.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
bpp.h [SPARC]: Merge asm-sparc{,64}/bpp.h 2008-02-09 04:00:12 -08:00
bug.h [SPARC]: Merge asm-sparc{,64}/bug.h 2008-02-09 04:00:32 -08:00
bugs.h [SPARC]: Merge asm-sparc{,64}/bugs.h 2008-02-09 04:00:37 -08:00
byteorder.h [SPARC]: Merge asm-sparc{,64}/byteorder.h 2008-02-09 04:17:28 -08:00
cache.h [SPARC]: Merge asm-sparc{,64}/cache.h 2008-02-09 04:17:37 -08:00
cacheflush.h [PATCH] Optimize D-cache alias handling on fork 2006-12-13 09:27:08 -08:00
chafsr.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
checksum.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
chmctrl.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
cmt.h
compat_signal.h Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
compat.h asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
cpudata.h [SPARC64]: Fix sparse warnings in arch/sparc64/kernel/{cpu,setup}.c 2008-03-25 21:51:40 -07:00
cputime.h [SPARC]: Merge asm-sparc{,64}/cputime.h 2008-02-09 04:17:47 -08:00
current.h [SPARC]: Merge asm-sparc{,64}/current.h 2008-02-09 04:17:54 -08:00
dcr.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
dcu.h [SPARC64]: Fix sparse errors in arch/sparc64/kernel/traps.c 2008-03-26 00:19:43 -07:00
delay.h [SPARC64]: More sensible udelay implementation. 2007-07-16 04:05:02 -07:00
device.h [SPARC]: Merge asm-sparc{,64}/device.h 2008-02-09 04:18:02 -08:00
display7seg.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
div64.h [SPARC]: Merge asm-sparc{,64}/div64.h 2008-02-09 04:18:08 -08:00
dma-mapping.h [SPARC64]: Fix OOPS in dma_sync_*_for_device() 2007-12-20 01:29:45 -08:00
dma.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
ebus.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
elf.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
emergency-restart.h [SPARC]: Merge asm-sparc{,64}/emergency-restart.h 2008-02-09 04:18:14 -08:00
envctrl.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
errno.h [SPARC]: Merge asm-sparc{,64}/errno.h 2008-02-09 04:18:23 -08:00
estate.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
fb.h [SPARC]: Merge asm-sparc{,64}/fb.h 2008-02-09 04:18:29 -08:00
fbio.h [SPARC]: Mark SBUS framebuffer ioctls as IGNORE in compat_ioctl.c 2007-07-30 00:27:36 -07:00
fcntl.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
fhc.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
floppy.h sparc64: Kill unused local ISA bus layer. 2008-04-26 21:41:23 -07:00
fpumacro.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
futex.h asm-*/futex.h should include linux/uaccess.h 2008-04-30 08:29:52 -07:00
hardirq.h [SPARC64]: Move over to GENERIC_HARDIRQS. 2006-06-20 01:23:32 -07:00
head.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
hugetlb.h hugetlbfs: common code update for s390 2008-04-28 08:58:25 -07:00
hvtramp.h [SPARC64]: Remove most limitations to kernel image size. 2008-03-21 17:01:38 -07:00
hw_irq.h [SPARC64]: Minor irq handling cleanups. 2006-12-17 14:06:56 -08:00
hypervisor.h [SPARC64]: Fix two kernel linear mapping setup bugs. 2007-12-13 06:13:38 -08:00
ide.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
idprom.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
intr_queue.h [SPARC64]: Sun4v interrupt queue register definitions. 2006-03-20 01:11:44 -08:00
io.h [SPARC64]: Add SG merging support back into IOMMU code. 2008-02-09 03:15:36 -08:00
ioctl.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
ioctls.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
iommu.h [SPARC64]: NUMA device infrastructure. 2008-04-23 23:32:16 -07:00
ipcbuf.h
irq_regs.h [PATCH] sparc64 pt_regs fixes 2006-10-08 12:32:35 -07:00
irq.h [SPARC64]: Fix sparse warnings in arch/sparc64/kernel/irq.c 2008-03-26 00:37:51 -07:00
irqflags.h [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
Kbuild [SPARC]: Remove SunOS and Solaris binary support. 2008-04-21 15:10:15 -07:00
kdebug.h x86: optimize page faults like all other achitectures and kill notifier cruft 2007-10-16 09:42:50 -07:00
kgdb.h sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
kmap_types.h
kprobes.h Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00
kvm.h kvm: provide kvm.h for all architecture: fixes headers_install 2008-04-02 15:28:18 -07:00
ldc.h [SPARC64]: Fix build regressions added by dr-cpu changes. 2007-07-16 04:04:49 -07:00
linkage.h
lmb.h [LIB]: Make PowerPC LMB code generic so sparc64 can use it too. 2008-02-13 16:56:49 -08:00
local.h local_t: sparc64 cleanup 2007-05-08 11:15:20 -07:00
lsu.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
mc146818rtc.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
mdesc.h [SPARC64]: Add basic infrastructure for MD add/remove notification. 2007-07-18 01:19:51 -07:00
mman.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
mmu_context.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
mmu.h consolidate asm/const.h to linux/const.h 2007-05-08 11:15:13 -07:00
mmzone.h [SPARC64]: Add NUMA support. 2008-04-23 23:32:17 -07:00
module.h
mostek.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
msgbuf.h
mutex.h [PATCH] mutex subsystem, add default include/asm-*/mutex.h files 2006-01-09 15:59:19 -08:00
namei.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
ns87303.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
of_device.h [SPARC]: Merge include/asm-sparc{,64}/of_device.h 2008-02-09 03:58:32 -08:00
of_platform.h [SPARC]: Remove of_platform_device_create 2008-02-09 03:49:58 -08:00
openprom.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
openpromio.h
oplib.h [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
page.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
param.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
parport.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
pci.h [SPARC64]: Implement pci_resource_to_user() 2007-12-26 19:33:46 -08:00
percpu.h SPARC64: use generic percpu 2008-01-30 23:27:58 +01:00
perfctr.h
pgalloc.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
pgtable.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
pil.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h asm-*/posix_types.h: scrub __GLIBC__ 2008-02-08 09:22:34 -08:00
processor.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
prom.h [SPARC]: Merge include/asm-sparc{,64}/prom.h 2008-02-09 03:56:20 -08:00
psrcompat.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
pstate.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
ptrace.h sparc64: Add global register dumping facility. 2008-05-20 00:33:45 -07:00
reboot.h [SPARC64]: Fix sparse warnings wrt. machine_alt_power_off(). 2008-02-19 20:39:18 -08:00
reg.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
resource.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
rtc.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
rwsem-const.h
rwsem.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
sbus.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
scatterlist.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
scratchpad.h [SPARC64]: Sun4v scratchpad register layout. 2006-03-20 01:11:44 -08:00
seccomp.h [SPARC64]: Add missing asm-sparc64/seccomp.h file. 2005-07-11 13:44:56 -07:00
sections.h
semaphore.h Generic semaphore implementation 2008-04-17 10:42:34 -04:00
sembuf.h
setup.h [SPARC64]: Increase command line size to 2048 like other arches. 2007-02-12 15:15:47 -08:00
sfafsr.h consolidate asm/const.h to linux/const.h 2007-05-08 11:15:13 -07:00
sfp-machine.h [MATH-EMU]: Fix underflow exception reporting. 2007-08-16 22:59:49 -07:00
shmbuf.h
shmparam.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
sigcontext.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
siginfo.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
signal.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
smp.h sparc64: Add global register dumping facility. 2008-05-20 00:33:45 -07:00
socket.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h [SPARC64]: Decrease SECTION_SIZE_BITS to 30. 2008-04-23 23:32:13 -07:00
spinlock_types.h [PATCH] spinlock consolidation 2005-09-10 10:06:21 -07:00
spinlock.h [PATCH] Directed yield: cpu_relax variants for spinlocks and rw-locks 2006-10-01 00:39:21 -07:00
spitfire.h [SPARC64]: Remove most limitations to kernel image size. 2008-03-21 17:01:38 -07:00
sstate.h [SPARC64]: Report proper system soft state to the hypervisor. 2007-05-29 02:49:29 -07:00
stacktrace.h [SPARC64]: Make save_stack_trace() more efficient. 2008-03-24 20:06:24 -07:00
starfire.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
stat.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
statfs.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
string.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
sunbpp.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
syscalls.h [SPARC64]: More sparse warning fixes in process.c 2008-02-19 21:25:50 -08:00
system.h sparc: Add kgdb support. 2008-04-29 02:38:50 -07:00
termbits.h [SPARC]: Support for new termios. 2007-10-17 19:38:10 -07:00
termios.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
thread_info.h sparc64: Use a TS_RESTORE_SIGMASK 2008-05-12 22:45:15 -07:00
timer.h [SPARC64]: Fix sparse warnings in arch/sparc64/kernel/time.c 2008-03-26 01:11:55 -07:00
timex.h read_current_timer() cleanups 2008-02-06 10:41:02 -08:00
tlb.h add mm argument to pte/pmd/pud/pgd_free 2008-02-05 09:44:18 -08:00
tlbflush.h remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
topology.h [SPARC64]: Add NUMA support. 2008-04-23 23:32:17 -07:00
tsb.h [SPARC64]: Fix two bugs wrt. kernel 4MB TSB. 2007-05-29 02:51:38 -07:00
ttable.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
types.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
uaccess.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
uctx.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
unaligned.h kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
unistd.h [SPARC]: Remove SunOS and Solaris binary support. 2008-04-21 15:10:15 -07:00
upa.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
user.h [SPARC]: Remove SunOS and Solaris binary support. 2008-04-21 15:10:15 -07:00
utrap.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
vga.h [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
vio.h [SPARC64]: Use "is_power_of_2" macro for simplicity. 2007-11-07 02:24:33 -08:00
visasm.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
watchdog.h sparc64: remove CVS keywords 2008-05-20 00:33:43 -07:00
xor.h [SPARC64]: Do not assume sun4v chips have load-twin/store-init support. 2007-08-08 17:33:45 -07:00