[ltt-dev] Extended network tracepoints
Mathieu Desnoyers
compudj at krystal.dyndns.org
Fri Oct 23 10:34:35 EDT 2009
* Mathieu Desnoyers (compudj at krystal.dyndns.org) wrote:
> * Benjamin Poirier (benjamin.poirier at polymtl.ca) wrote:
> (append)
>
> Modify tracepoints and probes to record many header fields from TCP and UDP
> messages. Here are the consequences of this:
> 1) it allows analyzing network traffic to provide some pcap-like
> functionality within LTTng
> 2) it allows offline synchronization of a group of concurrent traces
> recorded on different nodes
> 3) it increases tracing overhead
>
> > When tracing, you can leave out these extended probes or not activate the
> > *_extended markers if you are not especially interested in the details of
> > network traffic and do not wish to synchronize distributed traces.
> >
> > For those eager to try out time synchronization in lttv, a development tree is
> > available these days at:
> > git clone git://hal.drap.polymtl.ca/lttv-sync.git
> >
> > See lttv/lttv/sync/README in there for instructions and info. You need traces
> > with the *_extended events, so you need an lttng with the patches in this
> > series too.
> >
> > Sample traces showcasing a web client and server are also available at:
> > http://hal.drap.polymtl.ca/results55.tar.bz2
> >
> > Using lttv built from the git tree above, first have a look at the traces
> > without synchronization. From the base of the build dir and adjusting the
> > paths to the traces:
> > $ ./runlttv /tmp/results55/client /tmp/results55/server
> >
> > The web client is wget (PID 1709). Apache spawns a truckload of processes, the
> > relevant ones are PID 2171 & 2196. Display the relevant processes in lttv
> > using the following filter in the control flow view:
> > (event.target_pid=1709|event.target_pid=2171|event.target_pid=2196)
> > Notice that wget (around time 323) is done before the trace with apache is
> > even started. Apache processes the request around time 363. Something is not
> > right, and that's because the traces are not synchronized.
> >
> > Now have a look at the traces with synchronization:
> > ./runlttv -a"--sync" /tmp/results55/client /tmp/results55/server
> > Zoom in around time 363 and redraw the window or use the same filter as above
> > to see the wget and apache processes. We can now follow the request from the
> > client to the server. We see that wget blocks a little bit waiting for the
> > connection to be established and then a lot longer while apache is processing.
> > We can see that apache is waiting on a lot of page faults, probably because it
> > was the first request it served since being started, ...
> >
> > Have fun, feedback is welcome,
>
> This is a very neat patchset, thanks a lot !
>
> I'm merging it in the forthcoming LTTng release, which will be 0.163.
I'm also modifying ltt-armall and ltt-disarmall so the _extended markers
are not enabled by default. It's important for configurations where
probes are built into the kernel. I'm adding the net
ltt-armnetsync/ltt-disarmnetsync to control these extended information
markers. It will be in ltt-control 0.72.
Mathieu
>
> Mathieu
>
> > -Ben
> >
> > --
> >
> > [PATCH 1/4] Move network tracepoints
> > [PATCH 2/4] Trace incoming TCP traffic
> > [PATCH 3/4] Trace incomming UDP traffic
> > [PATCH 4/4] Add probes for detailed tracing of network traffic
> >
> > include/linux/ltt-type-serializer.h | 49 ++++++++++++
> > include/trace/net.h | 6 ++
> > ltt/probes/Makefile | 3 +-
> > ltt/probes/net-extended-trace.c | 143 +++++++++++++++++++++++++++++++++++
> > ltt/probes/net-trace.c | 28 +++++++
> > net/core/dev.c | 10 ++-
> > net/ipv4/tcp_ipv4.c | 7 ++
> > net/ipv4/udp.c | 5 +
> > 8 files changed, 248 insertions(+), 3 deletions(-)
> >
>
> --
> Mathieu Desnoyers
> OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
More information about the lttng-dev
mailing list