android_kernel_xiaomi_sm8350/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_signal.h
compat.h asm-*/compat.h: fix typo in comment 2008-02-03 16:32:51 +02:00
cpudata.h
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
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
ebus.h
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
fcntl.h
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_regs.h
irq.h [SPARC64]: __inline__ --> inline 2007-10-27 00:13:04 -07:00
irqflags.h
isa.h
Kbuild remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
kdebug.h
kmap_types.h
kprobes.h [SPARC64]: Add kretprobe support. 2008-02-09 03:42:22 -08:00
ldc.h
linkage.h
local.h
lsu.h
mc146818rtc.h
mdesc.h
mman.h
mmu_context.h
mmu.h
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
openpromio.h
oplib.h
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
pil.h
poll.h
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
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
sfafsr.h
sfp-machine.h
shmbuf.h
shmparam.h
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
solerrno.h
sparsemem.h
spinlock_types.h
spinlock.h
spitfire.h [SPARC64]: Remove most limitations to kernel image size. 2008-03-21 17:01:38 -07:00
sstate.h
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
timer.h
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
tsb.h
ttable.h
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