Jan Glauber [Thu, 23 May 2013 11:35:16 +0000 (07:35 -0400)]
Fix CPU hotplug section mismatches
Get rid of the following section mismatches:
WARNING: /home/jang/temp/lttng-modules-2.2.0-r0/git/lttng-tracer.o(.text+0x19dc0): Section mismatch in reference from the function lttng_add_perf_counter_to_ctx() to the function .cpuinit.text:lttng_perf_counter_cpu_hp_callback()
The function lttng_add_perf_counter_to_ctx() references
the function __cpuinit lttng_perf_counter_cpu_hp_callback().
This is often because lttng_add_perf_counter_to_ctx lacks a __cpuinit
annotation or the annotation of lttng_perf_counter_cpu_hp_callback is wrong.
WARNING: /home/jang/temp/lttng-modules-2.2.0-r0/git/lib/lttng-lib-ring-buffer.o(.text+0x1204): Section mismatch in reference from the function channel_backend_init() to the function .cpuinit.text:lib_ring_buffer_cpu_hp_callback()
The function channel_backend_init() references
the function __cpuinit lib_ring_buffer_cpu_hp_callback().
This is often because channel_backend_init lacks a __cpuinit
annotation or the annotation of lib_ring_buffer_cpu_hp_callback is wrong.
WARNING: /home/jang/temp/lttng-modules-2.2.0-r0/git/lib/lttng-lib-ring-buffer.o(.text+0x269c): Section mismatch in reference from the function channel_create() to the function .cpuinit.text:lib_ring_buffer_cpu_hp_callback()
The function channel_create() references
the function __cpuinit lib_ring_buffer_cpu_hp_callback().
This is often because channel_create lacks a __cpuinit
annotation or the annotation of lib_ring_buffer_cpu_hp_callback is wrong.
WARNING: /home/jang/temp/lttng-modules-2.2.0-r0/git/lib/lttng-lib-ring-buffer.o(.text+0x4a1c): Section mismatch in reference from the function channel_iterator_init() to the function .cpuinit.text:channel_iterator_cpu_hotplug()
The function channel_iterator_init() references
the function __cpuinit channel_iterator_cpu_hotplug().
This is often because channel_iterator_init lacks a __cpuinit
annotation or the annotation of channel_iterator_cpu_hotplug is wrong.
Signed-off-by: Jan Glauber <jan.glauber@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paul Woegerer [Mon, 13 May 2013 16:23:13 +0000 (12:23 -0400)]
Add system calls definitions for powerpc-32
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Jon Bernard [Mon, 13 May 2013 15:38:17 +0000 (11:38 -0400)]
Remove bashism in lttng-syscalls-generate-headers.sh
Options to echo are not portable. In particular, the 'echo -e' option is
implemented by some shells, including bash, to expand escape sequences.
However, dash is one of the other family of shells that instead expands
escape sequences by default.
The printf command is portable and much more reliable.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Jan Glauber [Fri, 10 May 2013 15:52:07 +0000 (11:52 -0400)]
Update ARM (32 bit) syscall tracepoints to 3.4
Update from 2.6.38 to 3.4. Added syscalls:
sys_acct
sys_swapon
sys_swapoff
sys_quotactl
sys_perf_event_open
sys_fanotify_init
sys_name_to_handle_at
sys_open_by_handle_at
sys_clock_adjtime
sys_syncfs
sys_sendmmsg
sys_setns
sys_process_vm_readv
sys_process_vm_writev
Signed-off-by: Jan Glauber <jan.glauber@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 9 May 2013 12:55:52 +0000 (08:55 -0400)]
Version 2.2.0-rc2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Wed, 8 May 2013 14:09:19 +0000 (10:09 -0400)]
Remove useless lttng_metadata probe
We don't use this event anymore since we write the metadata directly
into the ring buffer, no need for an external event. This probe was
the only one in the lttng-probe-lttng module, so we can get rid of
this module as well.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 3 May 2013 13:02:43 +0000 (09:02 -0400)]
Fix: warning kvm_trace_exit_reason redefined for 3.9 kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 29 Apr 2013 17:11:46 +0000 (13:11 -0400)]
Fix: 3.9.0 block layer instrumentation build
Linux upstream commit:
commit
0a82a8d132b26d438eb90b3ab35a7016e7227a1d
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Thu Apr 18 09:00:26 2013 -0700
Revert "block: add missing block_bio_complete() tracepoint"
Requires us to revert in lttng-modules too.
Fixes #512
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 25 Apr 2013 19:11:43 +0000 (15:11 -0400)]
Revert "Stop build if CONFIG_TRACEPOINTS is not set"
This reverts commit
699f9673466e1a6537ad23cc697b79660639f260.
It breaks make clean.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Samu Voutilainen [Mon, 22 Apr 2013 17:05:05 +0000 (13:05 -0400)]
Stop build if CONFIG_TRACEPOINTS is not set
Previously it just tries to compile with zero modules, which is
confusing if you thought you had configured everything correctly. Now it
throws an error which tells which went wrong.
Fixes #506
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Samu Voutilainen [Mon, 22 Apr 2013 17:03:52 +0000 (13:03 -0400)]
Add comments to endifs.
This should make it easier to read construction of the makefile.
Refs #506
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 10 Apr 2013 16:14:38 +0000 (12:14 -0400)]
Fix: remove ARM set_tls system call override
We'll need to find a better way to instrument ARM-specific system calls
located at a far offset from the standard systems calls. A 16MB
lttng-modules kernel module is really not acceptable.
Removing this instrumentation for now. sys_set_tls will appear as
sys_unknown.
Fixes #472
CC: Ryan Kyser <Ryan.Kyser@jci.com>
Ref: http://lists.lttng.org/pipermail/lttng-dev/2013-April/019990.html
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 10 Apr 2013 16:14:15 +0000 (12:14 -0400)]
Cleanup: arm sys_mmap whitespace
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Tue, 2 Apr 2013 13:25:37 +0000 (09:25 -0400)]
Clean up using global_dirty_limit wrapper for writeback probe
Move the wrapper around reading of global_dirty_limit to /wrapper/
directory. Introduce a new kallsyms_lookup_dataptr function for
obtaining the address unchanged and use it in global_dirty_limit
wrapper. Since the data address is available only if
CONFIG_KALLSYMS_ALL is set, omit the whole probe from building if this
config is missing.
[ Edit by Mathieu Desnoyers: small coding style fixes ]
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 02:35:56 +0000 (22:35 -0400)]
Version 2.2.0-rc1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 02:32:13 +0000 (22:32 -0400)]
Update README
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 02:12:42 +0000 (22:12 -0400)]
Fix: vmscan instrumentation build
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 01:45:17 +0000 (21:45 -0400)]
writeback instrumentation: remove duplicated structures
Don't replicate internal structures from the kernel: this is asking for
serious trouble, and could lead to breakage if building on newer kernels
that have modified structures.
The proper approach, if we really need to extract this information,
would be to add APIs to the Linux kernel workqueue that allow getting
this information.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 01:38:27 +0000 (21:38 -0400)]
block: update instrumentation to 3.9 rc kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 01:32:47 +0000 (21:32 -0400)]
rcu: update to 3.9 rc kernel instrumentation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 00:47:25 +0000 (20:47 -0400)]
workqueue instrumentation: remove duplicated structures
Don't replicate internal structures from the kernel: this is asking for
serious trouble, and could lead to breakage if building on newer kernels
that have modified structures.
The proper approach, if we really need to extract this information,
would be to add APIs to the Linux kernel workqueue that allow getting
this information.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 00:39:34 +0000 (20:39 -0400)]
Rename odd event names
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Mar 2013 00:38:18 +0000 (20:38 -0400)]
Introduce API to remap event names exposed by LTTng
Some kernel event providers don't follow naming hierarchy. Rename them
internally within LTTng.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Maxin B. John [Fri, 22 Mar 2013 13:56:13 +0000 (09:56 -0400)]
lttng-module: sched.h: Fix compilation on 3.9 kernel
With commit
8bd75c77b7c6a3954140dd2e20346aef3efe4a35
included in 3.9-rc1 kernel, rt specific bits in "linux/sched.h"
were moved into new header file "linux/sched/rt.h".
Fixes this compilation error:
CC [M] /home/majo/lttng/lttng-modules/probes/lttng-probe-sched.o
...
/home/majo/lttng/lttng-modules/probes/../instrumentation/events/lttng-module
/../../../probes/../instrumentation/events/lttng-module/sched.h:
In function '__event_probe__sched_switch':
/home/majo/lttng/lttng-modules/probes/../instrumentation/events/lttng-module
/../../../probes/../instrumentation/events/lttng-module/sched.h:164:1:
error: 'MAX_RT_PRIO' undeclared (first use in this function)
...
Signed-off-by: Maxin B. John <maxin.john@enea.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 13 Mar 2013 19:04:56 +0000 (15:04 -0400)]
Fix Linux 3.8 btrfs probe warning
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 13 Mar 2013 18:56:49 +0000 (14:56 -0400)]
Fix Linux 3.8 ext4 probe support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 13 Mar 2013 17:49:13 +0000 (13:49 -0400)]
Fix 3.8 kernel support: namespace lttng_is_signed_type()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 27 Feb 2013 21:48:56 +0000 (16:48 -0500)]
Fix: don't flush-final for offset 0 if reader is on sub-buffer
Triggers rare sub-buffer corruption when a buffer is completely full and
a final flush is then performed.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 22 Feb 2013 16:18:50 +0000 (11:18 -0500)]
instrumentation sched: add missing fork pid info
Fixes #434
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Simon Marchi [Wed, 6 Feb 2013 16:26:59 +0000 (11:26 -0500)]
Fix check in lttng_strlen_user_inatomic
__copy_from_user_inatomic returns the number of bytes that could not be
copied, not an error code. This fixes the test accordingly.
[ Edit by Mathieu Desnoyers: change "ret" type to unsigned long too. ]
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Francis Giraldeau [Mon, 28 Jan 2013 16:21:43 +0000 (11:21 -0500)]
instrumentation: sync with Linux commit
a1ce392
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 25 Jan 2013 17:25:38 +0000 (12:25 -0500)]
Fix: statedump: missing locking, use lttng_iterate_fd
- Take a spinlock around use of dentry->d_name.name.
- Use lttng_iterate_fd wrapper (and thus iterate_fd() from Linux kernels
from v3.7 and onward).
Suggested-by: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 25 Jan 2013 17:24:57 +0000 (12:24 -0500)]
Implement lttng_iterate_fd wrapper
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 21 Jan 2013 19:00:41 +0000 (14:00 -0500)]
Instrumentation cleanup: kmem events should print hex pointers
Fixes #422
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Simon Marchi [Thu, 10 Jan 2013 23:12:27 +0000 (18:12 -0500)]
Fix compilation of ext4 and btrfs tracepoints on 2.6.40 kernels
See
f95480cf62e9acb42b74fce162544694b76c9704.
The new btrfs and ext4 tracepoints used 3.0.0 in the compilation logic.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 9 Jan 2013 17:40:55 +0000 (12:40 -0500)]
Fix: statedump hang/too early completion due to logic error
The previous "Fix: statedump hang due to incorrect wait/wakeup use" was
not actually fixing the real problem.
The issue is that we should pass the expected condition to wait_event()
rather than its contrary.
This bug has been sitting there for a while. I suspect that a recent
change in the Linux scheduler behavior for newly spawned worker threads
might have contributed to trigger the hang more reliably.
The effects of this bugs are:
- possible hang of the lttng-sessiond (within the kernel) at tracing
start,
- the statedump end event is traced before all worker threads have
actually completed, which can confuse LTTng viewer state systems.
Reported-by: Phil Wilshire <sysdcs@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 8 Jan 2013 19:27:05 +0000 (14:27 -0500)]
Fix: statedump hang due to incorrect wait/wakeup use
Reported-by: Phil Wilshire <sysdcs@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Corey Minyard [Wed, 12 Dec 2012 02:45:20 +0000 (21:45 -0500)]
put_ulong calls in lib_ring_buffer_compat_ioctl() should be compat
I was noticing the that some of the put_ulong calls in
lib_ring_buffer_compat_ioctl() were not compat_put_ulong. I can't
imagine this is correct.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Mon, 10 Dec 2012 18:18:32 +0000 (13:18 -0500)]
wrapper/perf.h: Fix kernel version condition
The pid_t parameter of function perf_event_create_kernel_counter
was changed to task_struct pointer starting from 2.6.37.x.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Mon, 10 Dec 2012 16:14:52 +0000 (11:14 -0500)]
Add new kernel probes instrumentation
Add kernel probes for btrfs, compaction, ext4, printk, random, rcu,
regmap, rpm, sunrpc, workqueue, writeback.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Mon, 10 Dec 2012 16:12:14 +0000 (11:12 -0500)]
Update kernel probes to more detailed match to kernel versions
Some ifdef's are added to kernel probes instrumentation to make them
more close to original tracepoints in different kernel versions.
Supported kernel version are from 2.6.32 to 3.7.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Mon, 10 Dec 2012 16:01:52 +0000 (11:01 -0500)]
Fix possible kernel build errors with linux-patches
Kernel sources of version 2.6.32 - 2.6.34 with applied patches
from linux-patches may fail to compile if tracepoint samples
are configured to build. Some part of backported commits
are added to the kernel patches to avoid those errors.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 5 Dec 2012 13:14:39 +0000 (08:14 -0500)]
Add missing MIT license text to 3 files under this license
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Tue, 27 Nov 2012 16:44:17 +0000 (17:44 +0100)]
Update sites using kernel version checking macro to new range
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Tue, 27 Nov 2012 16:43:38 +0000 (17:43 +0100)]
Make upper bound of kernel version checking macro exclusive
It's more usable to have the upper limit exclusive. It helps to avoid
hardcoding of stable branch highest version number, i.e. having a range
from 3.1.0 up to 3.2.0 (exclusively) gives us all 3.1.x versions.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Sun, 25 Nov 2012 21:13:16 +0000 (16:13 -0500)]
sock instrumentation: fix fields to get referenced values
Due to specific of passing values in lttng-modules, if it is supposed
to display the values, passing a pointer will not be enough,
we need to store the actual values.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Sun, 25 Nov 2012 21:12:46 +0000 (16:12 -0500)]
ext3 instrumentation: fix of assignment code conversion
Due to specifics of handling assignment code in lttng-modules,
plain code in TP_fast_assign (outside tp_* macros) will not be reached.
Everything should be enclosed into tp_* fragments.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Sun, 25 Nov 2012 21:12:18 +0000 (16:12 -0500)]
sched instrumentation: rename "pid" fields in sched_process_exec
Rename "pid" to "tid" fields in new code, similarly to what was
done earlier for all sched tracepoints.
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Andrew Gabbasov [Sun, 25 Nov 2012 21:11:33 +0000 (16:11 -0500)]
Remove remaining semicolons in TP_fast_assign blocks
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Simon Marchi [Fri, 23 Nov 2012 23:11:04 +0000 (18:11 -0500)]
Fix compilation for 3.0 kernels that are named 2.6.40
Since some distro released the 3.0 kernel as 2.6.40, it might be useful
to adjust some checks to treat 2.6.40 kernels as 3.0.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Simon Marchi [Fri, 23 Nov 2012 23:10:38 +0000 (18:10 -0500)]
Fix compilation for 3.0 branch (>= 3.0.39)
The isolate_mode_t type that appeared in 3.2 was backported to 3.0.39 so
the version check must be fixed. It was not backported to the 3.1 branch
though, so it must be excluded.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 23 Nov 2012 20:05:12 +0000 (15:05 -0500)]
Add kernel version checking macro
It contains a macro to help checking for kernel version ranges.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paul Woegerer [Wed, 14 Nov 2012 16:04:46 +0000 (11:04 -0500)]
Remove semicolons in TP_fast_assign blocks
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paul Woegerer [Wed, 14 Nov 2012 16:03:42 +0000 (11:03 -0500)]
Add ifdefs to net probe to support Linux 2.6.39
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paul Woegerer [Wed, 14 Nov 2012 16:02:46 +0000 (11:02 -0500)]
Add kernel probes for supplementary subsystems
Add probes for: asoc, ext3, gpio, jbd, jbd2, kmem, lock, module, napi,
net, power, regulator, scsi, skb, sock, udp, vmscan subsystems.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Simon Marchi [Thu, 8 Nov 2012 20:17:54 +0000 (15:17 -0500)]
Check if interrupt action name is not null in statedump
Protection against poorly written drivers who give a null name to their
irq handlers.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 12 Oct 2012 21:01:25 +0000 (17:01 -0400)]
Fix exec instrumentation: only for kernels 3.4.0 and higher
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Paul Woegerer [Fri, 12 Oct 2012 14:19:42 +0000 (10:19 -0400)]
Add TRACE_EVENT(sched_process_exec) to sched.h
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Will Newton [Thu, 11 Oct 2012 16:51:15 +0000 (12:51 -0400)]
lib/ringbuffer/frontend_api.h: Include linux/prefetch.h.
prefetch() is used in this file so make sure we include the appropriate
header before using it.
Signed-off-by: Will Newton <will.newton@imgtec.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 3 Oct 2012 13:11:00 +0000 (09:11 -0400)]
Fix warning with 3.6.0 kernel
No actual runtime impact, but neater anyway.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Mon, 1 Oct 2012 15:59:19 +0000 (11:59 -0400)]
ABI with support for compat 32/64 bits
The current ABI does not work for compat 32/64 bits.
This patch moves the current ABI as old-abi and provides a new ABI in
which all the structures exchanged between user and kernel-space are
packed. Also this new ABI moves the "int overwrite" member of the
struct lttng_kernel_channel to remove the alignment added by the
compiler.
A patch for lttng-tools has been developed in parallel to this one to
support the new ABI. These 2 patches have been tested in all
possible configurations (applied or not) on 64-bit and 32-bit kernels
(with CONFIG_COMPAT) and a user-space in 32 and 64-bit.
Here are the results of the tests :
k 64 compat |Â u 32 compat | OK
k 64 compat | u 64 compat | OK
k 64 compat | u 32 non-compat | KO
k 64 compat | u 64 non-compat | OK
k 64 non-compat | u 64 compat | OK
k 64 non-compat | u 32 compat | KO
k 64 non-compat | u 64 non-compat | OK
k 64 non-compat | u 32 non-compat | KO
k 32 compat | u compat | OK
k 32 compat | u non-compat | OK
k 32 non-compat | u compat | OK
k 32 non-compat | u non-compat | OK
The results are as expected :
- on 32-bit user-space and kernel, every configuration works.
- on 64-bit user-space and kernel, every configuration works.
- with 32-bit user-space on a 64-bit kernel the only configuration
where it works is when the compat patch is applied everywhere.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 28 Sep 2012 00:25:11 +0000 (20:25 -0400)]
Perform calculation on bit size in 64-bit
allow 32-bit architectures to have sub-buffers larger than 256MB.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 28 Sep 2012 00:04:02 +0000 (20:04 -0400)]
Use uint64_t for packet header content size and packet size
Allow packets larger than 256MB (4GB / 8 bits per byte).
Fixes #354
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Fri, 21 Sep 2012 02:10:50 +0000 (22:10 -0400)]
Fix: compat layer only on supported architectures
The compat_ulong_t type is only defined on some architectures, so we
need to protect the compat defines with the ifdef CONFIG_COMPAT.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Thu, 20 Sep 2012 16:00:05 +0000 (12:00 -0400)]
Fix ring buffer 32/64 bits compat
The type of fields exchanged between kernel and userspace must be
compat_ulong_t instead of unsigned long in case of compat where
userspace is 32 bits and kernel is 64 bits.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Sep 2012 14:20:38 +0000 (10:20 -0400)]
Fix cleanup: move lttng-tracer-core.h include to lib ringbuffer config.h
This is where it is used. Add a #ifdef check for the LTTNG_TRACER_CORE_H
define to ensure that the header it depends on is always included.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wade Farnsworth [Thu, 20 Sep 2012 13:52:22 +0000 (09:52 -0400)]
Fix ring_buffer_frontend.c: missing include lttng-tracer-core.h
In lib/ringbuffer/ring_buffer_frontend.c, RING_BUFFER_ALIGN is undefined,
leading to no alignment offset being recorded after the call to
config->cb.record_header_size() in lib_ring_buffer_try_reserve_slow().
However, lttng-ring-buffer-client.h does define RING_BUFFER_ALIGN, so
the alignment offset will be produced when the packet header is written
in lttng_write_event_header().
This discrepancy may be observed on architectures that don't set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS, such as ARM, with a babeltrace
error such as:
babeltrace: ../../include/babeltrace/ctf/types.h:206: ctf_pos_get_event:
Assertion `pos->offset <= pos->content_size' failed.
Aborted
indicating that the actual content size differs from the calculated one
due to the difference in alignment. Including the appropriate header
file in ring_buffer_frontend.c solves the problem.
Signed-off-by: Wade Farnsworth <wade_farnsworth@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Sep 2012 16:09:53 +0000 (12:09 -0400)]
Fix: statedump missing check for NULL namespace
Cause kernel OOPS. statedump PID namespace support is newly introduced
in lttng-modules 2.1. Happens when iterating on a zombie process.
Reported-by: David Goulet <dgoulet@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 10 Sep 2012 21:19:48 +0000 (17:19 -0400)]
Update version to 2.1.0-rc1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 6 Sep 2012 14:26:38 +0000 (10:26 -0400)]
fix timestamps on architectures without CONFIG_KTIME_SCALAR
trace_clock_monotonic_wrapper() should return a u64 representing the
number of nanoseconds since system startup.
ktime_get() provides that value directly within its .tv64 field only
on those architectures defining CONFIG_KTIME_SCALAR, whereas in all
other cases (e.g. PowerPC) a ktime_to_ns() conversion (which
translates back to .tv64 when CONFIG_KTIME_SCALAR is defined)
becomes necessary.
Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 2 Sep 2012 19:33:09 +0000 (12:33 -0700)]
Support for linux kernels 2.6.32 through 2.6.37
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 Aug 2012 13:57:09 +0000 (09:57 -0400)]
Document limitation of vppid and ppid context wrt eventual RCU instrumentation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 Aug 2012 13:46:48 +0000 (09:46 -0400)]
Cleanup: no need to hold RCU read-side lock when reading current nsproxy
As documented in include/linux/nsproxy.h.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 Aug 2012 00:23:21 +0000 (20:23 -0400)]
Add env hostname information
Approximation in case of hostname change or in case of
contextualisation, but it does the job for 95% of use-cases.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 Aug 2012 21:38:39 +0000 (17:38 -0400)]
Fix: lttng_statedump_process_state for each PID NS has infinite loop
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Thu, 23 Aug 2012 21:11:35 +0000 (17:11 -0400)]
lttng_statedump_process_state for each PID NS
When a process is in a namespace, its pid, tid and ppid are relative to
the namespace. Since namespaces can be nested, we need to know the
representation of each process in each namespace.
This patch changes the lttng_enumerate_task_fd to iterate over each
PID namespace of a process if any, that way we generate, in the
statedump, an entry for each process in each namespace it belongs.
To know the nesting level, the field "level" is added to the
lttng_statedump_process_state event, 0 being the top-level.
For processes running on the top-level namespace, the statedump
behaviour is unchanged (except the added "level" field).
For example (no nesting, just one level of namespace) :
lttng_statedump_process_state: {
tid = 32185, vtid = 1, pid = 32185,
vpid = 1, ppid = 32173, vppid = 0,
level = 1, name = "init" }
lttng_statedump_process_state: {
tid = 32185, vtid = 32185, pid = 32185,
vpid = 32185, ppid = 32173, vppid = 32173,
level = 0, name = "init" }
Confirmed that the process 32173 in the top-level namespace is indeed
the lxc-start command that created the container and its namespace.
[ Edit by Mathieu Desnoyers: Minor cleanups ]
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Thu, 23 Aug 2012 20:54:03 +0000 (16:54 -0400)]
Support the hostname context
This is particularly useful when tracing a machine with containers
(lxc), that way we can easily distinguish events generated inside
a container.
[ Edit by Mathieu Desnoyers: various fix. ]
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Thu, 23 Aug 2012 20:19:53 +0000 (16:19 -0400)]
Fix: statedump namespaced pid, tid and ppid
Use the target process namespace to lookup the value (pid, tid or ppid),
not the current task.
[ Edit by Mathieu Desnoyers: removed extra p->nsproxy check. Already
performed within rcu read-side critical section. ]
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 22 Aug 2012 21:09:20 +0000 (17:09 -0400)]
Fix: statedump: disable vm maps enumeration
We need the tasklist lock to correctly dump these, which is unavailable
to modules. Disable this feature for now.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 22 Aug 2012 20:30:20 +0000 (16:30 -0400)]
Fix: ensure userspace accesses are done with _inatomic
Otherwise, triggers scheduling while atomic (might_sleep()) warnings,
since we call those from a tracepoint probe (with preemption disabled).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 22 Aug 2012 19:09:05 +0000 (15:09 -0400)]
Fix: vppid context should test for current nsproxy
Triggers a NULL pointer exception with tracing scheduling events with
vppid context activated.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Ralf Baechle [Thu, 12 Jul 2012 14:18:54 +0000 (10:18 -0400)]
Add MIPS system call support
[ Edit by Mathieu: currently missing: update of arch-independent headers
to include the MIPS headers to complete system call support. ]
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 12 Jul 2012 13:39:42 +0000 (09:39 -0400)]
Change mode of lttng-syscalls-generate-headers.sh to 755
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Ralf Baechle [Mon, 9 Jul 2012 16:48:11 +0000 (12:48 -0400)]
cleanup: fix typo in syscall instrumentation header
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 5 Jul 2012 18:43:53 +0000 (14:43 -0400)]
Cleanup: remove trailing whitespace in README
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 2 Jul 2012 15:34:30 +0000 (11:34 -0400)]
trace event: introduce TP_MODULE_NOAUTOLOAD and TP_MODULE_NOINIT
In preparation for introducing uevent tracing. (user-space events)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
UCHINO Satoshi [Wed, 27 Jun 2012 05:44:29 +0000 (07:44 +0200)]
LTTng: probe-statedump: add #include <linux/sched.h>
This fixes the following build error on ARM;
CC [M] drivers/staging/lttng/probes/lttng-probe-statedump.o
In file included from drivers/staging/lttng/probes/../instrumentation/events/lttng-module/../../../probes/lttng-events.h:221:0,
from drivers/staging/lttng/probes/../instrumentation/events/lttng-module/../../../probes/define_trace.h:117,
from drivers/staging/lttng/probes/../instrumentation/events/lttng-module/lttng-statedump.h:162,
from drivers/staging/lttng/probes/lttng-probe-statedump.c:41:
drivers/staging/lttng/probes/../instrumentation/events/lttng-module/../../../probes/../instrumentation/events/lttng-module/lttng-statedump.h:29:1: error: 'TASK_COMM_LEN' undeclared here (not in a function)
Signed-off-by: UCHINO Satoshi <satoshi.uchino@toshiba.co.jp>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 12 Jun 2012 22:33:33 +0000 (18:33 -0400)]
fix: signal_generate event should print utf8 for comm field
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Francis Giraldeau [Tue, 5 Jun 2012 15:16:14 +0000 (11:16 -0400)]
Makes write operation a parameter for tp_memcpy macro
Memcpy source can be either user-space or kernel-space. To avoid code
duplication, this patch makes the operation a parameter to the macros.
Available macros are thus:
* tp_memcpy: kernel-space array copy
* tp_memcpy_from_user: user-space array copy
* tp_memcpy_dyn: kernel-space sequence copy
* tp_memcpy_dyn_from_user: user-space sequence copy
Those are TP_fast_assign macros that can be used with __dynamic_array
macros in TP_STRUCT__entry in a TRACE_EVENT.
Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 30 May 2012 13:07:41 +0000 (09:07 -0400)]
Add coding style document
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 14 May 2012 15:12:00 +0000 (11:12 -0400)]
Update instrumentation/events README file
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Francis Giraldeau [Thu, 10 May 2012 15:53:20 +0000 (11:53 -0400)]
Add makefile target for preprocessor
By specifying .i target, it runs gcc preprocessor for that file.
Example:
make myfile.i
will read myfile.c and output preprocessor to myfile.i
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 8 May 2012 20:02:41 +0000 (16:02 -0400)]
Fix: free_event_id check should compare unsigned int with -1U
Otherwise, on 32-bit:
lttng-modules/lttng-events.c:295: warning: comparison is always false due
to limited range of data type
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 2 May 2012 15:43:47 +0000 (11:43 -0400)]
Use unsigned long type for events discarded counter
Overflows at 64-bit on 64-bit systems.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 26 Apr 2012 21:40:31 +0000 (17:40 -0400)]
Fix: update signal instrumentation for 3.4 kernel
Fix #226
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Ryan Kyser [Tue, 17 Apr 2012 14:54:41 +0000 (10:54 -0400)]
LTTng Modules ARM syscall instrumentation
This patch adds detailed instrumentation for ARM system calls, based on
a 2.6.38 kernel.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 17 Apr 2012 14:50:12 +0000 (10:50 -0400)]
Fix: generate header missing echo -e for escape chars
"why is the -e needed ? What was the experienced oddness ?"
The \n wasn't getting evaluated to a newline and was being inserted
into the header file as '\n'
From man echo(1):
If -e is in effect, the following sequences are recognized:
\\ backslash
\a alert (BEL)
\b backspace
\c produce no further output
\e escape
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
Suggested-by: Ryan Kyser <Ryan.Kyser@jci.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 17 Apr 2012 14:49:07 +0000 (10:49 -0400)]
Fix: add missing uaccess.h include (for ARM)
"What required uaccess.h ?"
I was getting the following error:
syscalls_pointers_override.h:6:1: error: implicit declaration of function ?strlen_user?
I found that strlen_user was defined in asm/uaccess.h, which is
included by linux/uaccess.h.
Suggested-by: Ryan Kyser <Ryan.Kyser@jci.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 11 Apr 2012 00:36:17 +0000 (20:36 -0400)]
README: Document that CONFIG_MODULES is required
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 9 Apr 2012 19:40:14 +0000 (15:40 -0400)]
Fix: README typo
Reported-by: Ryan Kyser <Ryan.Kyser@jci.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.044729 seconds and 4 git commands to generate.