linux-stable/arch/arm
Lin Yongting 9c98666163 ARM: 8049/1: ftrace/add save_stack_trace_regs() implementation
When configure kprobe events of ftrace with "stacktrace" option enabled
in arm, there is no stacktrace was recorded after the kprobe event was
triggered. The root cause is no save_stack_trace_regs() function implemented.

Implement the save_stack_trace_regs() function in arm, then ftrace will
call this architecture-related function to record the stacktrace into
ring buffer.

After this fix, stacktrace can be recorded, for example:

 # mount -t debugfs nodev /sys/kernel/debug
 # echo "p:netrx net_rx_action" >> /sys/kernel/debug/tracing/kprobe_events
 # echo 1 > /sys/kernel/debug/tracing/events/kprobes/netrx/enable
 # echo 1 > /sys/kernel/debug/tracing/options/stacktrace
 # echo 1 > /sys/kernel/debug/tracing/tracing_on
 # ping 127.0.0.1 -c 1
 # echo 0 > /sys/kernel/debug/tracing/tracing_on

 # cat /sys/kernel/debug/tracing/trace
 # tracer: nop
 #
 # entries-in-buffer/entries-written: 12/12   #P:1
 #
 #                              _-----=> irqs-off
 #                             / _----=> need-resched
 #                            | / _---=> hardirq/softirq
 #                            || / _--=> preempt-depth
 #                            ||| /     delay
 #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
 #              | |       |   ||||       |         |
             <------ missing some entries ---------------->
             ping-1200  [000] dNs1   667.603250: netrx: (net_rx_action+0x0/0x1f8)
             ping-1200  [000] dNs1   667.604738: <stack trace>
  => net_rx_action
  => do_softirq
  => local_bh_enable
  => ip_finish_output
  => ip_output
  => ip_local_out
  => ip_send_skb
  => ip_push_pending_frames
  => raw_sendmsg
  => inet_sendmsg
  => sock_sendmsg
  => SyS_sendto
  => ret_fast_syscall

Signed-off-by: Lin Yongting <linyongting@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-05-30 01:12:32 +01:00
..
boot Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-04-10 08:55:08 -07:00
common ARM: 8029/1: mcpm: Rename the power_down_finish() functions to be less confusing 2014-05-25 23:48:12 +01:00
configs MMC highlights for 3.15: 2014-04-09 08:39:39 -07:00
crypto
firmware
include ARM: 8065/1: remove last use of CONFIG_CPU_ARM710 2014-05-30 01:12:30 +01:00
kernel ARM: 8049/1: ftrace/add save_stack_trace_regs() implementation 2014-05-30 01:12:32 +01:00
kvm CPU hotplug notifiers registration fixes for 3.15-rc1 2014-04-07 14:55:46 -07:00
lib
mach-at91 ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-bcm ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
mach-berlin
mach-clps711x ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
mach-cns3xxx ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-davinci ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
mach-dove ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
mach-ebsa110 ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-efm32
mach-ep93xx ARM: 8036/1: Enable IRQs before attempting to read user space in __und_usr 2014-04-25 12:06:38 +01:00
mach-exynos ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
mach-footbridge ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-gemini ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-highbank
mach-hisi ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-imx ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
mach-integrator ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-keystone ARM: SoC: device tree changes 2014-04-05 15:29:04 -07:00
mach-kirkwood ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
mach-ks8695 ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-lpc32xx ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-mmp ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-moxart ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-msm ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
mach-mv78xx0 ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
mach-mvebu ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
mach-mxs ARM: SoC: device tree changes 2014-04-05 15:29:04 -07:00
mach-netx ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-nomadik
mach-nspire ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-omap1 ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-omap2 fbdev changes for 3.15 (OMAP) 2014-04-07 10:47:51 -07:00
mach-orion5x ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
mach-picoxcell Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
mach-prima2 Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
mach-pxa pwm: Changes for v3.15-rc1 2014-04-05 18:32:31 -07:00
mach-qcom
mach-realview ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-rockchip
mach-rpc ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-s3c24xx Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
mach-s3c64xx ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
mach-s5p64x0 ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
mach-s5pc100 ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
mach-s5pv210 ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
mach-sa1100 ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-shmobile Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
mach-socfpga The clock framework changes for 3.15 look similar to past pull requests. 2014-04-05 18:39:18 -07:00
mach-spear ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-sti Merge branch 'cleanup/kconfig' into next/drivers 2014-03-18 16:25:47 +01:00
mach-sunxi ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
mach-tegra ARM: SoC specific changes 2014-04-05 14:19:54 -07:00
mach-u300 ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-ux500 ARM: SoC: device tree changes 2014-04-05 15:29:04 -07:00
mach-versatile ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
mach-vexpress ARM: 8029/1: mcpm: Rename the power_down_finish() functions to be less confusing 2014-05-25 23:48:12 +01:00
mach-vt8500
mach-w90x900 ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00
mach-zynq ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
mm ARM: 8043/1: uprobes need icache flush after xol write 2014-05-25 23:48:45 +01:00
net net: filter: add jited flag to indicate jit compiled filters 2014-03-31 00:45:08 -04:00
nwfpe
oprofile
plat-iop
plat-omap ARM: SoC: device tree changes 2014-04-05 15:29:04 -07:00
plat-orion ARM: SoC: driver changes 2014-04-05 15:37:40 -07:00
plat-pxa
plat-samsung Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
plat-versatile
tools
vfp ARM: 8036/1: Enable IRQs before attempting to read user space in __und_usr 2014-04-25 12:06:38 +01:00
xen xen/grant-table: Refactor gnttab_[un]map_refs to avoid m2p_override 2014-03-18 14:40:19 +00:00
Kconfig ARM: 8047/1: rwsem: use asm-generic rwsem implementation 2014-05-30 01:12:25 +01:00
Kconfig-nommu
Kconfig.debug ARM: SoC: late cleanups 2014-04-05 15:46:37 -07:00
Makefile ARM: SoC: cleanups for 3.15 2014-04-05 13:51:19 -07:00