[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