[lttng-dev] Problem with perf:thread in 2.5.0

Jonathan Rajotte-Julien jonathan.rajotte-julien at ericsson.com
Thu Jul 24 16:46:26 EDT 2014


Hey Evgeniy,


> Jonathan, sorry, I've copied wrong output, original command was with perf:thread:cpu-cycles:
> 
>> lttng add-context -u -t vpid -t perf:thread:cpu-cycles -t perf:thread:instructions -t perf:thread:cache-misses
> Session auto-20140724-091524 created.
> Traces will be written in /export/home/eiva/lttng-traces/auto-20140724-091524
> UST context vpid added to all channels
> Error: perf:thread:cpu-cycles: UST invalid context
> Error: perf:thread:instructions: UST invalid context
> Error: perf:thread:cache-misses: UST invalid context
> Warning: Some command(s) went wrong
> UST event eiva_test:* created in channel channel0

Weird, it works on my side (c&p) with latest version witch is 2.5 stable :P.

> 
>> lttng --version
> lttng (LTTng Trace Control) 2.5.0 - Fumisterie

From this output I guess you are working with the lttng package and not the source from git. I don't think packaging is the problem here but let just keep that in mind.
What dist are you on ?

I'm sure you already done it a thousand time but could you just run these and send the output ?

First make sure no lttng-sessiond is running then launch:

lttng-sessiond -vvv

In a separate terminal:

lttng destroy -a  // Just in case
lttng -vvv create test

lttng -vvv add-context -u -t vpid -t perf:thread:cpu-cycles -t perf:thread:instructions -t perf:thread:cache-misses

If this work, you could test if you get the data or zero.

lttng enable-event -u -a -s test 

lttng start 
// Run the program

lttng stop

Make sure to send the output from lttng-sessiond -vvv.


Cheers,
Jonathan

> 
> Later I've tried cpu-cycles separately and then accidentally switched to perf:cpu. Now everything started to work, but nothing changed since then. Though didn't check if we still get zeroes on another machine.
> 
> 
> On Thu, Jul 24, 2014 at 7:01 PM, Jonathan Rajotte-Julien <jonathan.rajotte-julien at ericsson.com <mailto:jonathan.rajotte-julien at ericsson.com>> wrote:
> 
>     Hi!
> 
>     > Hi!
>     >
>     > I use lttng-2.5.0 (tools, modules, …) and linux-3.8.13. When I try to add context for performance counters I get the following error:
>     >
>     >> lttng add-context -u -t perf:cpu:cpu-cycles
>     > Error: perf:cpu:cpu-cycles: UST invalid context
>     > Warning: Some command(s) went wrong
> 
>     Well i think we will both agree that the help page does not help very much.(Should fix that)
> 
>     If we go deep down into the code we get the supported context for UST domain. :)
> 
>     Ust domain support 6 type of context:
>     LTTNG_EVENT_CONTEXT_VTID
>     LTTNG_EVENT_CONTEXT_VPID
>     LTTNG_UST_CONTEXT_VPID
>     LTTNG_EVENT_CONTEXT_PTHREAD_ID
>     LTTNG_EVENT_CONTEXT_PROCNAME
>     LTTNG_EVENT_CONTEXT_IP
>     LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER
> 
>     Well this does help a little ... If we dig a little deeper and search around we get more info and see that an enum from "./lttng-tools/include/lttng/event.h" lttng_event_context_t maps to another one in the lttng-tool side ( context_type in add_context.c)
> 
>     *Important Part*
>     So if we decrypt the macros and functions in add-context.c, we get that the following contexts are supported for UST:
> 
>     vpid
>     vtid
>     pthread_id
>     procname
>     ip
> 
>     perf:thread:cpu-cycles
>     perf:thread:cycles
>     perf:thread:stalled-cycles-frontend
>     perf:thread:idle-cycles-frontend
>     perf:thread:stalled-cycles-backend
>     perf:thread:idle-cycles-backend
>     perf:thread:instructions
>     perf:thread:cache-references
>     perf:thread:cache-misses
>     perf:thread:branch-instructions
>     perf:thread:branches
>     perf:thread:branch-misses
>     perf:thread:bus-cycles
> 
>     perf:thread:L1-dcache
>     perf:thread:L1-icache
>     perf:thread:LLC
>     perf:thread:dTLB
>     perf:thread:iTLB-loads
>     perf:thread:iTLB-load-misses
>     perf:thread:branch-loads
>     perf:thread:branch-load-misses
> 
>     perf:thread:cpu-clock
>     perf:thread:task-clock
>     perf:thread:page-fault
>     perf:thread:faults
>     perf:thread:major-faults
>     perf:thread:minor-faults
>     perf:thread:context-switches
>     perf:thread:cs
>     perf:thread:cpu-migrations
>     perf:thread:migrations
>     perf:thread:alignment-faults
>     perf:thread:emulation-faults
> 
>     **(TL;DR : perf:cpu:cpu-cycles is not in the list)**
> 
>     If you want perf:cpu:cpu-cycles you will need a kernel tracing domain.
> 
>     Even if it make sense that a ust tracing session cannot touch hardware stuff it won’t hurt to be more explicit about it. :).
> 
>     >
>     > We have another machine with 2.5.0 (modules are not installed though) and adding perf:cpu:cpu-cycles works fine, but it is always zero in results.
> 
>     As for this, I cannot explain why lttng-tool does not complain on adding the context.
>     You can open a bug here http://bugs.lttng.org/projects/lttng-tools (you will need to create an account and sign in)
> 
>     Cheers,
>     Jonathan
> 
>     >
>     > --
>     > Cheers,
>     > Evgeniy
>     >
>     >
>     > _______________________________________________
>     > lttng-dev mailing list
>     > lttng-dev at lists.lttng.org <mailto:lttng-dev at lists.lttng.org>
>     > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>     >
> 
> 
> 
> 
> -- 
> Cheers,
> Evgeniy




More information about the lttng-dev mailing list