update LTT viewing tools README
[lttv.git] / ltt / branches / poly / QUICKSTART
index 5afe4215b561ddaf3572f3f7235284ce082812c4..a47a5ee25f614305f9d4c8d0d4e32d1ddb4f8a64 100644 (file)
@@ -13,7 +13,7 @@ applications.
 What you will typically want is to read sections 2 and 3 : install LTTng from
 sources and use it.
 
-These operations are made for installing the LTTng 0.5.X tracer on a
+These operations are made for installing the LTTng 0.6.X tracer on a
 linux 2.6.X kernel. You will also find instructions for installation of
 LTTV 0.8.x : the Linux Trace Toolkit Viewer. 
 
@@ -38,6 +38,7 @@ supported architectures :
 Intel Pentium (UP/SMP) with TSC
 PowerPC 32 and 64 bits
 ARM
+x86_64
 C2 Microsystems (variant of MIPS)
 
 LTTV :
@@ -207,7 +208,9 @@ cd /usr/src
 wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.X.tar.bz2
 bzip2 -cd linux-2.6.X.tar.bz2 | tar xvof -
 cd linux-2.6.X
-cat /usr/src/lttng/patch-2.6.X-lttng-0.x.xx* | patch -p1
+- For LTTng 0.9.4- cat /usr/src/lttng/patch*-2.6.X-lttng-0.x.xx* | patch -p1
+- For LTTng 0.9.5+ apply the patches in the order specified in the series file,
+  or use quilt
 cd ..
 mv linux-2.6.X linux-2.6.X-lttng-0.x.xx
 
@@ -226,31 +229,36 @@ make menuconfig (or make xconfig or make config)
     Select the following options :
     [*] Linux Trace Toolkit Instrumentation Support
     <M> or <*> Linux Trace Toolkit Tracer
+      <M> or <*> Linux Trace Toolkit Relay+DebugFS Support
         It makes no difference for the rest of the procedure whether the Tracer
         is compiled built-in or as a module.
     activate :
        [*] Align Linux Trace Toolkit Traces
        [*] Allow tracing from userspace
+       <M> Linux Trace Toolkit Netlink Controller
+       <M> Linux Trace Toolkit State Dump
     your choice (see < Help >) :
        [ ] Activate Linux Trace Toolkit Heartbeat Timer
-    You may or may not activate instrumentation per facility. They are all
-    selected for logging by default. It can be used as a compile time filter to
-    enable/disable logging of events. It is useful to discard events with a
-    minimal impact on the system and especially useful for now, as the dynamic
-    filter has not been implemented yet.
-    Select <Exit>
+    You may or may not decide to compile probes. Afterward, you will have to
+    load the probe modules to enable tracing of their events. The probes
+    automatically select the appropriate facilities.
+    Static instrumentation is a more invasive type of instrumentation that gives
+    the address taking a lock or doing a printk.
+  Select <Exit>
   Select <Exit>
   Select <Yes>
 make
 make modules_install
+(if necessary, create a initrd with mkinitrd or your preferate alternative)
+(mkinitrd -o /boot/initrd.img-2.6.X-lttng-0.x.xx 2.6.X-lttng-0.x.xx)
 
 -- on X86, X86_64
 make install
 reboot
-Select the Linux 2.6.16-lttng-0.x.xx kernel in your boot loader.
+Select the Linux 2.6.17-lttng-0.x.xx kernel in your boot loader.
 
 -- on PowerPC
-cp vmlinux /boot/vmlinux-2.6.X-lttng-0.x.xx
+cp vmlinux.strip /boot/vmlinux-2.6.X-lttng-0.x.xx
 cp System.map /boot/System.map-2.6.X-lttng-0.x.xx
 cp .config /boot/config-2.6.X-lttng-0.x.xx
 depmod -ae -F /boot/System.map-2.6.X-lttng-0.x.xx 2.6.X-lttng-0.x.xx
@@ -260,30 +268,40 @@ that comes first is the default kernel)
 ybin
 select the right entry at the yaboot prompt (see choices : tab, select : type
 the kernel name followed by enter)
-Select the Linux 2.6.16-lttng-0.x.xx kernel in your boot loader.
+Select the Linux 2.6.17-lttng-0.x.xx kernel in your boot loader.
 --
 
 
 
 * Editing the system wide configuration
 
-You must activate relayfs and specify a mount point. This is typically done in
+You must activate debugfs and specify a mount point. This is typically done in
 fstab such that it happens at boot time.
 
-If you have never used RelayFS before, these operation would do this for you :
+If you have never used DebugFS before, these operation would do this for you :
 
-mkdir /mnt/relayfs
+mkdir /mnt/debugfs
 cp /etc/fstab /etc/fstab.lttng.bkp
-echo "relayfs         /mnt/relayfs    relayfs rw              0       0"  >> /etc/fstab
+echo "debugfs         /mnt/debugfs    debugfs rw              0       0"  >> /etc/fstab
 
-then, rebooting or issuing the following command will activate relayfs :
+then, rebooting or issuing the following command will activate debugfs :
 
-mount /mnt/relayfs
+mount /mnt/debugfs
 
-You need to load the ltt-control module to be able to control tracing from user
+You need to load the LTT modules to be able to control tracing from user
 space. This is done by issuing the command :
 
 modprobe ltt-control
+modprobe ltt-core
+modprobe ltt-relay
+modprobe ltt-tracer
+modprobe ltt-probe-mm
+modprobe ltt-probe-kernel
+modprobe ltt-probe-i386 (or x86_64, powerpc, ppc, arm, mips)
+modprobe ltt-probe-net
+modprobe ltt-probe-list
+modprobe ltt-probe-ipc
+modprobe ltt-probe-fs
 
 If you want to have complete information about the kernel state (including all
 the process names), you need to load the ltt-statedump module. This is done by
@@ -293,9 +311,24 @@ modprobe ltt-statedump
 
 You can automate at boot time loading the ltt-control module by :
 
+cp /etc/modules /etc/modules.bkp
 echo ltt-control >> /etc/modules
+echo ltt-core >> /etc/modules
+echo ltt-relay >> /etc/modules
+echo ltt-tracer >> /etc/modules
+echo ltt-probe-mm >> /etc/modules
+echo ltt-probe-kernel >> /etc/modules
+echo ltt-probe-i386 >> /etc/modules (or x86_64, powerpc, ppc, arm, mips)
+echo ltt-probe-net >> /etc/modules
+echo ltt-probe-list >> /etc/modules
+echo ltt-probe-ipc >> /etc/modules
+echo ltt-probe-fs >> /etc/modules
 echo ltt-statedump >> /etc/modules
 
+(note : if you want to probe a marker which is within a module, make sure you
+load the probe _after_ the module, otherwise the probe will not be able to
+connect itself to the marker.)
+
 
 * Getting and installing the ltt-control package (on the traced machine)
 (note : the ltt-control package contains lttd and lttctl. Although it has the
@@ -354,7 +387,7 @@ root).
 
 Start tracing :
 
-lttctl -n trace -d -l /mnt/relayfs/ltt -t /tmp/trace
+lttctl -n trace -d -l /mnt/debugfs/ltt -t /tmp/trace
 
 Stop tracing and destroy trace channels :
 
@@ -362,10 +395,14 @@ lttctl -n trace -R
 
 see lttctl --help for details.
 
+(note : to see if the buffers has been filled, look at the dmesg output after
+lttctl -R or after stopping tracing from the GUI, it will show an event lost
+count. If it is the case, try using larger buffers. See lttctl --help to learn 
+how.)
 
 * Use text mode LTTV
 
-Fell free to look in /usr/local/lib/lttv/plugins to see all the text and
+Feel free to look in /usr/local/lib/lttv/plugins to see all the text and
 graphical plugins available.
 
 For example, a simple trace dump in text format is available with :
@@ -374,7 +411,11 @@ lttv -m textDump -t /tmp/trace
 
 see lttv -m textDump --help for detailed command line options of textDump.
 
-
+It is, in the current state of the project, very useful to use "grep" on the
+text output to filter by specific event fields. You can later copy the timestamp
+of the events to the clipboard and paste them in the GUI by clicking on the
+bottom right label "Current time". Support for this type of filtering should
+be added to the filter module soon.
 
 
 ***********************************************************
@@ -392,27 +433,40 @@ make
 make install
 
 
-* Add new events to the kernel with genevent
+* Add new events to the kernel with genevent (deprecated in LTTng 0.9.x)
 
 su -
-cd /usr/local/share/LinuxTraceToolkitViewer/facilities
+cd /usr/local/share/ltt-control/facilities
 cp process.xml yourfacility.xml
   * edit yourfacility.xml to fit your needs.
 cd /tmp
-/usr/local/bin/genevent /usr/local/share/LinuxTraceToolkitViewer/facilities/yourfacility.xml
+/usr/local/bin/genevent /usr/local/share/ltt-control/facilities/yourfacility.xml
 cp ltt-facility-yourfacility.h ltt-facility-id-yourfacility.h \
-         /usr/src/linux-2.6.16-lttng-0.x.xx8/include/linux/ltt
+         /usr/src/linux-2.6.17-lttng-0.x.xx8/include/ltt
 cp ltt-facility-loader-yourfacility.c ltt-facility-loader-yourfacility.h \
-         /usr/src/linux-2.6.16-lttng-0.x.xx/ltt
-  * edit the kernel file you want to instrument
-    - Add #include <linux/ltt/ltt-facility-yourfacility.h> at the beginning
-      of the file.
-    - Add a call to the tracing functions. See their names and parameters in
-      /usr/src/linux-2.6.16-lttng-0.x.xx/include/linux/ltt/ltt-facility-yourfacility.h
-    
+         /usr/src/linux-2.6.17-lttng-0.x.xx/ltt/facilities
+  * edit the kernel file you want to instrument to add a marker to it. See
+    include/linux/marker.h.
+  * create a dynamically loadable probe. See ltt/probes for examples. The probe
+    will be connected to your marker and will typically call the logging
+    functions found in the header file you created with genevent.
+
+* Add new kernel events
+
+*Important* note : in its current state, LTTng and LTTV needs the programmer
+to keep the marker/probe format string and the XML description of the
+event data types in sync by hand. Failure to do so will result in errors in
+LTTV.
+
+See the markers documentation to see how to describe the marker. You will need
+to clone probe modules found in ltt/probes to connect them to the markers so
+that the information can be recorded in the trace.
+
 * Add new events to userspace programs with genevent
 See http://ltt.polymtl.ca/ > USERSPACE TRACING QUICKSTART
 
+User-space tracing still uses genevent, which is subject to change in a near
+future.
 
 
 
This page took 0.025145 seconds and 4 git commands to generate.