diff options
| author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2013-01-18 13:17:23 -0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-01-27 13:56:03 +0000 |
| commit | e4746a55e43b0ddde0b4b6070017ad7a5a002760 (patch) | |
| tree | 3a3efdd24d1a57b875a9fbc61fc5e7e970e40776 | |
| parent | 697b9ec4f7572e7b9ce361948ad8addc40197745 (diff) | |
| download | poky-e4746a55e43b0ddde0b4b6070017ad7a5a002760.tar.gz | |
profile-manual: Added LTTng section to usage chapter.
No re-writing at all.
(From yocto-docs rev: 6ed32ad5daa1f16c414da665a2fea498baefbe4a)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | documentation/profile-manual/profile-manual-usage.xml | 386 |
1 files changed, 386 insertions, 0 deletions
diff --git a/documentation/profile-manual/profile-manual-usage.xml b/documentation/profile-manual/profile-manual-usage.xml index 31ccfe6ebf..a777b4212a 100644 --- a/documentation/profile-manual/profile-manual-usage.xml +++ b/documentation/profile-manual/profile-manual-usage.xml | |||
| @@ -2881,18 +2881,404 @@ | |||
| 2881 | <ulink url='http://sysprof.com/'>Sysprof, System-wide Performance Profiler for Linux</ulink> | 2881 | <ulink url='http://sysprof.com/'>Sysprof, System-wide Performance Profiler for Linux</ulink> |
| 2882 | </para> | 2882 | </para> |
| 2883 | </section> | 2883 | </section> |
| 2884 | </section> | ||
| 2885 | |||
| 2886 | <section id='lttng-linux-trace-toolkit-next-generation'> | ||
| 2887 | <title>LTTng (Linux Trace Toolkit, next generation)</title> | ||
| 2884 | 2888 | ||
| 2889 | <section id='lttng-setup'> | ||
| 2890 | <title>Setup</title> | ||
| 2885 | 2891 | ||
| 2892 | <note> | ||
| 2893 | The lttng support in Yocto 1.3 (danny) needs the following poky | ||
| 2894 | commits applied in order to work: | ||
| 2895 | <itemizedlist> | ||
| 2896 | <listitem><para><ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=tzanussi/switch-to-lttng2&id=ea602300d9211669df0acc5c346e4486d6bf6f67'>http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=tzanussi/switch-to-lttng2&id=ea602300d9211669df0acc5c346e4486d6bf6f67</ulink> | ||
| 2897 | </para></listitem> | ||
| 2898 | <listitem><para><ulink url='http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=tzanussi/lttng-fixes.0&id=1d0dc88e1635cfc24612a3e97d0391facdc2c65f'>http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=tzanussi/lttng-fixes.0&id=1d0dc88e1635cfc24612a3e97d0391facdc2c65f</ulink> | ||
| 2899 | </para></listitem> | ||
| 2900 | </itemizedlist> | ||
| 2901 | If you also want to view the LTTng traces graphically, you also | ||
| 2902 | need to download and install/run the 'SR1' or later Juno release | ||
| 2903 | of eclipse e.g.: | ||
| 2904 | <ulink url='http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR1/eclipse-cpp-juno-SR1-linux-gtk-x86_64.tar.gz'>http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR1/eclipse-cpp-juno-SR1-linux-gtk-x86_64.tar.gz</ulink> | ||
| 2905 | </note> | ||
| 2906 | </section> | ||
| 2907 | |||
| 2908 | <section id='collecting-and-viewing-traces'> | ||
| 2909 | <title>Collecting and Viewing Traces</title> | ||
| 2910 | |||
| 2911 | <para> | ||
| 2912 | Once you've applied the above commits and built and booted your | ||
| 2913 | image (you need to build the core-image-sato-sdk image or the | ||
| 2914 | other methods described in the General Setup section), you're | ||
| 2915 | ready to start tracing. | ||
| 2916 | </para> | ||
| 2917 | |||
| 2918 | <section id='collecting-and-viewing-a-trace-on-the-target-inside-a-shell'> | ||
| 2919 | <title>Collecting and viewing a trace on the target (inside a shell)</title> | ||
| 2920 | |||
| 2921 | <para> | ||
| 2922 | First, from the target, ssh to the target: | ||
| 2923 | <literallayout class='monospaced'> | ||
| 2924 | $ ssh -l root 192.168.1.47 | ||
| 2925 | The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established. | ||
| 2926 | RSA key fingerprint is 23:bd:c8:b1:a8:71:52:00:ee:00:4f:64:9e:10:b9:7e. | ||
| 2927 | Are you sure you want to continue connecting (yes/no)? yes | ||
| 2928 | Warning: Permanently added '192.168.1.47' (RSA) to the list of known hosts. | ||
| 2929 | root@192.168.1.47's password: | ||
| 2930 | </literallayout> | ||
| 2931 | Once on the target, use these steps to create a trace: | ||
| 2932 | <literallayout class='monospaced'> | ||
| 2933 | root@crownbay:~# lttng create | ||
| 2934 | Spawning a session daemon | ||
| 2935 | Session auto-20121015-232120 created. | ||
| 2936 | Traces will be written in /home/root/lttng-traces/auto-20121015-232120 | ||
| 2937 | </literallayout> | ||
| 2938 | Enable the events you want to trace (in this case all | ||
| 2939 | kernel events): | ||
| 2940 | <literallayout class='monospaced'> | ||
| 2941 | root@crownbay:~# lttng enable-event --kernel --all | ||
| 2942 | All kernel events are enabled in channel channel0 | ||
| 2943 | </literallayout> | ||
| 2944 | Start the trace: | ||
| 2945 | <literallayout class='monospaced'> | ||
| 2946 | root@crownbay:~# lttng start | ||
| 2947 | Tracing started for session auto-20121015-232120 | ||
| 2948 | </literallayout> | ||
| 2949 | And then stop the trace after awhile or after running | ||
| 2950 | a particular workload that you want to trace: | ||
| 2951 | <literallayout class='monospaced'> | ||
| 2952 | root@crownbay:~# lttng stop | ||
| 2953 | Tracing stopped for session auto-20121015-232120 | ||
| 2954 | </literallayout> | ||
| 2955 | You can now view the trace in text form on the target: | ||
| 2956 | <literallayout class='monospaced'> | ||
| 2957 | root@crownbay:~# lttng view | ||
| 2958 | [23:21:56.989270399] (+?.?????????) sys_geteuid: { 1 }, { } | ||
| 2959 | [23:21:56.989278081] (+0.000007682) exit_syscall: { 1 }, { ret = 0 } | ||
| 2960 | [23:21:56.989286043] (+0.000007962) sys_pipe: { 1 }, { fildes = 0xB77B9E8C } | ||
| 2961 | [23:21:56.989321802] (+0.000035759) exit_syscall: { 1 }, { ret = 0 } | ||
| 2962 | [23:21:56.989329345] (+0.000007543) sys_mmap_pgoff: { 1 }, { addr = 0x0, len = 10485760, prot = 3, flags = 131362, fd = 4294967295, pgoff = 0 } | ||
| 2963 | [23:21:56.989351694] (+0.000022349) exit_syscall: { 1 }, { ret = -1247805440 } | ||
| 2964 | [23:21:56.989432989] (+0.000081295) sys_clone: { 1 }, { clone_flags = 0x411, newsp = 0xB5EFFFE4, parent_tid = 0xFFFFFFFF, child_tid = 0x0 } | ||
| 2965 | [23:21:56.989477129] (+0.000044140) sched_stat_runtime: { 1 }, { comm = "lttng-consumerd", tid = 1193, runtime = 681660, vruntime = 43367983388 } | ||
| 2966 | [23:21:56.989486697] (+0.000009568) sched_migrate_task: { 1 }, { comm = "lttng-consumerd", tid = 1193, prio = 20, orig_cpu = 1, dest_cpu = 1 } | ||
| 2967 | [23:21:56.989508418] (+0.000021721) hrtimer_init: { 1 }, { hrtimer = 3970832076, clockid = 1, mode = 1 } | ||
| 2968 | [23:21:56.989770462] (+0.000262044) hrtimer_cancel: { 1 }, { hrtimer = 3993865440 } | ||
| 2969 | [23:21:56.989771580] (+0.000001118) hrtimer_cancel: { 0 }, { hrtimer = 3993812192 } | ||
| 2970 | [23:21:56.989776957] (+0.000005377) hrtimer_expire_entry: { 1 }, { hrtimer = 3993865440, now = 79815980007057, function = 3238465232 } | ||
| 2971 | [23:21:56.989778145] (+0.000001188) hrtimer_expire_entry: { 0 }, { hrtimer = 3993812192, now = 79815980008174, function = 3238465232 } | ||
| 2972 | [23:21:56.989791695] (+0.000013550) softirq_raise: { 1 }, { vec = 1 } | ||
| 2973 | [23:21:56.989795396] (+0.000003701) softirq_raise: { 0 }, { vec = 1 } | ||
| 2974 | [23:21:56.989800635] (+0.000005239) softirq_raise: { 0 }, { vec = 9 } | ||
| 2975 | [23:21:56.989807130] (+0.000006495) sched_stat_runtime: { 1 }, { comm = "lttng-consumerd", tid = 1193, runtime = 330710, vruntime = 43368314098 } | ||
| 2976 | [23:21:56.989809993] (+0.000002863) sched_stat_runtime: { 0 }, { comm = "lttng-sessiond", tid = 1181, runtime = 1015313, vruntime = 36976733240 } | ||
| 2977 | [23:21:56.989818514] (+0.000008521) hrtimer_expire_exit: { 0 }, { hrtimer = 3993812192 } | ||
| 2978 | [23:21:56.989819631] (+0.000001117) hrtimer_expire_exit: { 1 }, { hrtimer = 3993865440 } | ||
| 2979 | [23:21:56.989821866] (+0.000002235) hrtimer_start: { 0 }, { hrtimer = 3993812192, function = 3238465232, expires = 79815981000000, softexpires = 79815981000000 } | ||
| 2980 | [23:21:56.989822984] (+0.000001118) hrtimer_start: { 1 }, { hrtimer = 3993865440, function = 3238465232, expires = 79815981000000, softexpires = 79815981000000 } | ||
| 2981 | [23:21:56.989832762] (+0.000009778) softirq_entry: { 1 }, { vec = 1 } | ||
| 2982 | [23:21:56.989833879] (+0.000001117) softirq_entry: { 0 }, { vec = 1 } | ||
| 2983 | [23:21:56.989838069] (+0.000004190) timer_cancel: { 1 }, { timer = 3993871956 } | ||
| 2984 | [23:21:56.989839187] (+0.000001118) timer_cancel: { 0 }, { timer = 3993818708 } | ||
| 2985 | [23:21:56.989841492] (+0.000002305) timer_expire_entry: { 1 }, { timer = 3993871956, now = 79515980, function = 3238277552 } | ||
| 2986 | [23:21:56.989842819] (+0.000001327) timer_expire_entry: { 0 }, { timer = 3993818708, now = 79515980, function = 3238277552 } | ||
| 2987 | [23:21:56.989854831] (+0.000012012) sched_stat_runtime: { 1 }, { comm = "lttng-consumerd", tid = 1193, runtime = 49237, vruntime = 43368363335 } | ||
| 2988 | [23:21:56.989855949] (+0.000001118) sched_stat_runtime: { 0 }, { comm = "lttng-sessiond", tid = 1181, runtime = 45121, vruntime = 36976778361 } | ||
| 2989 | [23:21:56.989861257] (+0.000005308) sched_stat_sleep: { 1 }, { comm = "kworker/1:1", tid = 21, delay = 9451318 } | ||
| 2990 | [23:21:56.989862374] (+0.000001117) sched_stat_sleep: { 0 }, { comm = "kworker/0:0", tid = 4, delay = 9958820 } | ||
| 2991 | [23:21:56.989868241] (+0.000005867) sched_wakeup: { 0 }, { comm = "kworker/0:0", tid = 4, prio = 120, success = 1, target_cpu = 0 } | ||
| 2992 | [23:21:56.989869358] (+0.000001117) sched_wakeup: { 1 }, { comm = "kworker/1:1", tid = 21, prio = 120, success = 1, target_cpu = 1 } | ||
| 2993 | [23:21:56.989877460] (+0.000008102) timer_expire_exit: { 1 }, { timer = 3993871956 } | ||
| 2994 | [23:21:56.989878577] (+0.000001117) timer_expire_exit: { 0 }, { timer = 3993818708 } | ||
| 2995 | . | ||
| 2996 | . | ||
| 2997 | . | ||
| 2998 | </literallayout> | ||
| 2999 | You can now safely destroy the trace session (note that | ||
| 3000 | this doesn't delete the trace - it's still there | ||
| 3001 | in ~/lttng-traces): | ||
| 3002 | <literallayout class='monospaced'> | ||
| 3003 | root@crownbay:~# lttng destroy | ||
| 3004 | Session auto-20121015-232120 destroyed at /home/root | ||
| 3005 | </literallayout> | ||
| 3006 | Note that the trace is saved in a directory of the same | ||
| 3007 | name as returned by 'lttng create', under the ~/lttng-traces | ||
| 3008 | directory (note that you can change this by supplying your | ||
| 3009 | own name to 'lttng create'): | ||
| 3010 | <literallayout class='monospaced'> | ||
| 3011 | root@crownbay:~# ls -al ~/lttng-traces | ||
| 3012 | drwxrwx--- 3 root root 1024 Oct 15 23:21 . | ||
| 3013 | drwxr-xr-x 5 root root 1024 Oct 15 23:57 .. | ||
| 3014 | drwxrwx--- 3 root root 1024 Oct 15 23:21 auto-20121015-232120 | ||
| 3015 | </literallayout> | ||
| 3016 | </para> | ||
| 3017 | </section> | ||
| 3018 | |||
| 3019 | <section id='collecting-and-viewing-a-userspace-trace-on-the-target-inside-a-shell'> | ||
| 3020 | <title>Collecting and viewing a userspace trace on the target (inside a shell)</title> | ||
| 3021 | |||
| 3022 | <para> | ||
| 3023 | For lttng userspace tracing, you need to have a properly | ||
| 3024 | instrumented userspace program. For this example, we'll use | ||
| 3025 | the 'hello' test program generated by the lttng-ust build. | ||
| 3026 | </para> | ||
| 3027 | |||
| 3028 | <para> | ||
| 3029 | The 'hello' test program isn't installed on the rootfs by | ||
| 3030 | the lttng-ust build, so we need to copy it over manually. | ||
| 3031 | First cd into the build directory that contains the hello | ||
| 3032 | executable: | ||
| 3033 | <literallayout class='monospaced'> | ||
| 3034 | $ cd build/tmp/work/core2-poky-linux/lttng-ust/2.0.5-r0/git/tests/hello/.libs | ||
| 3035 | </literallayout> | ||
| 3036 | Copy that over to the target machine: | ||
| 3037 | <literallayout class='monospaced'> | ||
| 3038 | $ scp hello root@192.168.1.20: | ||
| 3039 | </literallayout> | ||
| 3040 | You now have the instrumented lttng 'hello world' test | ||
| 3041 | program on the target, ready to test. | ||
| 3042 | </para> | ||
| 2886 | 3043 | ||
| 3044 | <para> | ||
| 3045 | First, from the target, ssh to the target: | ||
| 3046 | <literallayout class='monospaced'> | ||
| 3047 | $ ssh -l root 192.168.1.47 | ||
| 3048 | The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established. | ||
| 3049 | RSA key fingerprint is 23:bd:c8:b1:a8:71:52:00:ee:00:4f:64:9e:10:b9:7e. | ||
| 3050 | Are you sure you want to continue connecting (yes/no)? yes | ||
| 3051 | Warning: Permanently added '192.168.1.47' (RSA) to the list of known hosts. | ||
| 3052 | root@192.168.1.47's password: | ||
| 3053 | </literallayout> | ||
| 3054 | Once on the target, use these steps to create a trace: | ||
| 3055 | <literallayout class='monospaced'> | ||
| 3056 | root@crownbay:~# lttng create | ||
| 3057 | Session auto-20190303-021943 created. | ||
| 3058 | Traces will be written in /home/root/lttng-traces/auto-20190303-021943 | ||
| 3059 | </literallayout> | ||
| 3060 | Enable the events you want to trace (in this case all | ||
| 3061 | userspace events): | ||
| 3062 | <literallayout class='monospaced'> | ||
| 3063 | root@crownbay:~# lttng enable-event --userspace --all | ||
| 3064 | All UST events are enabled in channel channel0 | ||
| 3065 | </literallayout> | ||
| 3066 | Start the trace: | ||
| 3067 | <literallayout class='monospaced'> | ||
| 3068 | root@crownbay:~# lttng start | ||
| 3069 | Tracing started for session auto-20190303-021943 | ||
| 3070 | </literallayout> | ||
| 3071 | Run the instrumented hello world program: | ||
| 3072 | <literallayout class='monospaced'> | ||
| 3073 | root@crownbay:~# ./hello | ||
| 3074 | Hello, World! | ||
| 3075 | Tracing... done. | ||
| 3076 | </literallayout> | ||
| 3077 | And then stop the trace after awhile or after running a | ||
| 3078 | particular workload that you want to trace: | ||
| 3079 | <literallayout class='monospaced'> | ||
| 3080 | root@crownbay:~# lttng stop | ||
| 3081 | Tracing stopped for session auto-20190303-021943 | ||
| 3082 | </literallayout> | ||
| 3083 | You can now view the trace in text form on the target: | ||
| 3084 | <literallayout class='monospaced'> | ||
| 3085 | root@crownbay:~# lttng view | ||
| 3086 | [02:31:14.906146544] (+?.?????????) hello:1424 ust_tests_hello:tptest: { cpu_id = 1 }, { intfield = 0, intfield2 = 0x0, longfield = 0, netintfield = 0, netintfieldhex = 0x0, arrfield1 = [ [0] = 1, [1] = 2, [2] = 3 ], arrfield2 = "test", _seqfield1_length = 4, seqfield1 = [ [0] = 116, [1] = 101, [2] = 115, [3] = 116 ], _seqfield2_length = 4, seqfield2 = "test", stringfield = "test", floatfield = 2222, doublefield = 2, boolfield = 1 } | ||
| 3087 | [02:31:14.906170360] (+0.000023816) hello:1424 ust_tests_hello:tptest: { cpu_id = 1 }, { intfield = 1, intfield2 = 0x1, longfield = 1, netintfield = 1, netintfieldhex = 0x1, arrfield1 = [ [0] = 1, [1] = 2, [2] = 3 ], arrfield2 = "test", _seqfield1_length = 4, seqfield1 = [ [0] = 116, [1] = 101, [2] = 115, [3] = 116 ], _seqfield2_length = 4, seqfield2 = "test", stringfield = "test", floatfield = 2222, doublefield = 2, boolfield = 1 } | ||
| 3088 | [02:31:14.906183140] (+0.000012780) hello:1424 ust_tests_hello:tptest: { cpu_id = 1 }, { intfield = 2, intfield2 = 0x2, longfield = 2, netintfield = 2, netintfieldhex = 0x2, arrfield1 = [ [0] = 1, [1] = 2, [2] = 3 ], arrfield2 = "test", _seqfield1_length = 4, seqfield1 = [ [0] = 116, [1] = 101, [2] = 115, [3] = 116 ], _seqfield2_length = 4, seqfield2 = "test", stringfield = "test", floatfield = 2222, doublefield = 2, boolfield = 1 } | ||
| 3089 | [02:31:14.906194385] (+0.000011245) hello:1424 ust_tests_hello:tptest: { cpu_id = 1 }, { intfield = 3, intfield2 = 0x3, longfield = 3, netintfield = 3, netintfieldhex = 0x3, arrfield1 = [ [0] = 1, [1] = 2, [2] = 3 ], arrfield2 = "test", _seqfield1_length = 4, seqfield1 = [ [0] = 116, [1] = 101, [2] = 115, [3] = 116 ], _seqfield2_length = 4, seqfield2 = "test", stringfield = "test", floatfield = 2222, doublefield = 2, boolfield = 1 } | ||
| 3090 | . | ||
| 3091 | . | ||
| 3092 | . | ||
| 3093 | </literallayout> | ||
| 3094 | You can now safely destroy the trace session (note that | ||
| 3095 | this doesn't delete the trace - it's still | ||
| 3096 | there in ~/lttng-traces): | ||
| 3097 | <literallayout class='monospaced'> | ||
| 3098 | root@crownbay:~# lttng destroy | ||
| 3099 | Session auto-20190303-021943 destroyed at /home/root | ||
| 3100 | </literallayout> | ||
| 3101 | </para> | ||
| 3102 | </section> | ||
| 2887 | 3103 | ||
| 3104 | <section id='manually-copying-a-trace-to-the-host-and-viewing-it-in-eclipse'> | ||
| 3105 | <title>Manually copying a trace to the host and viewing it in Eclipse (i.e. using Eclipse without network support)</title> | ||
| 2888 | 3106 | ||
| 3107 | <para> | ||
| 3108 | If you already have an LTTng trace on a remote target and | ||
| 3109 | would like to view it in Eclipse on the host, you can easily | ||
| 3110 | copy it from the target to the host and import it into | ||
| 3111 | Eclipse to view it using the LTTng Eclipse plugin already | ||
| 3112 | bundled in the Eclipse (Juno SR1 or greater). | ||
| 3113 | </para> | ||
| 2889 | 3114 | ||
| 3115 | <para> | ||
| 3116 | Using the trace we created in the previous section, archive | ||
| 3117 | it and copy it to your host system: | ||
| 3118 | <literallayout class='monospaced'> | ||
| 3119 | root@crownbay:~/lttng-traces# tar zcvf auto-20121015-232120.tar.gz auto-20121015-232120 | ||
| 3120 | auto-20121015-232120/ | ||
| 3121 | auto-20121015-232120/kernel/ | ||
| 3122 | auto-20121015-232120/kernel/metadata | ||
| 3123 | auto-20121015-232120/kernel/channel0_1 | ||
| 3124 | auto-20121015-232120/kernel/channel0_0 | ||
| 3125 | |||
| 3126 | $ scp root@192.168.1.47:lttng-traces/auto-20121015-232120.tar.gz . | ||
| 3127 | root@192.168.1.47's password: | ||
| 3128 | auto-20121015-232120.tar.gz 100% 1566KB 1.5MB/s 00:01 | ||
| 3129 | </literallayout> | ||
| 3130 | Unarchive it on the host: | ||
| 3131 | <literallayout class='monospaced'> | ||
| 3132 | $ gunzip -c auto-20121015-232120.tar.gz | tar xvf - | ||
| 3133 | auto-20121015-232120/ | ||
| 3134 | auto-20121015-232120/kernel/ | ||
| 3135 | auto-20121015-232120/kernel/metadata | ||
| 3136 | auto-20121015-232120/kernel/channel0_1 | ||
| 3137 | auto-20121015-232120/kernel/channel0_0 | ||
| 3138 | </literallayout> | ||
| 3139 | We can now import the trace into Eclipse and view it: | ||
| 3140 | <orderedlist> | ||
| 3141 | <listitem><para>First, start eclipse and open the | ||
| 3142 | 'LTTng Kernel' perspective by selecting the following | ||
| 3143 | menu item: | ||
| 3144 | <literallayout class='monospaced'> | ||
| 3145 | Window | Open Perspective | Other... | ||
| 3146 | </literallayout></para></listitem> | ||
| 3147 | <listitem><para>In the dialog box that opens, select | ||
| 3148 | 'LTTng Kernel' from the list.</para></listitem> | ||
| 3149 | <listitem><para>Back at the main menu, select the | ||
| 3150 | following menu item: | ||
| 3151 | <literallayout class='monospaced'> | ||
| 3152 | File | New | Project... | ||
| 3153 | </literallayout></para></listitem> | ||
| 3154 | <listitem><para>In the dialog box that opens, select | ||
| 3155 | the 'Tracing | Tracing Project' wizard and press | ||
| 3156 | 'Next>'.</para></listitem> | ||
| 3157 | <listitem><para>Give the project a name and press | ||
| 3158 | 'Finish'.</para></listitem> | ||
| 3159 | <listitem><para>In the 'Project Explorer' pane under | ||
| 3160 | the project you created, right click on the | ||
| 3161 | 'Traces' item.</para></listitem> | ||
| 3162 | <listitem><para>Select 'Import..." and in the dialog | ||
| 3163 | that's displayed:</para></listitem> | ||
| 3164 | <listitem><para>Browse the filesystem and find the | ||
| 3165 | select the 'kernel' directory containing the trace | ||
| 3166 | you copied from the target | ||
| 3167 | e.g. auto-20121015-232120/kernel</para></listitem> | ||
| 3168 | <listitem><para>'Checkmark' the directory in the tree | ||
| 3169 | that's displayed for the trace</para></listitem> | ||
| 3170 | <listitem><para>Below that, select 'Common Trace Format: | ||
| 3171 | Kernel Trace' for the 'Trace Type'</para></listitem> | ||
| 3172 | <listitem><para>Press 'Finish' to close the dialog | ||
| 3173 | </para></listitem> | ||
| 3174 | <listitem><para>Back in the 'Project Explorer' pane, | ||
| 3175 | double-click on the 'kernel' item for the | ||
| 3176 | trace you just imported under 'Traces' | ||
| 3177 | </para></listitem> | ||
| 3178 | </orderedlist> | ||
| 3179 | You should now see your trace data displayed graphically | ||
| 3180 | in several different views in Eclipse: | ||
| 3181 | </para> | ||
| 3182 | |||
| 3183 | <para> | ||
| 3184 | <imagedata fileref="figures/lttngmain0.png" width="6in" depth="7in" align="center" scalefit="1" /> | ||
| 3185 | </para> | ||
| 3186 | |||
| 3187 | <para> | ||
| 3188 | You can access extensive help information on how to use | ||
| 3189 | the LTTng plugin to search and analyze captured traces via | ||
| 3190 | the Eclipse help system: | ||
| 3191 | <literallayout class='monospaced'> | ||
| 3192 | Help | Help Contents | LTTng Plug-in User Guide | ||
| 3193 | </literallayout> | ||
| 3194 | </para> | ||
| 3195 | </section> | ||
| 2890 | 3196 | ||
| 3197 | <section id='collecting-and-viewing-a-trace-in-eclipse'> | ||
| 3198 | <title>Collecting and viewing a trace in Eclipse</title> | ||
| 2891 | 3199 | ||
| 3200 | <note> | ||
| 3201 | This section on collecting traces remotely doesn't currently | ||
| 3202 | work because of Eclipse 'RSE' connectivity problems. Manually | ||
| 3203 | tracing on the target, copying the trace files to the host, | ||
| 3204 | and viewing the trace in Eclipse on the host as outlined in | ||
| 3205 | previous steps does work however - please use the manual | ||
| 3206 | steps outlined above to view traces in Eclipse. | ||
| 3207 | </note> | ||
| 2892 | 3208 | ||
| 3209 | <para> | ||
| 3210 | In order to trace a remote target, you also need to add | ||
| 3211 | a 'tracing' group on the target and connect as a user | ||
| 3212 | who's part of that group e.g: | ||
| 3213 | <literallayout class='monospaced'> | ||
| 3214 | # adduser tomz | ||
| 3215 | # groupadd -r tracing | ||
| 3216 | # usermod -a -G tracing tomz | ||
| 3217 | </literallayout> | ||
| 3218 | <orderedlist> | ||
| 3219 | <listitem><para>First, start eclipse and open the | ||
| 3220 | 'LTTng Kernel' perspective by selecting the following | ||
| 3221 | menu item: | ||
| 3222 | <literallayout class='monospaced'> | ||
| 3223 | Window | Open Perspective | Other... | ||
| 3224 | </literallayout></para></listitem> | ||
| 3225 | <listitem><para>In the dialog box that opens, select | ||
| 3226 | 'LTTng Kernel' from the list.</para></listitem> | ||
| 3227 | <listitem><para>Back at the main menu, select the | ||
| 3228 | following menu item: | ||
| 3229 | <literallayout class='monospaced'> | ||
| 3230 | File | New | Project... | ||
| 3231 | </literallayout></para></listitem> | ||
| 3232 | <listitem><para>In the dialog box that opens, select | ||
| 3233 | the 'Tracing | Tracing Project' wizard and | ||
| 3234 | press 'Next>'.</para></listitem> | ||
| 3235 | <listitem><para>Give the project a name and press | ||
| 3236 | 'Finish'. That should result in an entry in the | ||
| 3237 | 'Project' subwindow.</para></listitem> | ||
| 3238 | <listitem><para>In the 'Control' subwindow just below | ||
| 3239 | it, press 'New Connection'.</para></listitem> | ||
| 3240 | <listitem><para>Add a new connection, giving it the | ||
| 3241 | hostname or IP address of the target system. | ||
| 3242 | </para></listitem> | ||
| 3243 | <listitem><para>Provide the username and password | ||
| 3244 | of a qualified user (a member of the 'tracing' group) | ||
| 3245 | or root account on the target system. | ||
| 3246 | </para></listitem> | ||
| 3247 | <listitem><para>Provide appropriate answers to whatever | ||
| 3248 | else is asked for e.g. 'secure storage password' | ||
| 3249 | can be anything you want. | ||
| 3250 | If you get an 'RSE Error' it may be due to proxies. | ||
| 3251 | It may be possible to get around the problem by | ||
| 3252 | changing the following setting: | ||
| 3253 | <literallayout class='monospaced'> | ||
| 3254 | Window | Preferences | Network Connections | ||
| 3255 | </literallayout> | ||
| 3256 | Switch 'Active Provider' to 'Direct' | ||
| 3257 | </para></listitem> | ||
| 3258 | </orderedlist> | ||
| 3259 | </para> | ||
| 3260 | </section> | ||
| 3261 | </section> | ||
| 2893 | 3262 | ||
| 3263 | <section id='lltng-documentation'> | ||
| 3264 | <title>Documentation</title> | ||
| 2894 | 3265 | ||
| 3266 | <para> | ||
| 3267 | There doesn't seem to be any current documentation covering | ||
| 3268 | LTTng 2.0, but maybe that's because the project is in transition. | ||
| 3269 | The LTTng 2.0 website, however, is here: | ||
| 3270 | <ulink url='http://lttng.org/lttng2.0'>LTTng Project</ulink> | ||
| 3271 | </para> | ||
| 2895 | 3272 | ||
| 3273 | <para> | ||
| 3274 | You can access extensive help information on how to use the | ||
| 3275 | LTTng plug-in to search and analyze captured traces via the | ||
| 3276 | Eclipse help system: | ||
| 3277 | <literallayout class='monospaced'> | ||
| 3278 | Help | Help Contents | LTTng Plug-in User Guide | ||
| 3279 | </literallayout> | ||
| 3280 | </para> | ||
| 3281 | </section> | ||
| 2896 | 3282 | ||
| 2897 | 3283 | ||
| 2898 | </section> | 3284 | </section> |
