> On Nov 21, 2014, at 1:06 PM, David Goulet <dgou...@ev0ke.net> wrote: > > On 21 Nov (12:59:43), Rob Jansen wrote: >> >>> On Nov 21, 2014, at 10:40 AM, David Goulet <dgou...@ev0ke.net> wrote: >>> >>> Please see https://trac.torproject.org/projects/tor/ticket/13802 about >>> the instrumentation part. We'll definitely have to talk more on the >>> integration of Shadow and a userspace tracer but of what I got from >>> Nick, it sounds totally doable without too much trouble. >> >> If we want the tracer to also work inside of Shadow, then the biggest >> potential problem I can think of right now is thread safety. Shadow uses >> several worker threads, each of which are assigned to run hundreds to >> thousands of Tor nodes. If Tor is using lttng as a dynamic library and it is >> not thread-safe, we will run into issues. >> >> One way to avoid those issues could be to statically link lttng to Tor. >> However, even this could go bad if lttng uses global state, because that >> would mean that those hundreds of Tor nodes assigned to a Shadow worker >> thread would be sharing that state. Probably not what we want. To get around >> the global state issue, Shadow would have to compile lttng specially, using >> the same LLVM pass to hoist out the global variables as we use for Tor. That >> may get messy. > > LTTng is an inprocess library and spawns a thread to handle all the > tracing and interaction with the main tracing registry of lttng (that > manages the buffers, clients, consumers, streaming, etc...). > > Nick told me that Shadow moves forward the clock so as long as you > highjack clock_gettime for monotonic time, we'll be fine :). >
Great! Shadow does interpose clock_gettime (among other time functions). >> >> So it really depends on how robust lttng is, and as I have no experience >> with it, I can only speculate. But if you let me know when you have some >> minimal instrumentation ready, I can test in Shadow early enough that we >> could adjust if needed. > > The LTTng userspace tracer is thread safe, no issue with that :). > That’s a relief! > I already have a couple of tracepoints in the HS client subsystem as we > speak, I'm currently adding more to do some very basic measurements on > the timings of each client HS cell (in rend_process_relay_cell()). > > Once I have something that you can try, I'll send you a link to the > branch with the instrumentation and you can see if you can make it > happen with shadow :). > OK, great! -Rob > Cheers! > David > >> >> -Rob _______________________________________________ tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev