Mathieu Desnoyers [Fri, 4 Sep 2015 05:12:53 +0000 (01:12 -0400)]
Fix: use after free in channel release
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 31 Aug 2015 13:57:18 +0000 (09:57 -0400)]
Fix: build failure on 2.6.36
Fixes build failure on the 2.6.36 kernel branch which misses the
vzalloc() function.
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Alexandre Montplaisir [Tue, 26 May 2015 20:12:00 +0000 (16:12 -0400)]
Fix: Update kmem event for Ubuntu's 3.16 kernel
The upstream patch in question in commit
72906e1 was cherry-picked into
Ubuntu's 3.16 kernel backport branch (called lts-utopic). The version
check should also include this branch.
The other backport branch, lts-vivid, and all following ones will be
covered by the standard
LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,2)
check, so should not require other workarounds.
References #889.
Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Alexandre Montplaisir [Fri, 22 May 2015 18:36:53 +0000 (14:36 -0400)]
Fix: Update kmem event for recent Ubuntu kernel
Ubuntu backported a patch into their 3.13 (Trusty) branch which
changes kmem event definition.
Upstream commit
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=
99592d598eca62bdbbf62b59941c189176dfc614
first appears in 4.0 (and was later backported to 3.19.2).
We already have the proper check for this.
This corresponds to Ubuntu commit
http://kernel.ubuntu.com/git/ubuntu/ubuntu-trusty.git/commit/?id=
d938e4bff1089a1f4757ed94a5cace803c6a363b
which was first released with 3.13.0-50.82.
This required adding a new check specifically for the
Ubuntu version.
Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 29 Jul 2015 17:00:04 +0000 (13:00 -0400)]
Fix: kmem probe with Ubuntu 3.13 kernels
Fixes an undefined reference to get_pageblock_flags_mask.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 16 Apr 2015 21:15:45 +0000 (17:15 -0400)]
Implement wrapper around get_pfnblock_flags_mask
This is used by kmem instrumentation, and changed in 4.0.0. This change
has been backported to 3.19.2 stable kernel.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Martin Leisener [Wed, 10 Jun 2015 13:17:37 +0000 (15:17 +0200)]
Fix: Building the event list fails on fragmented memory
On a small arm imx6 solo with 256MB RAM it often happens that memory
becomes fragmented rather quickly, so that kmalloc will not be able to
get enough consecutive pages (enocuntered for example if you enable all
kernel events: lttng enable-event -k syscall --all).
This patch switches the allocation to vmalloc. Tested for x86 on Ubuntu
12.04 Lts and on imx6 solo 256MB RAM
If this patch is not applied, you can identify low and/or fragmented
memory failures by looking at the kernel ring buffer (please ignore DMA,
it is due to some memory setup misconfiguration, should read Normal):
...
[ 321.993820] lttng-sessiond: page allocation failure: order:4, mode:0x1040d0
...
[ 321.994711] lowmem_reserve[]: 0 0 0
[ 321.994727] DMA: 801*4kB (UEMC) 424*8kB (EMC) 355*16kB (UEMC) 344*32kB (MC) 340*64kB (C) 8*128kB (C) 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB 0*32768kB = 46068kB
[ Edit by Mathieu: use vzalloc() rather than vmalloc() + memset 0. ]
Signed-off-by: Martin Leisener <martin@leisener.de>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 25 Jun 2015 13:10:52 +0000 (09:10 -0400)]
Fix: use after free on metadata cache reallocation
When the metadata cache is expanded (reallocated) by
lttng_metadata_printf(), the metadata cache reader
(lttng_metadata_output_channel()) may use freed memory, because the
metadata cache is not protected from concurrent read accesses. The
metadata cache updates are protected from each other by the sessions
mutex, but metadata cache reads do not hold the sessions mutex.
Actually, the comment on top of lttng_metadata_output_channel() stating
"We have exclusive access to our metadata buffer (protected by the
sessions_mutex)" is simply wrong, because this mutex is never held when
calling lttng_metadata_output_channel().
Promote the per-stream lock to the metadata cache used by each of those
metadata streams, thus ensuring mutual exclusion between metadata cache
reallocation and readers.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 18 Jun 2015 17:47:54 +0000 (13:47 -0400)]
Version 2.5.5
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 15 Jun 2015 16:28:25 +0000 (12:28 -0400)]
Fix: Incorrect Ubuntu kernel patchlevel
The kernel version used should be the one in Makefile and generated
version.h, not the one tweaked by Ubuntu as "0" in the built package.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 27 May 2015 16:56:05 +0000 (12:56 -0400)]
Fix: RHEL 7.1 block instrumentation
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 27 May 2015 16:19:01 +0000 (12:19 -0400)]
Fix: add RHEL version macros
RHEL 7.1 has backported upstream patches that change the kvm.h
tracepoint prototype. Add version check specific to RHEL to handle this
case.
RHEL 7.x has the required fixes backported that allow removing the 3.10
blacklist check for them, so take this into account.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 27 May 2015 16:13:32 +0000 (12:13 -0400)]
Fix: add missing parenthesis in ubuntu version check
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 14 May 2015 22:29:58 +0000 (18:29 -0400)]
Fix: missing statedump end event when block device listing available
Incorrect handling of lttng_enumerate_block_devices() return value of 0
(which means "ok"), causing do_lttng_statedump() to return early.
To causes missing "lttng_statedump_end" in traces where block device
enumeration is available (CONFIG_KALLSYMS=y).
Reported-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 29 Apr 2015 15:12:48 +0000 (11:12 -0400)]
Version 2.5.4
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 Apr 2015 21:53:37 +0000 (17:53 -0400)]
Fix: mmutrace warnings about redefined macros
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 Apr 2015 21:32:54 +0000 (17:32 -0400)]
Fix: x86 mmutrace event extra field for kernels >= 3.11
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 27 Apr 2015 21:33:47 +0000 (17:33 -0400)]
Fix: add missing x86 mmutrace kernel header include
Needed to ensure the compiler checks prototypes of lttng-modules probe
against the kernel prototypes.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 Apr 2015 22:18:37 +0000 (18:18 -0400)]
Fix: update README file to match reality: kernels >= 2.6.36 are supported
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 Apr 2015 21:38:59 +0000 (17:38 -0400)]
Fix: add struct file_handle forward declaration
For older kernels (e.g. 2.6.38).
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 Apr 2015 21:51:50 +0000 (17:51 -0400)]
Fix: atomic.h wrapper for kernels < 2.6.37
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 23 Apr 2015 21:46:51 +0000 (17:46 -0400)]
Fix: disable x86 kvm instrumentation for kernels < 2.6.38
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Antoine Busque [Sat, 21 Mar 2015 19:13:18 +0000 (15:13 -0400)]
Fix: mm_page_alloc_extfrag instrumentation for kernel 3.14.36
The following commit has been backported from kernel 3.19.2 into
3.14.36, introducing a change to mm_page_alloc_extfrag and therefore
provoking a build failure on a 3.14.36 kernel:
commit
a4f3f96f850db69890f47984c60606a2362bee89
Author: Vlastimil Babka <vbabka@suse.cz>
Date: Wed Feb 11 15:28:15 2015 -0800
mm: when stealing freepages, also take pages created by splitting buddy page
commit
99592d598eca62bdbbf62b59941c189176dfc614 upstream.
This patch adds the proper version check to allow building on 3.14.y.
Signed-off-by: Antoine Busque <abusque@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 19 Mar 2015 19:48:26 +0000 (15:48 -0400)]
Fix: update backported kmem patches to lttng-modules 2.5 API
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 19 Mar 2015 17:02:38 +0000 (13:02 -0400)]
Fix: kmem instrumentation update for mm_page_alloc_extfrag kernel 3.19.2+
This commit introduces an API change for mm_page_alloc_extfrag
instrumentation:
commit
cdf476685b5c9dcd20f0305791bd60212cace25d
Author: Vlastimil Babka <vbabka@suse.cz>
Date: Wed Feb 11 15:28:15 2015 -0800
mm: when stealing freepages, also take pages created by splitting buddy page
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 19 Mar 2015 16:55:48 +0000 (12:55 -0400)]
Fix: kmem instrumentation: mm_page_alloc extfrag change_ownership field
Linux kernel 3.12.30 and onward changes the parameter received by this
callback. It's the same type, but the meaning differs. This is why it
did compile fine, but the data gathered did not really represent
change_ownership.
This change has been introduced in the Linux kernel by this commit:
commit
52c8f6a5aeb0bdd396849ecaa72d96f8175528f5
Author: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Date: Tue Nov 12 15:08:19 2013 -0800
mm: get rid of unnecessary overhead of trace_mm_page_alloc_extfrag()
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 26 Jan 2015 20:08:50 +0000 (15:08 -0500)]
Version 2.5.3
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 16 Jan 2015 16:33:56 +0000 (11:33 -0500)]
Fix: missing parenthesis in offset_align_floor
Is currently unused. Triggers a compile error when used.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 12 Jan 2015 21:27:11 +0000 (16:27 -0500)]
Fix: implement time.h wrapper for FD_ISSET
Kernels v3.4.0 to v3.4.7 still define FD_ISSET, but __FD_ISSET has been
removed. Therefore, we cannot use the FD_ISSET define to find out of we
need to use the new close_on_exec(). Implement a wrapper based on kernel
version detection instead.
Fixes #872
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Engraf [Thu, 18 Dec 2014 10:45:22 +0000 (11:45 +0100)]
Fix compile error on kernel 3.0.101 with CONFIG_PERF_EVENTS
The context parameter of perf_event_create_kernel_counter() was introduced
with kernel 3.1.
Signed-off-by: David Engraf <david.engraf@sysgo.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
David Engraf [Wed, 17 Dec 2014 15:17:31 +0000 (10:17 -0500)]
Conditional compilation introduced by lttng-modules commit
0007344741ef65259bc52dea72259173dfbf96c0
needs to be applied for kernels 3.12.30 and up in the 3.12.x branch.
Signed-off-by: David Engraf <david.engraf@sysgo.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 12 Dec 2014 15:34:54 +0000 (10:34 -0500)]
Version 2.5.2
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Simon Marchi [Sun, 7 Dec 2014 17:14:19 +0000 (12:14 -0500)]
Fix: compaction instrumentation update for 3.14.x stable kernels
Conditional compilation introduced by lttng-modules commit
0007344741ef65259bc52dea72259173dfbf96c0
needs to be applied to kernels 3.14.25 and up in the 3.14.x branch.
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
Reported-by: Bjørn Forsman <bjorn.forsman@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 1 Dec 2014 23:12:53 +0000 (18:12 -0500)]
Fix: context alignment not properly handled
This issue affects only architectures without efficient unaligned
accesses, only when a context field with larger alignment follows a
context field with smaller alignment. It generates unreadable traces
when such context fields are enabled in this configuration.
Fixes #858
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Mon, 20 Oct 2014 21:08:10 +0000 (17:08 -0400)]
Version 2.5.1
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 12 Oct 2014 16:18:13 +0000 (18:18 +0200)]
Print build warning when writeback probe is disabled
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Alexandre Montplaisir [Fri, 3 Oct 2014 19:58:02 +0000 (15:58 -0400)]
Fix compilation on Ubuntu 14.10
Extend the range introduced in
2260bfd to also include Ubuntu's
3.16 kernel. The API-changing patch was also backported to that series.
This will also be required for Trusty users once the the Utopic
hardware-enablement stack, including that 3.16 kernel, comes in.
Refs #838. See comment #2 for the patch in question.
Signed-off-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Wed, 1 Oct 2014 15:05:11 +0000 (11:05 -0400)]
Fix: compile lttng_statedump_process_ns on Ubuntu
Fixes: #838
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Wed, 1 Oct 2014 15:05:10 +0000 (11:05 -0400)]
Reverse version check logic in lttng_statedump_process_ns
This allows to keep the most up-to-date branch on top.
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Thu, 21 Aug 2014 14:53:12 +0000 (10:53 -0400)]
Update statedump to 3.17 nsproxy locking
This Linux upstream commit introduces locking strategy back and forth:
commit
728dba3a39c66b3d8ac889ddbe38b5b1c264aec3
Author: Eric W. Biederman <ebiederm@xmission.com>
Date: Mon Feb 3 19:13:49 2014 -0800
namespaces: Use task_lock and not rcu to protect nsproxy
Use the task lock starting from kernel 3.17 rather than RCU to access
the task nsproxy.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Wed, 1 Oct 2014 15:05:09 +0000 (11:05 -0400)]
Fix block_rq_complete TP on Ubuntu kernel
Fixes: #814
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Julien Desfossez [Wed, 1 Oct 2014 15:05:08 +0000 (11:05 -0400)]
Introduce macros to check Ubuntu kernel version
Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Nitin A Kamble [Fri, 26 Sep 2014 01:19:43 +0000 (18:19 -0700)]
asoc.h: fix build with v3.17 kernel
The snd_soc_codec structure has changed in the v3.17 kernel. Some
of the redundant fields have been removed. To be specific this commit
from the v3.17 kernel causes the build failure for lttng-modules.
|commit
f4333203ec933f9272c90c7add01774ec2cf94d3
|Author: Lars-Peter Clausen <lars@metafoo.de>
|Date: Mon Jun 16 18:13:02 2014 +0200
|
| ASoC: Move name and id from CODEC/platform to component
|
| The component struct already has a name and id field which are initialized to
| the same values as the same fields in the CODEC and platform structs. So remove
| them from the CODEC and platform structs and used the ones from the component
| struct instead.
|
| Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
| Signed-off-by: Mark Brown <broonie@linaro.org>
The asoc.h is changed according to the change in the above kernel commit
to fix the lttng-modules build. The change in the lttng-modules code is
conditional on the kernel version, so that it does not break builds with
previous kernel versions.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 12 Oct 2014 14:56:25 +0000 (16:56 +0200)]
Add atomic.h wrapper for before/after atomic
Linux 3.16 changes the name of before/after atomic functions, and
generates a warning at build time about deprecation of old ones. Create
a wrapper header to handle this.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 13 Jul 2014 17:27:01 +0000 (13:27 -0400)]
Update vmscan instrumentation to 3.16 kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sun, 13 Jul 2014 17:33:21 +0000 (13:33 -0400)]
Update compaction instrumentation to 3.16 kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Wed, 1 Oct 2014 16:05:41 +0000 (12:05 -0400)]
Check for stale version.h files
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
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>
This page took 0.045091 seconds and 4 git commands to generate.