powerpc: Use ftrace_graph_ret_addr() when unwinding
With support for HAVE_FUNCTION_GRAPH_RET_ADDR_PTR,
ftrace_graph_ret_addr() provides more robust unwinding when function
graph is in use. Update show_stack() to use the same.
With dump_stack() added to sysrq_sysctl_handler(), before this patch:
root@(none):/sys/kernel/debug/tracing# cat /proc/sys/kernel/sysrq
CPU: 0 PID: 218 Comm: cat Not tainted
5.3.0-rc7-00868-g8453ad4a078c-dirty #20
Call Trace:
[
c0000000d1e13c30] [
c00000000006ab98] return_to_handler+0x0/0x40 (dump_stack+0xe8/0x164) (unreliable)
[
c0000000d1e13c80] [
c000000000145680] sysrq_sysctl_handler+0x48/0xb8
[
c0000000d1e13cd0] [
c00000000006ab98] return_to_handler+0x0/0x40 (proc_sys_call_handler+0x274/0x2a0)
[
c0000000d1e13d60] [
c00000000006ab98] return_to_handler+0x0/0x40 (return_to_handler+0x0/0x40)
[
c0000000d1e13d80] [
c00000000006ab98] return_to_handler+0x0/0x40 (__vfs_read+0x3c/0x70)
[
c0000000d1e13dd0] [
c00000000006ab98] return_to_handler+0x0/0x40 (vfs_read+0xb8/0x1b0)
[
c0000000d1e13e20] [
c00000000006ab98] return_to_handler+0x0/0x40 (ksys_read+0x7c/0x140)
After this patch:
Call Trace:
[
c0000000d1e33c30] [
c00000000006ab58] return_to_handler+0x0/0x40 (dump_stack+0xe8/0x164) (unreliable)
[
c0000000d1e33c80] [
c000000000145680] sysrq_sysctl_handler+0x48/0xb8
[
c0000000d1e33cd0] [
c00000000006ab58] return_to_handler+0x0/0x40 (proc_sys_call_handler+0x274/0x2a0)
[
c0000000d1e33d60] [
c00000000006ab58] return_to_handler+0x0/0x40 (__vfs_read+0x3c/0x70)
[
c0000000d1e33d80] [
c00000000006ab58] return_to_handler+0x0/0x40 (vfs_read+0xb8/0x1b0)
[
c0000000d1e33dd0] [
c00000000006ab58] return_to_handler+0x0/0x40 (ksys_read+0x7c/0x140)
[
c0000000d1e33e20] [
c00000000006ab58] return_to_handler+0x0/0x40 (system_call+0x5c/0x68)
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/dc89c9a887121342d9c7819482c3dabdece2a323.1567707399.git.naveen.n.rao@linux.vnet.ibm.com