Re: [RFC]Read kernel stack with trace-cmd

From: Steven Rostedt
Date: Tue May 08 2012 - 11:06:06 EST


On Tue, 2012-05-08 at 22:34 +0800, harryxiyou wrote:

> >
> > Have you tried it with -O stacktrace ?
> >
> > trace-cmd record -e all -O stacktrace
> >
>
> After this cmd, i get following ones.
>
> [...]
> => handle_IRQ_event (c019fc34)
> => handle_edge_irq (c01a1b84)
> => handle_irq (c01059ed)
> => do_IRQ (c058fa1c)
> => common_interrupt (c0103a30)
> => mod_timer (c015bd42)
> => i915_add_request (f850cef4)
> => i915_gem_do_execbuffer (f8510adc)
> Xorg-1104 [001] 3106.003258: irq_handler_exit:

Isn't this what you asked for?

> irq=29 return=handled
> Xorg-1104 [001] 3106.003259: kernel_stack: <stack trace>
> => handle_edge_irq (c01a1b84)
> => handle_irq (c01059ed)
> => do_IRQ (c058fa1c)
> => common_interrupt (c0103a30)
> => mod_timer (c015bd42)
> => i915_add_request (f850cef4)
> => i915_gem_do_execbuffer (f8510adc)
> => i915_gem_execbuffer (f851123b)
> Xorg-1104 [001] 3106.003272: kfree:
> call_site=f8510958 ptr=0xf5ab9380
> Xorg-1104 [001] 3106.003273: kernel_stack: <stack trace>
> => i915_gem_do_execbuffer (f8510958)
> => i915_gem_execbuffer (f851123b)
> => drm_ioctl (f81d57cd)
> => vfs_ioctl (c0216231)
> => do_vfs_ioctl (c0216519)
> => sys_ioctl (c0216817)
> [...]
> Xorg-1104 [001] 3106.003348: sched_wakeup: task
> trace-cmd:3028 [120] success=1 [001]
> Xorg-1104 [001] 3106.003348: kernel_stack: <stack trace>
> => wake_up_process (c0142bd4)
> => hrtimer_wakeup (c016acad)
> => __run_hrtimer (c016b14a)^Ctrace-cmd: Received SIGINT
> Xorg-1104 [001] 3106.003348: kernel_stack: <stack trace>
> => wake_up_process (c0142bd4)
> => hrtimer_wakeup (c016acad)
> => __run_hrtimer (c016b14a)
> => hrtimer_interrupt (c016b4e0)
> => smp_apic_timer_interrupt (c058fae7)
> => apic_timer_interrupt (c0103df1)
> => __module_text_address (c017cdf0)
> [...]
> => wake_up_process (c0142bd4)
> => hrtimer_wakeup (c016acad)
> => __run_hrtimer (c016b14a)^Ctrace-cmd: Received SIGINT
> Xorg-1104 [001] 3106.003348: kernel_stack: <stack trace>
> [...]
>
>
> Note: i can't stop the cmd './trace-cmd report' after
> './trace-cmd record -e all -O stacktrace' but enter 'CTRC+C'.
>
> If it is a bug here? Any comments?

It should stop, but perhaps not immediately. Best to pipe it through
less:

trace-cmd report |less

I may, in the future, make trace-cmd report do its own paging, like git
does. But for now, I just use less.

The reason for the special ctrl-c is because of the python plugin. It
has some strange side effects. One is that it overrides ctrl-c, so I add
a handler to explicitly kill trace-cmd. But that still causes a delay
before the kill happens.

-- Steve


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/