lkml.org 
[lkml]   [2009]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subject[RFC patch 00/41] LTTng 0.105 core for Linux 2.6.27-rc9
    Hi,

    I spent the last 4-5 months working with the Fujitsu team at implementing the
    tracer elements identified as goals at Kernel Summit 2008 and at the following
    Plumber Conference. My idea was to incremententally adapt the LTTng tracer,
    currently used in the industry and well tested, to those requirements.

    I spent the last days rearranging/folding/inspecting the LTTng patchset
    to prepare it for an LKML post. The version 0.105 in the LTTng git tree
    corresponds to the patchset I am posting here. The said patchset will
    only include the core features of LTTng, excluding the timestamping
    infrastructure (trace clock) and excluding the instrumentation.

    The corresponding git tree contains also the trace clock patches and the lttng
    instrumentation. The trace clock is required to use the tracer, but it can be
    used without the instrumentation : there is already a kprobes and userspace
    event support included in this patchset.

    This tracer exports binary data through buffers using splice(). The resulting
    binary files can be parsed from userspace because the format string metadata is
    exported in the files. The event set can be enhanced by adding tracepoints to
    the kernel code and by creating probe modules, which connects callbacks to the
    tracepoints and contain the format string metainformation. Those callbacks are
    responsible for writing the data in the trace buffers. This separation between
    the trace buffer format string and the tracepoints is done on purpose so the
    core kernel instrumentation (tracepoints) is not exported to userspace, which
    will make maintainance much easier.

    The tree including the trace clock patches is available at :

    git://git.kernel.org/pub/scm/linux/kernel/git/compudj/linux-2.6-lttng.git
    branch : 2.6.29-rc7-lttng-0.105

    Project website : http://www.lttng.org/

    Information about how to install and use the tracer is available at :

    http://ltt.polymtl.ca/svn/trunk/lttv/LTTngManual.html

    The size of the LTTng core patchset is 41 patches. The diffstat details
    as follow :

    include/linux/ltt-core.h | 35
    include/linux/ltt-relay.h | 161 +
    include/linux/ltt-tracer.h | 43
    include/linux/marker.h | 121
    kernel/marker.c | 353 ++
    kernel/module.c | 31
    linux-2.6-lttng/Documentation/markers.txt | 17
    linux-2.6-lttng/MAINTAINERS | 7
    linux-2.6-lttng/Makefile | 2
    linux-2.6-lttng/arch/powerpc/kernel/traps.c | 5
    linux-2.6-lttng/arch/powerpc/platforms/cell/spufs/spufs.h | 6
    linux-2.6-lttng/arch/sparc/Makefile | 2
    linux-2.6-lttng/arch/x86/kernel/dumpstack.c | 5
    linux-2.6-lttng/arch/x86/mm/fault.c | 1
    linux-2.6-lttng/fs/ext4/fsync.c | 8
    linux-2.6-lttng/fs/ext4/ialloc.c | 17
    linux-2.6-lttng/fs/ext4/inode.c | 79
    linux-2.6-lttng/fs/ext4/mballoc.c | 71
    linux-2.6-lttng/fs/ext4/mballoc.h | 2
    linux-2.6-lttng/fs/ext4/super.c | 6
    linux-2.6-lttng/fs/jbd2/checkpoint.c | 7
    linux-2.6-lttng/fs/jbd2/commit.c | 12
    linux-2.6-lttng/fs/pipe.c | 5
    linux-2.6-lttng/fs/select.c | 41
    linux-2.6-lttng/fs/seq_file.c | 45
    linux-2.6-lttng/fs/splice.c | 1
    linux-2.6-lttng/include/linux/immediate.h | 94
    linux-2.6-lttng/include/linux/kvm_host.h | 12
    linux-2.6-lttng/include/linux/ltt-channels.h | 94
    linux-2.6-lttng/include/linux/ltt-core.h | 47
    linux-2.6-lttng/include/linux/ltt-relay.h | 186 +
    linux-2.6-lttng/include/linux/ltt-tracer.h | 731 ++++++
    linux-2.6-lttng/include/linux/ltt-type-serializer.h | 107
    linux-2.6-lttng/include/linux/marker.h | 16
    linux-2.6-lttng/include/linux/module.h | 6
    linux-2.6-lttng/include/linux/poll.h | 2
    linux-2.6-lttng/include/linux/seq_file.h | 20
    linux-2.6-lttng/include/trace/ext4.h | 129 +
    linux-2.6-lttng/include/trace/jbd2.h | 19
    linux-2.6-lttng/init/Kconfig | 2
    linux-2.6-lttng/kernel/kallsyms.c | 1
    linux-2.6-lttng/kernel/marker.c | 12
    linux-2.6-lttng/kernel/module.c | 32
    linux-2.6-lttng/ltt/Kconfig | 130 +
    linux-2.6-lttng/ltt/Makefile | 15
    linux-2.6-lttng/ltt/ltt-channels.c | 338 ++
    linux-2.6-lttng/ltt/ltt-core.c | 101
    linux-2.6-lttng/ltt/ltt-filter.c | 66
    linux-2.6-lttng/ltt/ltt-kprobes.c | 479 +++
    linux-2.6-lttng/ltt/ltt-marker-control.c | 265 ++
    linux-2.6-lttng/ltt/ltt-relay-alloc.c | 715 +++++
    linux-2.6-lttng/ltt/ltt-relay-locked.c | 1704 ++++++++++++++
    linux-2.6-lttng/ltt/ltt-serialize.c | 685 +++++
    linux-2.6-lttng/ltt/ltt-trace-control.c | 1061 ++++++++
    linux-2.6-lttng/ltt/ltt-tracer.c | 1210 +++++++++
    linux-2.6-lttng/ltt/ltt-type-serializer.c | 96
    linux-2.6-lttng/ltt/ltt-userspace-event.c | 131 +
    linux-2.6-lttng/samples/markers/Makefile | 2
    linux-2.6-lttng/samples/markers/marker-example.c | 4
    linux-2.6-lttng/samples/markers/probe-example.c | 10
    linux-2.6-lttng/samples/markers/test-multi.c | 120
    linux-2.6-lttng/virt/kvm/kvm_trace.c | 12
    ltt/Kconfig | 24
    ltt/Makefile | 2
    ltt/ltt-relay-alloc.c | 80
    65 files changed, 9445 insertions(+), 398 deletions(-)


    Comments are welcome.

    Mathieu


    --
    Mathieu Desnoyers
    OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68


    \
     
     \ /
      Last update: 2009-03-06 00:25    [W:0.029 / U:95.652 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site