From: takahiro.akashi@linaro.org (AKASHI Takahiro)
To: linux-arm-kernel@lists.infradead.org
Subject: Stack trace using ftrace
Date: Tue, 07 Jul 2015 16:59:06 +0900 [thread overview]
Message-ID: <559B86CA.2060508@linaro.org> (raw)
In-Reply-To: <42A36D72-9621-4FEF-B977-7FC6E4421618@gmail.com>
On 07/06/2015 09:04 PM, Jungseok Lee wrote:
> On Jul 6, 2015, at 4:56 PM, AKASHI Takahiro wrote:
>> Hi,
>
> Hi,
>
>> Thank you for your bug report.
>
> Thanks for taking care about this topic.
>
>> This issue comes from the fact that ftrace, more specifically check_stack(),
>> goes over immediate values in the stack with each function's (bl instruction's) PC
>> which is returned by save_stack_trace() while save_stack_trace(), or unwind_frame(),
>> decrements the saved value of PC in the stack by 4. So mismatching can happen.
>>
>> We can easily fix the problem by reverting the following commit:
>>
>>> commit e306dfd06fcb44d21c80acb8e5a88d55f3d1cf63
>>> Author: Olof Johansson <olof@lixom.net>
>>> Date: Fri Feb 14 19:35:15 2014 +0000
>>>
>>> ARM64: unwind: Fix PC calculation
>>
>> But it will also resurrect the original problem.
>
> IMHO, a current problem cannot be resolved by reverting the commit.
> Please refer to the following data. The result looks much better than before,
> but some entries still have 0 sizes.
Sorry for that.
There seem to be several problems.
The value in 'size' field should go one line up,
for example, 32 for arch_timer_handler and 64 for
handle_percpu_devid_irq.
I'm now looking into those issues.
-Takahiro AKASHI
> Depth Size Location (47 entries)
> ----- ---- --------
> 0) 4664 240 jiffies_to_timeval+0x1c/0x7c
> 1) 4424 0 ftrace_graph_call+0x0/0x14
> 2) 4424 0 jiffies_to_timeval+0x1c/0x7c
> 3) 4424 0 __acct_update_integrals+0x4c/0xbc
> 4) 4424 0 acct_account_cputime+0x28/0x34
> 5) 4424 0 account_system_time+0xb4/0x1e0
> 6) 4424 32 account_process_tick+0x58/0xa0
> 7) 4392 48 update_process_times+0x30/0x74
> 8) 4344 32 tick_sched_handle.isra.15+0x3c/0x7c
> 9) 4312 48 tick_sched_timer+0x4c/0x90
> 10) 4264 48 __run_hrtimer+0x64/0x258
> 11) 4216 64 hrtimer_interrupt+0xec/0x260
> 12) 4152 128 arch_timer_handler_virt+0x3c/0x48
> 13) 4024 32 handle_percpu_devid_irq+0x88/0x188
> 14) 3992 64 generic_handle_irq+0x3c/0x54
> 15) 3928 32 __handle_domain_irq+0x6c/0xbc
> 16) 3896 64 gic_handle_irq+0x3c/0x88
> 17) 3832 336 el1_irq+0x68/0xd8
> 18) 3496 112 icmp_glue_bits+0x50/0x94
> 19) 3384 80 __ip_append_data.isra.40+0x894/0xb48
> 20) 3304 224 ip_append_data.part.42+0x9c/0xe8
> 21) 3080 112 ip_append_data+0x6c/0x7c
> 22) 2968 96 icmp_push_reply+0x80/0x144
> 23) 2872 96 icmp_send+0x3c4/0x3c8
> 24) 2776 192 __udp4_lib_rcv+0x5bc/0x684
> 25) 2584 96 udp_rcv+0x30/0x3c
> 26) 2488 32 ip_local_deliver+0xa4/0x224
> 27) 2456 48 ip_rcv+0x364/0x57c
> 28) 2408 64 __netif_receive_skb_core+0x4d4/0x80c
> 29) 2344 128 __netif_receive_skb+0x28/0x84
> 30) 2216 32 process_backlog+0xa0/0x15c
> 31) 2184 80 net_rx_action+0x1f0/0x32c
> 32) 2104 160 __do_softirq+0x118/0x2f0
> 33) 1944 128 do_softirq+0x64/0x68
> 34) 1816 32 __local_bh_enable_ip+0xb4/0xd4
> 35) 1784 32 ip_finish_output+0x1f8/0xabc
> 36) 1752 96 ip_output+0xf4/0x120
> 37) 1656 64 ip_local_out_sk+0x48/0x54
> 38) 1592 32 ip_send_skb+0x28/0xbc
> 39) 1560 48 udp_send_skb+0x1b8/0x2f4
> 40) 1512 80 udp_sendmsg+0x2ac/0x7a0
> 41) 1432 272 inet_sendmsg+0xa4/0xd0
> 42) 1160 48 sock_sendmsg+0x34/0x78
> 43) 1112 32 ___sys_sendmsg+0x160/0x26c
> 44) 1080 400 __sys_sendmmsg+0x98/0x180
> 45) 680 320 SyS_sendmmsg+0x3c/0x54
> 46) 360 360 el0_svc_naked+0x24/0x28
>
> Best Regards
> Jungseok Lee
>
next prev parent reply other threads:[~2015-07-07 7:59 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-05 11:33 Stack trace using ftrace Jungseok Lee
2015-07-06 7:56 ` AKASHI Takahiro
2015-07-06 12:04 ` Jungseok Lee
2015-07-07 7:59 ` AKASHI Takahiro [this message]
2015-07-07 13:49 ` Jungseok Lee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=559B86CA.2060508@linaro.org \
--to=takahiro.akashi@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.