[ltt-dev] Kernel crashes when creating a trace

Mathieu Desnoyers mathieu.desnoyers at polymtl.ca
Tue Nov 17 16:32:11 EST 2009


* Ashwin Tanugula (ashwin.tanugula at broadcom.com) wrote:
> 
> 
> 
> > > > I tested with the "return 1;" at the beginning of trace_clock_async_tsc_read
> > > >
> > > >I am able to generate the trace, but I cannot view it. (tried it many times, even tried hybrid mode and flight mode)
> 
> 
> > > OK, I think I found the problem. Can you re-try this with lttng 0.172,
> > >lttv 0.12.21 ?
> 
> 
> > And can you try with this patch on top of 0.172 for the MIPS32 trace clock ?
> 
> With this patch, the kernel hangs during ltt-armall
> 

Thinking about it.. that's really weird. ltt-armall is not using the
trace clock in any way. So this is probably a random effect, I don't see
any possible causality link between the trace clock patch and ltt-armall
execution (if tracing is not active while you run ltt-armall).

Mathieu

> 
> Connecting /proc/sys/debug/ltt/markers/kernel/tasklet_high_entry
> Connecting /proc/sys/debug/ltt/markers/kernel/tasklet_high_exit
> Connecting /proc/sys/debug/ltt/markers/kernel/tasklet_low_entry
> Connecting /proc/sys/debug/ltt/markers/
> 
> 
> With "return 1;", I can generate the trace data, but I cannot view it.
> 
> 
> $ lttv-gui -t trace1
> Xlib:  extension "RANDR" missing on display ":0.0".
> ** Message: statistics viewer : background computation data ready.
> 
> ** ERROR **: Kernel/LTTV event size differs for event da_writepages: kernel 41, LTTV 37
> aborting...
> ./lttv-gui: line 10:  3754 Aborted                 (core dumped) $LTTV_CMD.real -m lttvwindow -m guievents -m guifilter -m guicontrolflow -m resourceview -m guistatistics -m guitracecontrol $*
> 
> $ lttv-gui -t trace4
> Xlib:  extension "RANDR" missing on display ":0.0".
> ** Message: statistics viewer : background computation data ready.
> 
> ** ERROR **: Kernel/LTTV event size differs for event (null): kernel 4, LTTV 0
> aborting...
> ./lttv-gui: line 10:  4001 Aborted                 (core dumped) $LTTV_CMD.real -m lttvwindow -m guievents -m guifilter -m guicontrolflow -m resourceview -m guistatistics -m guitracecontrol $*
> 
> 
> $ lttv-gui -t trace3
> Xlib:  extension "RANDR" missing on display ":0.0".
> ** Message: statistics viewer : background computation data ready.
> 
> ** ERROR **: Kernel/LTTV event size differs for event (null): kernel 4, LTTV 0
> aborting...
> ./lttv-gui: line 10:  3950 Aborted                 (core dumped) $LTTV_CMD.real -m lttvwindow -m guievents -m guifilter -m guicontrolflow -m resourceview -m guistatistics -m guitracecontrol $*
> 
> 
> 
> Thanks,
> Ashwin
> 
> 
> 
> 
> mips trace clock fix order
> 
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at polymtl.ca>
> ---
>  arch/mips/kernel/trace-clock.c |   31 +++++++++++++++----------------
>  1 file changed, 15 insertions(+), 16 deletions(-)
> 
> Index: linux-2.6-lttng/arch/mips/kernel/trace-clock.c
> ===================================================================
> --- linux-2.6-lttng.orig/arch/mips/kernel/trace-clock.c 2009-11-16 23:35:55.000000000 -0500
> +++ linux-2.6-lttng/arch/mips/kernel/trace-clock.c      2009-11-16 23:45:17.000000000 -0500
> @@ -138,15 +138,15 @@ void get_trace_clock(void)
>  {
>         int cpu;
> 
> -       get_synthetic_tsc();
>         spin_lock(&async_tsc_lock);
> -       if (async_tsc_refcount++ || tsc_is_sync())
> -               goto end;
> -
> -       async_tsc_enabled = 1;
> -       for_each_online_cpu(cpu)
> -               enable_trace_clock(cpu);
> -end:
> +       if (async_tsc_refcount++ || tsc_is_sync()) {
> +               get_synthetic_tsc();
> +       } else {
> +               async_tsc_enabled = 1;
> +               get_synthetic_tsc();
> +               for_each_online_cpu(cpu)
> +                       enable_trace_clock(cpu);
> +       }
>         spin_unlock(&async_tsc_lock);
>  }
>  EXPORT_SYMBOL_GPL(get_trace_clock);
> @@ -157,15 +157,14 @@ void put_trace_clock(void)
> 
>         spin_lock(&async_tsc_lock);
>         WARN_ON(async_tsc_refcount <= 0);
> -       if (async_tsc_refcount != 1 || !async_tsc_enabled)
> -               goto end;
> -
> -       for_each_online_cpu(cpu)
> -               disable_trace_clock(cpu);
> -       async_tsc_enabled = 0;
> -end:
> +       if (async_tsc_refcount != 1 || !async_tsc_enabled) {
> +               put_synthetic_tsc();
> +       } else {
> +               for_each_online_cpu(cpu)
> +                       disable_trace_clock(cpu);
> +               async_tsc_enabled = 0;
> +       }
>         async_tsc_refcount--;
>         spin_unlock(&async_tsc_lock);
> -       put_synthetic_tsc();
>  }
>  EXPORT_SYMBOL_GPL(put_trace_clock);
> 
> 
> 
> 

-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68




More information about the lttng-dev mailing list