From mboxrd@z Thu Jan 1 00:00:00 1970 From: David.Aldrich@EMEA.NEC.COM (David Aldrich) Date: Fri, 26 Aug 2016 07:49:50 +0000 Subject: [lttng-dev] Beginner question: how to inspect scheduling of multi-threaded user application? In-Reply-To: References: <35de22c3d2034f3abb75596477b23e3a@EUX13SRV1.EU.NEC.COM> Message-ID: <022bc22a602e4631903ee12b6dd1be6c@EUX13SRV1.EU.NEC.COM> Hi Jonathan and Francis Thanks for your helpful replies. I am having a bit of trouble implementing your suggestions. Here is my session: $ lttng create Spawning a session daemon PERROR [2885/2893]: bind inet: Address already in use (in lttcomm_bind_inet_sock() at inet.c:109) Warning: An other session daemon is using this JUL port. JUL support will be deactivated not interfering with the tracing. Session auto-20160826-083823 created. Traces will be written in /lttng-traces/auto-20160826-083823 $ sudo lttng enable-event -k sched_switch Error: Event sched_switch: Session name not found (channel channel0, session auto-20160826-083823) Warning: Some command(s) went wrong There seem to be two problems here: 1) How to kill a lttng daemon that is already running? 2) How to specify a session? Sorry that these are basic questions. I would be grateful if you can help please. Best regards David From: Jonathan Rajotte [mailto:jonathan.r.julien@gmail.com] Sent: 24 August 2016 17:39 To: Francis Deslauriers Cc: David Aldrich ; lttng-dev at lists.lttng.org Subject: Re: [lttng-dev] Beginner question: how to inspect scheduling of multi-threaded user application? Sorry had a sending problem. Here is the rest. On Wed, Aug 24, 2016 at 12:35 PM, Jonathan Rajotte > wrote: Hi, On Aug 24, 2016 12:18 PM, "Francis Deslauriers" > wrote: > > Hi David, > If you specifically want to trace the scheduling of the threads of your app, you don't need custom tracepoints. > Enabling the sched_switch kernel event will give you both of cpu id and thread id. Look at the cpu_id and next_tid fields. > > You can enable the sched_switch event using : lttng enable-event -k sched_switch In TraceCompass you can inspect this data with the control flow view and the Ressource view under the Kernel analysis node under the trace node in the project explorer. I'm not sure of the base requirement for those views you can use the safe enable-event: replace "safe" by "easiest". lttng enable-event -k 'sched*' You can also use "lttng track" to limi the gathering of event to a certain pid. Another way to reduce the scope would be to filter per procname: lttng create lttng add-context -k -t procname lttng enable-event 'sched*' --filter '$ctx.procname == "PROCNAMEHERE"' lttng start PROCNAMEHERE can contain '*' wildcard. See the man page for more information. Cheers > > Cheers, > Francis > > > 2016-08-24 3:17 GMT-04:00 David Aldrich >: >> >> Hi >> >> >> >> I am new to tracing in Linux and to lttng. I have a multi-threaded user application and I want to see: >> >> >> >> 1) When the threads are scheduled to run >> >> 2) Which cores the threads are running on. >> >> >> >> I have installed lttng on Ubuntu 14.04 LTS. I am expecting to visualise the trace using TraceCompass. >> >> >> >> I have read the following doc section: >> >> >> >> http://lttng.org/docs/#doc-tracing-your-own-user-application >> >> >> >> In order to collect my trace, must I define custom tracepoint definitions ( in a tracepoint provider header file ), and insert tracepoints into my user application, or is there a simpler way of achieving my goal? >> >> >> >> Best regards >> >> >> >> David >> >> >> >> >> _______________________________________________ >> lttng-dev mailing list >> lttng-dev at lists.lttng.org >> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev >> > > > _______________________________________________ > lttng-dev mailing list > lttng-dev at lists.lttng.org > https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > -- Jonathan Rajotte Julien Click here to report this email as spam. -------------- next part -------------- An HTML attachment was scrubbed... URL: