alistair23-linux/include/asm-sparc64
David S. Miller 85a7935335 [SPARC64]: Make save_stack_trace() more efficient.
Doing a 'flushw' every stack trace capture creates so much overhead
that it makes lockdep next to unusable.

We only care about the frame pointer chain and the function caller
program counters, so flush those by hand to the stack frame.

This is significantly more efficient than a 'flushw' because:

1) We only save 16 bytes per active register window to the stack.

2) This doesn't push the entire register window context of the current
   call chain out of the cpu, forcing register window fill traps as we
   return back down.

Note that we can't use 'restore' and 'save' instructions to move
around the register windows because that wouldn't work on Niagara
processors.  They optimize 'save' into a new register window by
simply clearing out the registers instead of pulling them in from
the on-chip register window backing store.

Based upon a report by Tom Callaway.

Signed-off-by: David S. Miller <davem@davemloft.net>
2008-03-24 20:06:24 -07:00
..
a.out-core.h aout: suppress A.OUT library support if !CONFIG_ARCH_SUPPORTS_AOUT 2008-02-08 09:22:30 -08:00
a.out.h [SPARC]: Merge asm-sparc{,64}/a.out.h 2008-02-09 22:25:50 -08:00
agp.h x86: remove flush_agp_mappings() 2008-01-30 13:34:07 +01:00
apb.h
asi.h
atomic.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
auxio.h
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
bitops.h forbid asm/bitops.h direct inclusion 2007-10-19 11:53:41 -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
chafsr.h
checksum.h
chmctrl.h
cmt.h
compat.h asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
compat_signal.h
cpudata.h [SPARC64]: Access ivector_table[] using physical addresses. 2007-10-13 21:53:15 -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
dcu.h
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
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]: Fix floppy build failure. 2007-03-05 13:22:28 -08:00
ebus.h [SPARC64] ebus: Convert to use pci_device_to_OF_node(). 2007-04-26 01:55:04 -07:00
elf.h [SPARC64]: Make use of the new fs/compat_binfmt_elf.c 2008-02-08 00:08:10 -08:00
emergency-restart.h [SPARC]: Merge asm-sparc{,64}/emergency-restart.h 2008-02-09 04:18:14 -08:00
envctrl.h
errno.h [SPARC]: Merge asm-sparc{,64}/errno.h 2008-02-09 04:18:23 -08:00
estate.h
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 [SPARC]: Fix O_CLOEXEC values. 2007-08-03 14:24:17 -07:00
fhc.h
floppy.h cleanup floppy.h 2007-10-17 08:42:55 -07:00
fpumacro.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
futex.h [SPARC64]: Fix linkage of enormous kernels. 2007-10-31 15:30:56 -07:00
hardirq.h
head.h
hvtramp.h [SPARC64]: Remove most limitations to kernel image size. 2008-03-21 17:01:38 -07:00
hw_irq.h
hypervisor.h [SPARC64]: Fix two kernel linear mapping setup bugs. 2007-12-13 06:13:38 -08:00
ide.h ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT 2007-10-20 00:32:32 +02:00
idprom.h
intr_queue.h
io.h [SPARC64]: Add SG merging support back into IOMMU code. 2008-02-09 03:15:36 -08:00
ioctl.h
ioctls.h [SPARC]: Support for new termios. 2007-10-17 19:38:10 -07:00
iommu.h [SPARC64]: IOMMU allocations using iommu-helper layer. 2008-02-09 03:15:04 -08:00
ipcbuf.h
irq.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
irq_regs.h
irqflags.h
isa.h [SPARC64] isa: Convert to use pci_device_to_OF_node(). 2007-04-26 01:55:05 -07:00
Kbuild remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
kdebug.h x86: optimize page faults like all other achitectures and kill notifier cruft 2007-10-16 09:42:50 -07:00
kmap_types.h
kprobes.h [SPARC64]: Add kretprobe support. 2008-02-09 03:42:22 -08:00
ldc.h [SPARC64]: Fix build regressions added by dr-cpu changes. 2007-07-16 04:04:49 -07:00
linkage.h
local.h local_t: sparc64 cleanup 2007-05-08 11:15:20 -07:00
lsu.h consolidate asm/const.h to linux/const.h 2007-05-08 11:15:13 -07:00
mc146818rtc.h
mdesc.h [SPARC64]: Add basic infrastructure for MD add/remove notification. 2007-07-18 01:19:51 -07:00
mman.h
mmu.h consolidate asm/const.h to linux/const.h 2007-05-08 11:15:13 -07:00
mmu_context.h [SPARC64]: dr-cpu unconfigure support. 2007-07-16 04:05:32 -07:00
module.h
mostek.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
msgbuf.h
mutex.h
namei.h
ns87303.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
numnodes.h
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]: Bump PROMINTR_MAX to 32. 2007-05-10 00:55:59 -07:00
openpromio.h
oplib.h [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
page.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
param.h
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
pconf.h
percpu.h SPARC64: use generic percpu 2008-01-30 23:27:58 +01:00
perfctr.h
pgalloc.h CONFIG_HIGHPTE vs. sub-page page tables. 2008-02-08 09:22:42 -08:00
pgtable.h SPARC64: SPARSEMEM_VMEMMAP support 2007-10-16 09:42:51 -07:00
pil.h
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 aout: remove unnecessary inclusions of {asm, linux}/a.out.h 2008-02-08 09:22:30 -08:00
prom.h [SPARC]: Merge include/asm-sparc{,64}/prom.h 2008-02-09 03:56:20 -08:00
psrcompat.h
pstate.h consolidate asm/const.h to linux/const.h 2007-05-08 11:15:13 -07:00
ptrace.h [SPARC64]: Fix sparse warnings wrt. __show_regs(). 2008-02-19 20:48:58 -08:00
reboot.h [SPARC64]: Fix sparse warnings wrt. machine_alt_power_off(). 2008-02-19 20:39:18 -08:00
reg.h
resource.h
rtc.h
rwsem-const.h
rwsem.h
sbus.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
scatterlist.h Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
scratchpad.h
seccomp.h
sections.h
semaphore.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07: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 unexport asm/shmparam.h 2007-10-17 08:42:47 -07:00
sigcontext.h
siginfo.h
signal.h
smp.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
solerrno.h
sparsemem.h [SPARC64]: MAX_PHYSADDR_BITS et al. really need to be 42 bits not 41. 2007-04-26 01:55:24 -07:00
spinlock.h
spinlock_types.h
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
stat.h
statfs.h
string.h
sunbpp.h
svr4.h
syscalls.h [SPARC64]: More sparse warning fixes in process.c 2008-02-19 21:25:50 -08:00
system.h [SPARC]: Add reboot_command[] extern decl to asm/system.h 2008-02-28 21:53:20 -08:00
termbits.h [SPARC]: Support for new termios. 2007-10-17 19:38:10 -07:00
termios.h [SPARC]: Support for new termios. 2007-10-17 19:38:10 -07:00
thread_info.h [SPARC64]: Eliminate NR_CPUS limitations. 2007-05-29 02:49:49 -07:00
timer.h [SPARC64]: Add clocksource/clockevents support. 2007-04-26 01:54:15 -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 Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
tsb.h [SPARC64]: Fix two bugs wrt. kernel 4MB TSB. 2007-05-29 02:51:38 -07:00
ttable.h [SPARC64]: Unify timer interrupt handler. 2007-04-26 01:54:11 -07:00
types.h
uaccess.h aout: remove unnecessary inclusions of {asm, linux}/a.out.h 2008-02-08 09:22:30 -08:00
uctx.h
unaligned.h
unistd.h [SPARC]: Add new timerfd syscall entries. 2008-02-06 04:12:23 -08:00
upa.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
user.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
utrap.h
vga.h
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
xor.h [SPARC64]: Do not assume sun4v chips have load-twin/store-init support. 2007-08-08 17:33:45 -07:00