[lttng-dev] Beginner question: how to inspect scheduling of multi-threaded user application?

Jonathan Rajotte Julien Jonathan.rajotte-julien at efficios.com
Fri Sep 16 17:36:36 UTC 2016


Hi


On 2016-09-16 07:43 AM, David Aldrich wrote:
> Hi
>
> I wonder if I might ask for some more guidance please?
>
> I now have lttng and Trace Compass running on Ubuntu.  I want to inspect the scheduling of threads in my user-space application.  So far, I have successfully captured a trace with the sched_switch event enabled:
>
> $ sudo lttng enable-event -k sched_switch
>
> This indeed shows my app's threads.  However, it also shows all the other threads in the system and does not show clearly (to my understanding) when the threads are scheduled / blocked.
>
> I would like some guidance on how to improve this tracing.
>
> 1) Would it be better if I defined my own “tracepoint providers” and then set trace events for when a thread wakes / blocks?

Could be a solution but you might want the built-in utility of lttng to 
filter out all noise first using the filtering feature.

e.g I'm interested in sched_switch event where chrome is involved

lttng create
lttng enable-event --kernel "sched_switch" --filter 'prev_comm == 
"chrome*" || next_comm == "chrome*"'
lttng start
....

Using TraceCompass you will be mainly interested in the Control Flow 
View and the Resource view (show per cpu timeline activity).

>
> 2) How could I show which core a thread is running on?

The Resource view from TraceCompass should help here.

Cheers

>
> Best regards
>
> David
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

-- 
Jonathan R. Julien
Efficios



More information about the lttng-dev mailing list