• S
    ftrace: add stack tracer · e5a81b62
    Steven Rostedt 提交于
    This is another tracer using the ftrace infrastructure, that examines
    at each function call the size of the stack. If the stack use is greater
    than the previous max it is recorded.
    
    You can always see (and set) the max stack size seen. By setting it
    to zero will start the recording again. The backtrace is also available.
    
    For example:
    
    # cat /debug/tracing/stack_max_size
    1856
    
    # cat /debug/tracing/stack_trace
    [<c027764d>] stack_trace_call+0x8f/0x101
    [<c021b966>] ftrace_call+0x5/0x8
    [<c02553cc>] clocksource_get_next+0x12/0x48
    [<c02542a5>] update_wall_time+0x538/0x6d1
    [<c0245913>] do_timer+0x23/0xb0
    [<c0257657>] tick_do_update_jiffies64+0xd9/0xf1
    [<c02576b9>] tick_sched_timer+0x4a/0xad
    [<c0250fe6>] __run_hrtimer+0x3e/0x75
    [<c02518ed>] hrtimer_interrupt+0xf1/0x154
    [<c022c870>] smp_apic_timer_interrupt+0x71/0x84
    [<c021b7e9>] apic_timer_interrupt+0x2d/0x34
    [<c0238597>] finish_task_switch+0x29/0xa0
    [<c05abd13>] schedule+0x765/0x7be
    [<c05abfca>] schedule_timeout+0x1b/0x90
    [<c05ab4d4>] wait_for_common+0xab/0x101
    [<c05ab5ac>] wait_for_completion+0x12/0x14
    [<c033cfc3>] blk_execute_rq+0x84/0x99
    [<c0402470>] scsi_execute+0xc2/0x105
    [<c040250a>] scsi_execute_req+0x57/0x7f
    [<c043afe0>] sr_test_unit_ready+0x3e/0x97
    [<c043bbd6>] sr_media_change+0x43/0x205
    [<c046b59f>] media_changed+0x48/0x77
    [<c046b5ff>] cdrom_media_changed+0x31/0x37
    [<c043b091>] sr_block_media_changed+0x16/0x18
    [<c02b9e69>] check_disk_change+0x1b/0x63
    [<c046f4c3>] cdrom_open+0x7a1/0x806
    [<c043b148>] sr_block_open+0x78/0x8d
    [<c02ba4c0>] do_open+0x90/0x257
    [<c02ba869>] blkdev_open+0x2d/0x56
    [<c0296a1f>] __dentry_open+0x14d/0x23c
    [<c0296b32>] nameidata_to_filp+0x24/0x38
    [<c02a1c68>] do_filp_open+0x347/0x626
    [<c02967ef>] do_sys_open+0x47/0xbc
    [<c02968b0>] sys_open+0x23/0x2b
    [<c021aadd>] sysenter_do_call+0x12/0x26
    
    I've tested this on both x86_64 and i386.
    Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    e5a81b62
Kconfig 4.2 KB