[ltt-dev] ltt channel thread safe?
chris meyers
chris.meyers.fsu at gmail.com
Fri Aug 6 16:55:44 EDT 2010
Forget any mention of threading being the reason. After trying way too many
things, removal of the __FUNCTION__ macro seems to "fix" the problem. Does
the __FUNCTION__ macro not play well with ltt? The binary trace file
seemed void of any error. It seemed as if the __FUNCTION__ macro had some
indirect influence on how the lttv -m textDump behaved.
-Chris
On Wed, Aug 4, 2010 at 2:12 AM, chris meyers <chris.meyers.fsu at gmail.com>wrote:
> To give a bit of context to the problem. I am using user space ltt to help
> profile code. I have created two events, time_begin and time_end. The goal
> is to allow for logging the runtime of specific code blocks via start()
> stop() insertions.
>
> I am having some issues with traces not coming out "correct" on the other
> "end". Let me further explain what I mean by correct and end.
>
> correct
> trace_mark(ust, time_begin, "thread %d func %s depth %d extra %s", 0,
> __FUNCTION__, 1, __FUNCTION__)
> trace_mark(ust, time_end, "thread %d func %s depth %d extra %s", 0,
> __FUNCTION__, 1, __FUNCTION__)
>
> end
> ust.time_begin: 30208.932264102
> (/home/meyers/.usttraces/lappy-20100804020140730811027/28367_5501430910891543571/ust_0),
> 0, 0, , , 0, 0x0, MODE_UNKNOWN { thread = 1, func =
> "memloc_request_response_decider", depth = 1, extra =
> "memloc_request_response_decider" }
> ust.time_end: 30208.932267455
> (/home/meyers/.usttraces/lappy-20100804020140730811027/28367_5501430910891543571/ust_0),
> 0, 0, , , 0, 0x0, MODE_UNKNOWN { thread = 1, func =
> "memloc_request_response_decider", depth = 1, extra =
> "memloc_request_response_decider" }
>
> Later on the output looks like this:
> ust.time_begin: 30198.142843837
> (/home/meyers/.usttraces/lappy-20100804020140730811027/28367_5501430910891543571/ust_0),
> 0, 0, , , 0, 0x0, MODE_UNKNOWN { thread = 1, func = "ne_worker_thread",
> depth = 560296821, extra = "" }
>
> Notice that in the trace_mark() code above I hard coded depth to be 0 and
> _str is always __FUNCTION__.
>
> Possible reasons:
> * Buffer is being overrun. I changed the buffer size using the -N and -S
> options in usttrace to something > 2 MB (plenty large).
> * Channels are not thread-safe? I have 3 threads of execution in this
> example. All using the ust channel.
> * My code is crappy and I am overwriting the lust library buffer?
>
>
> Also, I am having trouble using any channel other than ust. Is ust the
> only channel available in user space?
>
> Many thanks,
> -Chris
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.casi.polymtl.ca/pipermail/lttng-dev/attachments/20100806/5aa70a13/attachment-0002.htm>
More information about the lttng-dev
mailing list