Tejun Heo
a43cb95d54
dump_stack: unify debug information printed by show_regs()
...
show_regs() is inherently arch-dependent but it does make sense to print
generic debug information and some archs already do albeit in slightly
different forms. This patch introduces a generic function to print debug
information from show_regs() so that different archs print out the same
information and it's much easier to modify what's printed.
show_regs_print_info() prints out the same debug info as dump_stack()
does plus task and thread_info pointers.
* Archs which didn't print debug info now do.
alpha, arc, blackfin, c6x, cris, frv, h8300, hexagon, ia64, m32r,
metag, microblaze, mn10300, openrisc, parisc, score, sh64, sparc,
um, xtensa
* Already prints debug info. Replaced with show_regs_print_info().
The printed information is superset of what used to be there.
arm, arm64, avr32, mips, powerpc, sh32, tile, unicore32, x86
* s390 is special in that it used to print arch-specific information
along with generic debug info. Heiko and Martin think that the
arch-specific extra isn't worth keeping s390 specfic implementation.
Converted to use the generic version.
Note that now all archs print the debug info before actual register
dumps.
An example BUG() dump follows.
kernel BUG at /work/os/work/kernel/workqueue.c:4841!
invalid opcode: 0000 [#1 ] PREEMPT SMP DEBUG_PAGEALLOC
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.9.0-rc1-work+ #7
Hardware name: empty empty/S3992, BIOS 080011 10/26/2007
task: ffff88007c85e040 ti: ffff88007c860000 task.ti: ffff88007c860000
RIP: 0010:[<ffffffff8234a07e>] [<ffffffff8234a07e>] init_workqueues+0x4/0x6
RSP: 0000:ffff88007c861ec8 EFLAGS: 00010246
RAX: ffff88007c861fd8 RBX: ffffffff824466a8 RCX: 0000000000000001
RDX: 0000000000000046 RSI: 0000000000000001 RDI: ffffffff8234a07a
RBP: ffff88007c861ec8 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000000 R12: ffffffff8234a07a
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff88007dc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffff88015f7ff000 CR3: 00000000021f1000 CR4: 00000000000007f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Stack:
ffff88007c861ef8 ffffffff81000312 ffffffff824466a8 ffff88007c85e650
0000000000000003 0000000000000000 ffff88007c861f38 ffffffff82335e5d
ffff88007c862080 ffffffff8223d8c0 ffff88007c862080 ffffffff81c47760
Call Trace:
[<ffffffff81000312>] do_one_initcall+0x122/0x170
[<ffffffff82335e5d>] kernel_init_freeable+0x9b/0x1c8
[<ffffffff81c47760>] ? rest_init+0x140/0x140
[<ffffffff81c4776e>] kernel_init+0xe/0xf0
[<ffffffff81c6be9c>] ret_from_fork+0x7c/0xb0
[<ffffffff81c47760>] ? rest_init+0x140/0x140
...
v2: Typo fix in x86-32.
v3: CPU number dropped from show_regs_print_info() as
dump_stack_print_info() has been updated to print it. s390
specific implementation dropped as requested by s390 maintainers.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Jesper Nilsson <jesper.nilsson@axis.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Chris Metcalf <cmetcalf@tilera.com> [tile bits]
Acked-by: Richard Kuo <rkuo@codeaurora.org> [hexagon bits]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-30 17:04:02 -07:00
..
vdso32
powerpc: Add VDSO version of getcpu
2012-07-11 14:18:40 +10:00
vdso64
powerpc: Add VDSO version of getcpu
2012-07-11 14:18:40 +10:00
.gitignore
align.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
asm-offsets.c
Merge tag 'kvm-3.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm
2013-02-24 13:07:18 -08:00
audit.c
btext.c
powerpc: various straight conversions from module.h --> export.h
2011-10-31 19:30:44 -04:00
cacheinfo.c
cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem
2011-12-21 14:29:42 -08:00
cacheinfo.h
clock.c
powerpc: various straight conversions from module.h --> export.h
2011-10-31 19:30:44 -04:00
compat_audit.c
cpu_setup_6xx.S
powerpc: Fix some 6xx/7xxx CPU setup functions
2011-02-07 12:57:11 +11:00
cpu_setup_44x.S
powerpc/44x: Add support for the AMCC APM821xx SoC
2010-10-13 08:47:09 -04:00
cpu_setup_a2.S
powerpc: Enforce usage of RA 0-R31 where possible
2012-07-10 19:18:35 +10:00
cpu_setup_fsl_booke.S
powerpc/booke: Add CPU_FTR_EMB_HV check for e5500.
2012-09-12 14:57:09 -05:00
cpu_setup_pa6t.S
cpu_setup_power.S
powerpc: Set DSCR bit in FSCR setup
2013-03-05 16:56:30 +11:00
cpu_setup_ppc970.S
powerpc, KVM: Split HVMODE_206 cpu feature bit into separate HV and architecture bits
2011-07-12 13:16:58 +03:00
cputable.c
powerpc: Fix cputable entry for 970MP rev 1.0
2013-03-13 10:06:46 +11:00
crash.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
crash_dump.c
mm/ppc: use common help functions to free reserved pages
2013-04-29 15:54:30 -07:00
dbell.c
powerpc: Define differences between doorbells on book3e and book3s
2013-01-10 15:09:05 +11:00
dma-iommu.c
powerpc/dma-iommu: Fix IOMMU window check
2012-08-24 20:26:07 +10:00
dma-swiotlb.c
powerpc/swiotlb: Enable at early stage and disable if not necessary
2012-09-12 14:57:09 -05:00
dma.c
powerpc/kernel: Remove uses of abs_to_virt() and virt_to_abs()
2012-09-05 15:19:30 +10:00
entry_32.S
powerpc: Fix MAX_STACK_TRACE_ENTRIES too low warning for ppc32
2013-01-29 10:10:22 +11:00
entry_64.S
powerpc: add a missing label in resume_kernel
2013-04-15 17:29:48 +10:00
epapr_hcalls.S
KVM: PPC: ev_idle hcall support for e500 guests
2012-10-05 23:38:37 +02:00
epapr_paravirt.c
powerpc: define the conditions where the ePAPR idle hcall can be supported
2013-03-26 08:47:27 +11:00
exceptions-64e.S
powerpc: Move branch instruction from ACCOUNT_CPU_USER_ENTRY to caller
2013-01-10 17:00:59 +11:00
exceptions-64s.S
powerpc: make additional room in exception vector area
2013-03-25 17:14:21 +11:00
fadump.c
mm/ppc: use common help functions to free reserved pages
2013-04-29 15:54:30 -07:00
firmware.c
powerpc: fix implicit use of cache.h in kernel/firmware.c
2011-10-31 19:30:41 -04:00
fpu.S
powerpc: Add FP/VSX and VMX register load functions for transactional memory
2013-02-15 16:58:52 +11:00
fsl_booke_entry_mapping.S
powerpc/fsl-booke: Fix address issue when using relocatable kernels
2010-07-11 11:04:08 -05:00
ftrace.c
powerpc/ftrace: Trace function graph entry before updating index
2012-07-27 11:42:34 +10:00
head_8xx.S
powerpc: Call do_page_fault() with interrupts off
2012-03-09 10:55:08 +11:00
head_32.S
powerpc: Call do_page_fault() with interrupts off
2012-03-09 10:55:08 +11:00
head_40x.S
powerpc: Enable the Watchdog vector for 405
2013-01-10 14:43:46 +11:00
head_44x.S
Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm
2012-05-24 16:17:30 -07:00
head_64.S
powerpc/kexec: Add kexec "hold" support for Book3e processors
2013-01-10 17:00:39 +11:00
head_booke.h
KVM: PPC: booke: category E.HV (GS-mode) support
2012-04-08 12:51:19 +03:00
head_fsl_booke.S
powepc/booke: Separate out E.HV check and ivor setup code.
2012-09-12 14:57:08 -05:00
hw_breakpoint.c
powerpc: Change hardware breakpoint to allow longer ranges
2013-01-29 11:35:08 +11:00
ibmebus.c
powerpc: Remove all includes of <asm/abs_addr.h>
2012-09-05 15:19:33 +10:00
idle.c
powerpc: Use generic idle loop
2013-04-08 17:39:27 +02:00
idle_6xx.S
powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
2012-07-11 14:18:22 +10:00
idle_book3e.S
powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
2012-07-11 14:18:22 +10:00
idle_e500.S
powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
2012-07-11 14:18:22 +10:00
idle_power4.S
powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
2012-07-11 14:18:22 +10:00
idle_power7.S
powerpc/powernv: Always go into nap mode when CPU is offline
2012-09-05 16:05:20 +10:00
io-workarounds.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
io.c
powerpc: various straight conversions from module.h --> export.h
2011-10-31 19:30:44 -04:00
iomap.c
powerpc: switch to GENERIC_PCI_IOMAP
2011-11-28 21:13:18 +02:00
iommu.c
powerpc/iommu: Prevent false TCE leak message
2013-01-10 17:01:53 +11:00
irq.c
powerpc: Add code to handle soft-disabled doorbells on server
2013-01-10 15:09:07 +11:00
isa-bridge.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
jump_label.c
powerpc: Fix build breakage in jump_label.c
2011-11-16 14:25:19 +11:00
kgdb.c
Merge branch 'merge' into next
2013-01-29 11:33:37 +11:00
kprobes.c
hlist: drop the node parameter from iterators
2013-02-27 19:10:24 -08:00
kvm.c
mm/ppc: use common help functions to free reserved pages
2013-04-29 15:54:30 -07:00
kvm_emul.S
KVM: PPC: Not optimizing MSR_CE and MSR_ME with paravirt.
2012-05-30 11:43:11 +02:00
l2cr_6xx.S
Fix common misspellings
2011-03-31 11:26:23 -03:00
legacy_serial.c
Fix misspellings of "whether" in comments.
2012-11-19 14:31:35 +01:00
lparcfg.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
machine_kexec.c
powerpc+of: Rename the drivers/of prom_* functions to of_*
2012-11-15 12:56:52 +11:00
machine_kexec_32.c
treewide: convert uses of ATTRIB_NORETURN to __noreturn
2012-01-12 20:13:03 -08:00
machine_kexec_64.c
powerpc/kexec: Disable hard IRQ before kexec
2013-02-24 03:49:28 +11:00
Makefile
powerpc: Add helper functions for transactional memory context switching
2013-02-15 16:58:52 +11:00
misc.S
powerpc: switch to generic sys_execve()/kernel_execve()
2012-09-30 23:35:51 -04:00
misc_32.S
powerpc: split ret_from_fork
2012-09-30 23:31:19 -04:00
misc_64.S
powerpc: split ret_from_fork
2012-09-30 23:31:19 -04:00
module.c
powerpc: remove non-required uses of include <linux/module.h>
2011-10-31 19:30:44 -04:00
module_32.c
powerpc: Fix kernel panic during kernel module load
2012-06-08 19:59:08 +10:00
module_64.c
powerpc: Build kernel with -mcmodel=medium
2013-01-10 17:00:31 +11:00
msi.c
nvram_64.c
powerpc: remove cast for kmalloc/kzalloc return value
2013-03-18 14:16:00 +01:00
of_platform.c
powerpc/eeh: Fix crash when adding a device in a slot with DDW
2013-01-10 17:01:58 +11:00
paca.c
powerpc: Move boot_paca into early_setup
2013-02-15 16:54:48 +11:00
pci-common.c
powerpc/eeh: Fix crash when adding a device in a slot with DDW
2013-01-10 17:01:58 +11:00
pci_32.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
pci_64.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
pci_dn.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
pci_of_scan.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
pmc.c
bug.h: add include of it to various implicit C users
2012-02-29 17:15:08 -05:00
ppc32.h
powerpc: switch to generic old sigaction()
2013-02-03 18:16:10 -05:00
ppc_ksyms.c
Merge remote-tracking branch 'master' into queue
2012-10-29 19:15:32 -02:00
ppc_save_regs.S
Fix common misspellings
2011-03-31 11:26:23 -03:00
proc_powerpc.c
new helper: file_inode(file)
2013-02-22 23:31:31 -05:00
process.c
dump_stack: unify debug information printed by show_regs()
2013-04-30 17:04:02 -07:00
prom.c
Merge branch 'dt' into next
2012-11-15 15:02:44 +11:00
prom_init.c
powerpc: Fix -mcmodel=medium breakage in prom_init.c
2013-03-13 10:06:52 +11:00
prom_init_check.sh
powerpc: Relocate prom_init.c on 64bit
2013-01-10 17:00:25 +11:00
prom_parse.c
powerpc: remove non-required uses of include <linux/module.h>
2011-10-31 19:30:44 -04:00
ptrace.c
powerpc/ptrace: Fix brk.len used uninitialised
2013-03-17 12:35:06 +11:00
ptrace32.c
powerpc: Hardware breakpoints rewrite to handle non DABR breakpoint registers
2013-01-10 17:01:44 +11:00
reloc_32.S
powerpc: Process dynamic relocations for kernel
2011-12-20 10:21:08 -05:00
reloc_64.S
rtas-proc.c
powerpc: Move /proc/ppc64 to /proc/powerpc update
2010-01-15 13:26:17 +11:00
rtas-rtc.c
powerpc/rtas-rtc: remove sideeffects of printk_ratelimit
2011-06-29 15:30:43 +10:00
rtas.c
powerpc+of: Remove the pSeries_reconfig.h file
2012-11-15 12:56:55 +11:00
rtas_flash.c
new helper: file_inode(file)
2013-02-22 23:31:31 -05:00
rtas_pci.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
rtasd.c
powerpc/pseries: Cancel RTAS event scan before firmware flash
2011-11-25 14:11:29 +11:00
setup-common.c
powerpc/watchdog: move booke watchdog param related code to setup-common.c
2012-07-11 07:44:03 -05:00
setup.h
setup_32.c
powerpc/watchdog: move booke watchdog param related code to setup-common.c
2012-07-11 07:44:03 -05:00
setup_64.c
powerpc: Apply early paca fixups to boot_paca and the boot cpu's paca
2013-02-15 16:55:06 +11:00
signal.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
2013-02-23 18:50:11 -08:00
signal.h
powerpc: Add new transactional memory state to the signal context
2013-02-15 17:02:23 +11:00
signal_32.c
powerpc: fix compiling CONFIG_PPC_TRANSACTIONAL_MEM when CONFIG_ALTIVEC=n
2013-04-10 08:14:39 +10:00
signal_64.c
powerpc: fix compiling CONFIG_PPC_TRANSACTIONAL_MEM when CONFIG_ALTIVEC=n
2013-04-10 08:14:39 +10:00
smp-tbsync.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
smp.c
powerpc: Use generic idle loop
2013-04-08 17:39:27 +02:00
softemu8xx.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
stacktrace.c
powerpc: various straight conversions from module.h --> export.h
2011-10-31 19:30:44 -04:00
suspend.c
update email address
2010-07-19 10:56:54 +02:00
swsusp.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
swsusp_32.S
Fix common misspellings
2011-03-31 11:26:23 -03:00
swsusp_64.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
swsusp_asm64.S
swsusp_booke.S
powerpc/fsl-booke: Add hibernation support for FSL BookE processors
2010-05-21 07:41:53 -05:00
sys_ppc32.c
fix compat truncate/ftruncate
2013-02-25 09:24:55 -05:00
syscalls.c
powerpc: Fix personality handling in ppc64_personality()
2012-08-24 20:26:07 +10:00
sysfs.c
numa: convert static memory to dynamically allocated memory for per node device
2012-12-11 17:22:23 -08:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
tree-wide: fix assorted typos all over the place
2009-12-04 15:39:55 +01:00
time.c
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2013-02-19 19:05:45 -08:00
tm.S
powerpc: fix compiling CONFIG_PPC_TRANSACTIONAL_MEM when CONFIG_ALTIVEC=n
2013-04-10 08:14:39 +10:00
traps.c
The sweeping change is to make add_taint() explicitly indicate whether to disable
2013-02-25 15:41:43 -08:00
udbg.c
early_printk: consolidate random copies of identical code
2013-04-29 18:28:13 -07:00
udbg_16550.c
powerpc: Add early debug for WSP platforms
2011-05-06 13:32:41 +10:00
uprobes.c
uretprobes/powerpc: Hijack return address
2013-04-13 15:31:56 +02:00
vdso.c
powerpc: Restore VDSO information on critical exception om BookE
2012-09-07 09:48:49 +10:00
vecemu.c
vector.S
powerpc: Add FP/VSX and VMX register load functions for transactional memory
2013-02-15 16:58:52 +11:00
vio.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
vmlinux.lds.S
powerpc: Relocate prom_init.c on 64bit
2013-01-10 17:00:25 +11:00