Mathieu Desnoyers [Fri, 26 Sep 2014 22:09:29 +0000 (18:09 -0400)]
Fix: statedump: close_on_exec flag backward compat
Older kernels (e.g. 3.2.62) use FD_ISSET() to test close_on_exec flag.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 26 Sep 2014 00:35:59 +0000 (20:35 -0400)]
Fix: lttng-modules teardown NULL pointer OOPS
Accessing the lttng channel and lttng session from the metadata ring
buffer client is a bad idea, because we don't have any reference
ensuring those are valid for the lifetime of the metadata cache.
Therefore, rather than keeping a lttng channel as private data pointer
for the metadata ring buffer channel, keep a pointer to the metadata
cache instead: this will ensure we don't shoot ourself in the foot and
access data we for which coherency is not guaranteed (we don't hold any
reference to it).
Anyway, the only reason why we needed to access the lttng session from
the metadata client in the first place was the UUID of the session. Copy
it into the metadata cache instead.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 26 Sep 2014 00:33:21 +0000 (20:33 -0400)]
Fix: handle concurrent flush vs get_next_subbuf on metadata cache
The "flush" operation can be performed on the metadata file descriptor
concurrently with get_next_subbuffer operations by different processes
(e.g. lttng session daemon issuing flush at "stop" concurrently with
consumer daemon issuing get_next_subbuf for metadata I/O). We need
to protect the metadata cache from those concurrent use by introducing a
mutex.
This fixes a race where metadata from a kernel trace is corrupted due to
this scenario. The corruption shows up like the same metadata content (a
metadata packet) being written twice consecutively in the metadata
stream, thus triggering a babeltrace "parse error" when trying to read
the trace.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Tue, 16 Sep 2014 15:59:07 +0000 (11:59 -0400)]
Fix: OOT lttng_logger tracepoint not visible with signed kernels
For the same reason as commit
dd8d5afb3fabf853cb4c88c0a1a97f470090fe20,
the lttng_logger event was not working on signed kernels with non-signed
lttng modules.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 16 Jul 2014 22:22:28 +0000 (18:22 -0400)]
Version 2.5.0
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 27 Jun 2014 14:14:35 +0000 (10:14 -0400)]
Version 2.5.0-rc2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 26 Jun 2014 18:52:03 +0000 (14:52 -0400)]
Fix: statedump: check whether "files" is NULL, RCU semantic fix
We need to check if p->files is NULL before passing it to
files_fdtable(). Moreover, since the fdt is now protected by RCU, we
have to assume it can change between the read from
lttng_enumerate_task_fd() and the internal in-kernel read in
iterate_fd(). Therefore, move this rcu dereference into
lttng_dump_one_fd(), and perform the appropriate checks on max fds.
Fixes #799
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 26 Jun 2014 17:50:15 +0000 (13:50 -0400)]
Fix: statedump handle oom case, handle errors
lttng_enumerate_file_descriptors should check the pointer returned by
__get_free_page() (check if NULL).
do_lttng_statedump should check the sub-function return values. For
lttng_enumerate_block_devices(), we allow -ENOSYS to continue (if not
implemented).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Antoine Busque [Wed, 11 Jun 2014 14:45:44 +0000 (10:45 -0400)]
Fix: correct typo in kernel version number
A typo in a preprocessor conditional verifying the range in which the
current kernel version is situated caused build failure for modules on
3.5.0 specifically, by trying to use the new api for block_rq_complete
which has not been backported from the 3.15 branch to the 3.5 branch.
Signed-off-by: Antoine Busque <antoine.busque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Antoine Busque [Sat, 7 Jun 2014 16:27:21 +0000 (12:27 -0400)]
Fix: blktrace instrumentation for backported branches
The following commit from kernel 3.15 changing the API of a block layer
tracepoint has been backported to multiple branches:
commit
af5040da01ef980670b3741b3e10733ee3e33566
Author: Roman Pen <r.peniaev@gmail.com>
Date: Tue Mar 4 23:13:10 2014 +0900
blktrace: fix accounting of partially completed requests
This patch fixes the resulting build failure by adding the proper
version checks. The versions and corresponding commit SHA-1 hashes are
as follow:
3.2.58
commit
5b85afa68e4f56c27f1d5c6f49e5257bce6448e6
3.4.91
commit
14eee5bd065d6aac0acbdc6092a25ba68c55b9c8
3.10.41
commit
e9d933941569c107e0083c3c115467c699a57db2
3.12.21
commit
5104b40a981d26212ced149fbd43ad0b6b72910b
3.14.15
commit
0a8eda9c00ef37e8b40de77f2b0714317191bcf2
Signed-off-by: Antoine Busque <antoine.busque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 29 May 2014 18:52:53 +0000 (14:52 -0400)]
Fix: statedump block devices OOPS
Fixes #799
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 28 May 2014 14:22:10 +0000 (10:22 -0400)]
Version 2.5.0-rc1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Fri, 23 May 2014 13:06:07 +0000 (09:06 -0400)]
Add TID field to some block_* events
Most of the block events have the "comm" field, but we have no way to
match a block event to a certain thread which makes performing
accurate per-thread analyses difficult. Add the TID field to the events
that already export current->comm.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 23 May 2014 13:26:11 +0000 (09:26 -0400)]
Fix: refuse overwrite mode buffers with less than two subbuffers
Fixes #793
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 22 May 2014 12:06:10 +0000 (08:06 -0400)]
Fix: lttng modules system call generation script
Fixes #771
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 11 Apr 2014 18:50:53 +0000 (14:50 -0400)]
Dump FD flags and mode on state dump
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 5 May 2014 14:32:44 +0000 (10:32 -0400)]
Fix: incorrect rwbs field type in block_bio_queue
Within lttng-modules instrumentation starting from kernel 3.9.0, the
block_bio_queue instrumentation has incorrect rwbs field type, and does
not print "comm" as an array of text.
The result is that we are writing values to what we believe to be an
"unsigned int", which is actually described as an array of RWBS_LEN byte
(8 bytes). This discrepancy between type description and the actual
tp_assign() incrementing the write offset leads to what appears as
corruption of the following "comm" field in the trace viewer output: the
viewer will skip the first bytes of the "comm" field, erroneously
thinking they belong the the previous "rwbs" field.
Fixes #794
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 3 May 2014 19:07:42 +0000 (15:07 -0400)]
Fix: blktrace instrumentation for v3.2.58+ stable branch
Starting with Linux kernel v3.2.58 within the v3.2 Linux stable branch:
commit
5b85afa68e4f56c27f1d5c6f49e5257bce6448e6
Author: Roman Pen <r.peniaev@gmail.com>
Date: Tue Mar 4 23:13:10 2014 +0900
blktrace: fix accounting of partially completed requests
commit
af5040da01ef980670b3741b3e10733ee3e33566 upstream.
The module API for a block layer tracepoint changes. Fix the associated
build failure.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 15 Apr 2014 16:50:12 +0000 (12:50 -0400)]
Fix: pass proper args when writing commit counter
lib_ring_buffer_write_commit_counter()'s 'buf_offset' argument should
contain offset of beginning of area used by the record being comitted.
However, lib_ring_buffer_commit() passes ctx->buf_offset, that gets
advanced by lib_ring_buffer_write() and thus points to just-after-
end-of-record at lib_ring_buffer_commit() time. This causes
lib_ring_buffer_write_commit_counter() to return without changing
commit_hot[idx].seq, due to
if (unlikely(subbuf_offset(offset - commit_count, chan)))
return;
Since after-crash data extraction tool checks 'seq' field to find out
how much data is in buffer, this results into inavailability of
data from partially-filled subbuffer for after-crash analysis.
This patch modifies lib_ring_buffer_write_commit_counter() and all its
callers to pass and expect the end of the area. So code works as it
should, and complete information becomes visible in crash dump.
[ Changelog inspired from Nikita Yushchenko's original patch. ]
Fixes #784
Reported-by: Nikita Yushchenko <nyoushchenko@mvista.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 14 Apr 2014 20:06:35 +0000 (16:06 -0400)]
Cleanup: lib ringbuffer: pagecpy has unsigned semantic
Same for lib_ring_buffer_read() orig_len.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 14 Apr 2014 17:05:19 +0000 (13:05 -0400)]
Fix: allow racy tracepoint string input from kernel and userspace
Fixes #781
Acked-by: David Goulet <dgoulet@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Houssem Daoud [Tue, 15 Apr 2014 16:06:50 +0000 (12:06 -0400)]
Statedump event for block devices
Signed-off-by: Houssem Daoud <houssemmh@gmail.com>
[ Edited by Mathieu Desnoyers. ]
Tested-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 15 Apr 2014 15:34:39 +0000 (11:34 -0400)]
Fix: update v4l2 instrumentation to 3.15 kernel
show_type() is only used in TP_printk(), which is not used by LTTng
modules. Moreover, it is already defined by the in-kernel
instrumentation. Therefore, we can remove it from the lttng
instrumentation.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 15 Apr 2014 15:20:44 +0000 (11:20 -0400)]
Fix: ext4 update instrumentation to 3.15 kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 15 Apr 2014 15:13:16 +0000 (11:13 -0400)]
Fix: update block instrumentation to 3.15 kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 15 Apr 2014 14:56:16 +0000 (10:56 -0400)]
Fix: module instrumentation: update to 3.15 kernel
Remove show_module_flags() define from lttng module.h instrumentation.
It is already defined within the in-kernel module.h, _and_ LTTng does
not use TP_printk.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Mar 2014 03:12:32 +0000 (23:12 -0400)]
Adapt to 3.15 tracepoint API
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 14 Apr 2014 02:26:17 +0000 (22:26 -0400)]
Kernel 3.15 don't define map unmap for pipe
struct pipe_buf_operations does not have map and unmap fields starting
from kernel 3.15.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 10 Apr 2014 19:46:14 +0000 (15:46 -0400)]
Fix: add missing module version in v4l2 probe
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wade Farnsworth [Thu, 3 Apr 2014 17:13:04 +0000 (10:13 -0700)]
Add V4L2 instrumentation
Add instrumentation for the V4L2 tracepoints that first appeared in
Linux v3.14 (commit
2d01237389dc64b37745ce87e64d6808b6eed582 in Linus's
tree).
Signed-off-by: Wade Farnsworth <wade_farnsworth@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 2 Apr 2014 16:23:06 +0000 (12:23 -0400)]
Fix: rcu instrumentation: add const qualifier to char pointers
Follow this 3.12 instrumentation update in mainline Linux:
commit
e66c33d579ea566d10e8c8695a7168aae3e02992
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date: Fri Jul 12 16:50:28 2013 -0400
rcu: Add const annotation to char * for RCU tracepoints and functions
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 2 Apr 2014 15:53:30 +0000 (11:53 -0400)]
Fix: add missing module version information
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Lars Persson [Sun, 16 Mar 2014 16:32:34 +0000 (17:32 +0100)]
Use kernel 3.13 syscall tables for MIPS32
Signed-off-by: Lars Persson <larper@axis.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Lars Persson [Sun, 16 Mar 2014 16:32:33 +0000 (17:32 +0100)]
Add MIPS32 syscalls extracted from a 3.13 kernel
Signed-off-by: Lars Persson <larper@axis.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Mar 2014 14:01:51 +0000 (10:01 -0400)]
Fix: block instrumentation: < 3.14 don't have bi_iter
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Mar 2014 13:18:21 +0000 (09:18 -0400)]
Fix: update btrfs instrumentation to kernel 3.14
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Mar 2014 13:01:56 +0000 (09:01 -0400)]
Fix: update block layer instrumentation to kernel 3.14
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 20 Mar 2014 00:14:28 +0000 (20:14 -0400)]
Fix: remove __exit annotation
lttng_abi_exit() is now used by init error path too.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 15 Mar 2014 18:19:18 +0000 (14:19 -0400)]
Fix file permissions for lttng-statedump-impl.c
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 15 Feb 2014 21:59:09 +0000 (16:59 -0500)]
LTTng logger ABI
Add a user-space ABI (new file /proc/lttng-logger) to lttng-modules
which can be written into by any user on the system. The content is
saved into the kernel trace stream into the "lttng_logger" kernel event.
The content of a single write is written into an lttng_logger event.
The write count is truncated to 1024 bytes (if larger), which is much
smaller than the smallest subbuffer size available (4096 bytes). This
ensures all written data makes it into the active tracing buffers.
Example use:
lttng-sessiond -d # (as root)
lttng create
lttng enable-event -k lttng_logger
lttng start
echo -n "this is a test" > /proc/lttng-logger
lttng stop
lttng view
Example result:
[17:00:04.
251970425] (+179.
750663203) thinkos lttng_logger: { cpu_id = 3 }, { _msg_length = 14, msg = "this is a test" }
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Karim Yaghmour <karim.yaghmour@opersys.com>
Mathieu Desnoyers [Fri, 28 Feb 2014 18:35:29 +0000 (13:35 -0500)]
Version 2.4.0
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 28 Feb 2014 17:30:04 +0000 (12:30 -0500)]
Fix: load state dump even if work-around lookup fails
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 25 Feb 2014 11:43:24 +0000 (06:43 -0500)]
Cleanup: fix comment
Fixes #652
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tony Jones [Fri, 21 Feb 2014 20:17:28 +0000 (12:17 -0800)]
Fix: correctly version kvm events to build against v3.0 kernel
Cleanly build against v3.0 kernel. I didn't add versioning for mainline commit
0d460ffc as it's build compatible.
Signed-off-by: Tony Jones <tonyj@suse.de>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Feb 2014 22:10:52 +0000 (17:10 -0500)]
Add extraversion (e.g. -rc4) to lttng-tracer modinfo
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 14 Feb 2014 16:46:08 +0000 (11:46 -0500)]
Version 2.4.0-rc4
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Feb 2014 23:18:51 +0000 (18:18 -0500)]
Fix: use after free in ring buffer clients
Don't use ring buffer client's struct lttng_channel from ioctl which
applies to ring buffer streams, because lttng_channel is freed while lib
ring buffer stream and channel are still in use. Their lifetime persists
until the consumer daemon releases its handles on the related stream
file descriptors.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Feb 2014 23:02:32 +0000 (18:02 -0500)]
Fix: Add statedump exit so module is not permanent
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Feb 2014 22:25:09 +0000 (17:25 -0500)]
Cleanup: move callback init to static initialization
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 11 Feb 2014 11:02:42 +0000 (06:02 -0500)]
Fix: OOT lttng-statedump tracepoints not visible with signed kernels
Users have reported being unable to trace non-signed modules loaded
within a kernel supporting module signature.
Here is the relevant report of this issue to Linux upstream, with a
proposed fix: https://lkml.org/lkml/2014/2/10/747
Work-around the issue for lttng-statedump.ko tracepoints.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 29 Jan 2014 16:59:45 +0000 (11:59 -0500)]
Version 2.4.0-rc3
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 25 Jan 2014 20:58:08 +0000 (15:58 -0500)]
Fix: tracepoint event name mapping at unregister
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 25 Jan 2014 00:16:08 +0000 (19:16 -0500)]
Fix: tracepoint name remapping
Commit
"Introduce API to remap event names exposed by LTTng"
failed to map the event names enabled by the user to tracepoint names
known to the kernel. For instance, tracing with the kmem_kmalloc event
enabled is not gathering any event. This issue applies to all tracepoint
events declared with a different name within LTTng than within the Linux
kernel.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 22 Jan 2014 20:15:52 +0000 (15:15 -0500)]
Fix: enable event error path memory corruption
The call to
kmem_cache_free(event_cache, event);
after setting event to ERR_PTR() value is causing memory corruption
(kernel oops). This bug has been introduced very recently by commit:
Fix: provide more precise error report for enable event
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 20 Jan 2014 16:37:25 +0000 (11:37 -0500)]
Update kvm instrumentation to Linux 3.13
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 20 Jan 2014 16:31:30 +0000 (11:31 -0500)]
Update sched instrumentation to Linux 3.13
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 15 Jan 2014 17:37:25 +0000 (12:37 -0500)]
Fix: provide more precise error report for enable event
Fixes #658
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 18 Dec 2013 18:47:52 +0000 (13:47 -0500)]
Fix: quote event name in metadata
Allows adding events with a "-" within the name with --probe or
--function.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 17 Dec 2013 19:02:45 +0000 (14:02 -0500)]
Add version info to lttng-tracer.ko modinfo
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 10 Dec 2013 19:14:49 +0000 (14:14 -0500)]
Version 2.4.0-rc2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Nov 2013 10:46:10 +0000 (11:46 +0100)]
Fix: client_packet_header() uses wrong packet
It should use lib_ring_buffer_read_offset_address() to get the packet
being read, rather than lib_ring_buffer_offset_address(), which is only
meant to be used when writing to the packet.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 30 Nov 2013 10:45:22 +0000 (11:45 +0100)]
Cleanup: fix typo in ring buffer backend comment
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 26 Nov 2013 00:40:44 +0000 (19:40 -0500)]
Fix: handle unknown event type parameter
Skip to an error path if the event type is unknown.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 24 Nov 2013 09:09:04 +0000 (04:09 -0500)]
Fix: eliminate timestamp overlap between packets
By using the timestamp sampled at space reservation when the packet is
being filled as "end timestamp" for a packet, we can ensure there is no
overlap between packet timestamp ranges, so that packet timestamp end <=
following packets timestamp begin.
Overlap between consecutive packets becomes an issue when the end
timestamp of a packet is greater than the end timestamp of a following
packet, IOW a packet completely contains the timestamp range of a
following packet. This kind of situation does not allow trace viewers
to do binary search within the packet timestamps. This kind of situation
will typically never occur if packets are significantly larger than
event size, but this fix ensures it can never even theoretically happen.
The only case where packets can still theoretically overlap is if they
have equal begin and end timestamps, which is valid.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 24 Nov 2013 08:42:22 +0000 (03:42 -0500)]
gcc blacklist: only apply when building with gcc
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 24 Nov 2013 08:28:10 +0000 (03:28 -0500)]
Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 15 Nov 2013 18:55:35 +0000 (13:55 -0500)]
Version 2.4.0-rc1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 4 Nov 2013 17:30:26 +0000 (12:30 -0500)]
Update ext4 instrumentation to Linux 3.12
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 31 Oct 2013 14:25:01 +0000 (10:25 -0400)]
Update RCU instrumentation to Linux 3.12
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 31 Oct 2013 14:22:22 +0000 (10:22 -0400)]
Update btrfs instrumentation to 3.12 kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 31 Oct 2013 14:20:52 +0000 (10:20 -0400)]
Update vmscan instrumentation to Linux 3.12
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 31 Oct 2013 14:14:32 +0000 (10:14 -0400)]
update: kmem instrumentation 3.12 kernel support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 28 Oct 2013 12:11:00 +0000 (12:11 +0000)]
lttng-statedump-impl: Use generic hard irqs for Linux >= 3.12
Quoting the original patch changelog from Otavio Salvador:
> The Linux kernel 3.12 uses the generic hard irqs system for all
> architectures and dropped the GENERIC_HARDIRQ option, as can be seen
> at the commit quoted below:
>
> ,----
> | commit
0244ad004a54e39308d495fee0a2e637f8b5c317
> | Author: Martin Schwidefsky <schwidefsky@de.ibm.com>
> | Date: Fri Aug 30 09:39:53 2013 +0200
> |
> | Remove GENERIC_HARDIRQ config option
> |
> | After the last architecture switched to generic hard irqs the config
> | options HAVE_GENERIC_HARDIRQS & GENERIC_HARDIRQS and the related code
> | for !CONFIG_GENERIC_HARDIRQS can be removed.
> |
> | Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
> `----
Introduce wrapper/irq.h to move the feature availability testing logic
into a specific wrapper header. It now tests if the kernel version is
>= 3.12 or if CONFIG_GENERIC_HARDIRQS is defined (for older kernels).
Introduce the lttng-specific CONFIG_LTTNG_HAS_LIST_IRQ to track
availability of this feature within LTTng.
Reported-by: Philippe Mangaud <r49081@freescale.com>
Reported-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Otavio Salvador [Sat, 26 Oct 2013 19:22:45 +0000 (17:22 -0200)]
lttng-statedump-impl: Fix lttng_list_interrupts for empty implementation
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 15 Oct 2013 12:14:14 +0000 (08:14 -0400)]
Import fix from LTSI: 3.4+ RT kernels use CONFIG_PREEMPT_RT_FULL
Initial LTSI commit:
From: Paul Gortmaker <paul.gortmaker@windriver.com>
> fix reference to obsolete RT Kconfig variable.
>
> The preempt-rt patches no longer use CONFIG_PREEMPT_RT in
> the 3.4 (and newer) versions. So even though LTSI doesn't
> include RT, having this define present can lead to an easy
> to overlook bug for anyone who does try to layer RT onto
> the LTSI baseline.
>
> Update it to use the currently used define name by RT.
>
> Reported-by: Jim Somerville <Jim.Somerville@windriver.com>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Merged with kernel version checks for >= 3.4 to support both old and
newer kernels.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mohamad Gebai [Wed, 9 Oct 2013 01:49:32 +0000 (21:49 -0400)]
Add new tracepoint in KVM
New tracepoint added in kvm: kvm_write_tsc_offset.
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 27 Sep 2013 18:10:40 +0000 (14:10 -0400)]
Blacklist kernels 3.10.13 and 3.11.2
It looks like my guessing on kernel version at which Greg will pull this
fix was wrong. It will probably appear in the next round of stable
releases.
The fix that needs to reach stable-3.10 and stable-3.11 before we can
remove those from the backlist:
commit
7bd36014460f793c19e7d6c94dab67b0afcfcb7f
Author: John Stultz <john.stultz@linaro.org>
Date: Wed Sep 11 16:50:56 2013 -0700
timekeeping: Fix HRTICK related deadlock from ntp lock changes
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
CC: John Stultz <john.stultz@linaro.org>
Mathieu Desnoyers [Thu, 19 Sep 2013 18:59:48 +0000 (13:59 -0500)]
LTTng trace-clock: shrink kernel blacklist
The lockup fix has been pulled into Linux master as:
commit
7bd36014460f793c19e7d6c94dab67b0afcfcb7f
Author: John Stultz <john.stultz@linaro.org>
Date: Wed Sep 11 16:50:56 2013 -0700
timekeeping: Fix HRTICK related deadlock from ntp lock changes
Guessing the stable kernel versions in which this fix will appear in
3.10 and 3.11 stable. 3.12+ are OK.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: John Stultz <john.stultz@linaro.org>
Julien Desfossez [Mon, 16 Sep 2013 15:18:33 +0000 (11:18 -0400)]
Metadata flush writes data from the cache
When doing a flush on a metadata stream we first check if we can fill
the current subbuffer with data from the cache before doing the actual
flush.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Mon, 16 Sep 2013 15:18:32 +0000 (11:18 -0400)]
Per-stream ioctl to get the current timestamp
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Mon, 16 Sep 2013 15:18:31 +0000 (11:18 -0400)]
LTTng ringbuffer ABI calls for index generation
These new calls export the data required for the consumer to generate
the index while tracing :
- timestamp begin
- timestamp end
- events discarded
- context size
- packet size
- stream id
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Mon, 16 Sep 2013 15:18:30 +0000 (11:18 -0400)]
Prepare LTTng override of ring buffer fops
This patch allows LTTng to override the file operations of the lib ring
buffer.
For now it does not provide any additional functions, but it prepares
the work of adding LTTng-specific ioctls to the ring buffer.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 16 Sep 2013 16:10:04 +0000 (11:10 -0500)]
Blacklist Linux kernels 3.10+
Linux kernels 3.10 and 3.11 introduce a deadlock in the timekeeping
subsystem. See
http://lkml.kernel.org/r/
1378943457-27314-1-git-send-email-john.stultz@linaro.org
for details. Awaiting patch merge into Linux master, stable-3.10 and
stable-3.11 for fine-grained kernel version blacklisting.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 21:55:10 +0000 (17:55 -0400)]
Version 2.3.0
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 21:23:15 +0000 (17:23 -0400)]
Fix: metadata stream should not reference session
The metadata stream should only reference the metadata cache, not the
session. Otherwise, we end up in a catch 22 situation:
- Stream POLLHUP is only given when the session is destroyed, but,
- The session is only destroyed when all references to session are
released, including references from channels, but,
- If the metadata stream holds a reference on the metadata session, we
end up with a circular dependency loop.
Fix this by making sure the metadata stream does not use any of the
lttng channel nor lttng session.
Reviewed-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 14:25:00 +0000 (10:25 -0400)]
Fix: btrfs: support 3.11 Linux kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 14:16:19 +0000 (10:16 -0400)]
statedump: remove KERN_DEBUG messages
They appear to be shown by default in dmesg of many distributions, and
they don't add much value (noisy).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 13:44:32 +0000 (09:44 -0400)]
Fix: ext4: add missing tracepoints for 3.11 kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 04:38:17 +0000 (00:38 -0400)]
Fix: ext4: Linux 3.11 support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 04:16:58 +0000 (00:16 -0400)]
Fix: ext3: 3.11 Linux support
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 3 Sep 2013 04:12:34 +0000 (00:12 -0400)]
Fix: statedump nsproxy 3.11 Linux support
Follow upstream Linux change introduced by:
commit
c2b1df2eb42978073ec27c99cc199d20ae48b849
Author: Andy Lutomirski <luto@amacapital.net>
Date: Thu Aug 22 11:39:16 2013 -0700
Rename nsproxy.pid_ns to nsproxy.pid_ns_for_children
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 30 Aug 2013 18:41:31 +0000 (14:41 -0400)]
Version 2.3.0-rc2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 26 Aug 2013 14:13:06 +0000 (10:13 -0400)]
Fix: metadata lttng channel refcount
The OOPS at bug #622 is likely caused by a missing reference on the
lttng channel structure, which could lead to accessing the object after
it has been destroyed if the lttng channel file descriptor is closed
while the metadata stream fd is still in use.
Fixes #622
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Julien Desfossez <jdesfossez@efficios.com>
Mathieu Desnoyers [Thu, 8 Aug 2013 13:15:44 +0000 (09:15 -0400)]
README: lttng-modules incompatible with lttng 0.x patchset
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 18 Jul 2013 01:37:26 +0000 (21:37 -0400)]
Version 2.3.0-rc1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 18 Jul 2013 01:31:24 +0000 (21:31 -0400)]
Fix: kvm x86 probes side-effect
ccflags-y += -I$(kvm_path)
was causing the lttng-ftrace probe to misbehave.
Fixes #591
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 15 Jul 2013 15:26:06 +0000 (11:26 -0400)]
Fix: allow get/put subbuf in loop for metadata stream
data_pending check can trigger the following sequence:
- get_next_subbuf
- put_subbuf
- get_next_subbuf
- put_subbuf
- get_next_subbuf
- put_subbuf
...
and then finally a thread would consume the data:
- get_next_subbuf
- put_next_subbuf
However, we don't want to populate data from the metadata cache into the
stream until put_next_subbuf is issued. Add a check to ensure that it is
not populated until required.
Also, disallow get_subbuf() ioctl on metadata channel: its random-access
semantic does not play well with serialization of the metadata cache on
demand.
Reviewed-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mohamad Gebai [Mon, 8 Jul 2013 16:52:22 +0000 (12:52 -0400)]
Add support for kvm x86 specific tracepoints
Two new probes for kvm-x86 and kvm-x86-mmu.
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mohamad Gebai [Mon, 8 Jul 2013 16:50:46 +0000 (12:50 -0400)]
Add mainline headers for kvm x86 tracepoints
Signed-off-by: Mohamad Gebai <mohamad.gebai@polymtl.ca>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Yannick Brosseau [Mon, 8 Jul 2013 16:46:32 +0000 (12:46 -0400)]
Remove old 3.0.4 x86-64 extracted syscall info
Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.043888 seconds and 4 git commands to generate.