deliverable/lttng-modules.git
9 years agoFix: mm_page_alloc_extfrag instrumentation for kernel 3.14.36
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>
9 years agoFix: update writeback instrumentation for kernel 4.0+
Mathieu Desnoyers [Thu, 19 Mar 2015 19:29:01 +0000 (15:29 -0400)] 
Fix: update writeback instrumentation for kernel 4.0+

Introduced by Linux kernel commit:

commit 0ae45f63d4ef8d8eeec49c7d8b44a1775fff13e8
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Mon Feb 2 00:37:00 2015 -0500

    vfs: add support for a lazytime mount option

And:

commit de1414a654e66b81b5348dbc5259ecf2fb61655e
Author: Christoph Hellwig <hch@lst.de>
Date:   Wed Jan 14 10:42:36 2015 +0100

    fs: export inode_to_bdi and use it in favor of mapping->backing_dev_info

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: compaction mm_compaction_isolate_template update for Linux 4.0+
Mathieu Desnoyers [Thu, 19 Mar 2015 18:32:59 +0000 (14:32 -0400)] 
Fix: compaction mm_compaction_isolate_template update for Linux 4.0+

Updated by Linux commit:

commit b7aba6984dc048503b69c2a885098cdd430832bf
Author: Mel Gorman <mel@csn.ul.ie>
Date:   Thu Jan 13 15:45:54 2011 -0800

    mm: compaction: add trace events for memory compaction activity

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: kmem instrumentation update for mm_page_alloc_extfrag kernel 3.19.2+
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>
9 years agoFix: kmem instrumentation: mm_page_alloc extfrag change_ownership field
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>
9 years agoFix: missing parenthesis in offset_align_floor
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>
9 years agoFix: implement time.h wrapper for FD_ISSET
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>
9 years agoFix: update sched instrumentation for 3.19+ kernels
Mathieu Desnoyers [Sun, 28 Dec 2014 14:08:41 +0000 (09:08 -0500)] 
Fix: update sched instrumentation for 3.19+ kernels

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: update rcu instrumentation for 3.19+ kernels
Mathieu Desnoyers [Sun, 28 Dec 2014 14:05:51 +0000 (09:05 -0500)] 
Fix: update rcu instrumentation for 3.19+ kernels

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: update scsi instrumentation for 3.19+ kernels
Mathieu Desnoyers [Sun, 28 Dec 2014 13:57:59 +0000 (08:57 -0500)] 
Fix: update scsi instrumentation for 3.19+ kernels

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: update module instrumentation for 3.19+ kernels
Mathieu Desnoyers [Sun, 28 Dec 2014 13:53:34 +0000 (08:53 -0500)] 
Fix: update module instrumentation for 3.19+ kernels

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: Add f_dentry wrapper for 3.19+ kernels
Mathieu Desnoyers [Sun, 28 Dec 2014 13:49:25 +0000 (08:49 -0500)] 
Fix: Add f_dentry wrapper for 3.19+ kernels

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: introduce lttng_get_unused_fd() wrapper for 3.19 kernels
Mathieu Desnoyers [Wed, 24 Dec 2014 17:32:30 +0000 (12:32 -0500)] 
Fix: introduce lttng_get_unused_fd() wrapper for 3.19 kernels

get_unused_fd disappears in 3.19 kernel, where get_unused_fd_flags(0)
should be used instead.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: lttng_this_cpu_ptr wrapper for kernel 3.19+
Mathieu Desnoyers [Wed, 24 Dec 2014 17:24:04 +0000 (12:24 -0500)] 
Fix: lttng_this_cpu_ptr wrapper for kernel 3.19+

Starting from kernel 3.19-rc1, __get_cpu_var() disappears, replaced by
this_cpu_ptr(). Introduce a wrapper using either depending on the kernel
version. Older kernels did not expose a this_cpu_ptr(), so keep on using
__get_cpu_var() on old kernels.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: Update btrfs instrumentation for 3.18 Linux kernel
Mathieu Desnoyers [Wed, 24 Dec 2014 16:19:08 +0000 (11:19 -0500)] 
Fix: Update btrfs instrumentation for 3.18 Linux kernel

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix compile error on kernel 3.0.101 with CONFIG_PERF_EVENTS
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>
9 years agoConditional compilation introduced by lttng-modules commit
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>
9 years agoFix: compaction instrumentation update for 3.14.x stable kernels
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>
9 years agoFix: context alignment not properly handled
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>
9 years agoFix compilation on Linux kernel >= 3.18.0
André Goddard Rosa [Fri, 14 Nov 2014 05:33:02 +0000 (21:33 -0800)] 
Fix compilation on Linux kernel >= 3.18.0

Since kernel commit 8a9522d2fe compilation fails as kvm_age_page
tracepoint had its signature changed, so update it accordingly.

Tested pointing to kernels:
    git reset --hard v3.17; make init/version.o
    git reset --hard v3.18-rc1; make init/version.o

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 years agoFix: build for architectures without HAVE_SYSCALL_TRACEPOINTS
Mathieu Desnoyers [Wed, 12 Nov 2014 19:29:47 +0000 (14:29 -0500)] 
Fix: build for architectures without HAVE_SYSCALL_TRACEPOINTS

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoVersion 2.6.0-rc1
Mathieu Desnoyers [Mon, 20 Oct 2014 23:02:08 +0000 (19:02 -0400)] 
Version 2.6.0-rc1

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoExpose lttng-modules ABI version ioctl
Mathieu Desnoyers [Mon, 20 Oct 2014 22:46:44 +0000 (18:46 -0400)] 
Expose lttng-modules ABI version ioctl

Check compatibility between lttng-modules and tools using a version
numbering specifically for the ABI, rather than relying on the major
version of lttng-modules per se. This takes into account that we
sometimes depend on lock-step updates of the toolchain, including tools
and modules.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: syscall list ioctl number conflict
Mathieu Desnoyers [Mon, 20 Oct 2014 22:21:22 +0000 (18:21 -0400)] 
Fix: syscall list ioctl number conflict

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agolttng-modules: fix build for non-x86
Nathan Lynch [Sat, 18 Oct 2014 19:00:23 +0000 (14:00 -0500)] 
lttng-modules: fix build for non-x86

Since commit 644d6e9c2807041db2b4fd9c3350d4fa243060b1 "Remove sys_
prefix from syscall names" the build has been broken for non-x86
architectures.

Remove the sys_ prefix from syscall names and related macros as has
already been done for x86.

Correct "OVVERRIDE" typo in arm and powerpc headers while we're at it.

Successfully built against v3.17 for 32- and 64-bit mips and powerpc;
runtime tested on arm, verifying that mmap2, execve, and clone syscall
events are captured.

Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: syscall listing of session
Mathieu Desnoyers [Thu, 16 Oct 2014 14:50:56 +0000 (16:50 +0200)] 
Fix: syscall listing of session

Fixes syscall listing of sessions when no syscall has been enabled.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoPrint build warning when writeback probe is disabled
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>
10 years agoAdd atomic.h wrapper for before/after atomic
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>
10 years agoFix compilation on Ubuntu 14.10
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>
10 years agoFix: export name as text array in writeback
Julien Desfossez [Fri, 3 Oct 2014 19:52:48 +0000 (15:52 -0400)] 
Fix: export name as text array in writeback

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoCleanup: remove unused trace_clock_read32()
Mathieu Desnoyers [Thu, 2 Oct 2014 19:54:53 +0000 (15:54 -0400)] 
Cleanup: remove unused trace_clock_read32()

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoUse 3.17 ktime_get_mono_fast_ns() new API
Mathieu Desnoyers [Sun, 13 Jul 2014 17:20:57 +0000 (13:20 -0400)] 
Use 3.17 ktime_get_mono_fast_ns() new API

The new ktime_get_mono_fast_ns() API introduced in kernel 3.17 allows
tracing NMI handlers.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
10 years agoCheck for stale version.h files
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>
10 years agoFix: compile lttng_statedump_process_ns on Ubuntu
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>
10 years agoReverse version check logic in lttng_statedump_process_ns
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>
10 years agoFix block_rq_complete TP on Ubuntu kernel
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>
10 years agoIntroduce macros to check Ubuntu kernel version
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>
10 years agoSync writeback tracepoints from mainline
Julien Desfossez [Tue, 30 Sep 2014 20:49:33 +0000 (16:49 -0400)] 
Sync writeback tracepoints from mainline

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: redefinition of DEFINE_WRITEBACK_EVENT
Julien Desfossez [Tue, 30 Sep 2014 20:49:32 +0000 (16:49 -0400)] 
Fix: redefinition of DEFINE_WRITEBACK_EVENT

Signed-off-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: hander negative get_syscall_nr return value
Mathieu Desnoyers [Mon, 29 Sep 2014 17:29:12 +0000 (13:29 -0400)] 
Fix: hander negative get_syscall_nr return value

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: statedump: close_on_exec flag backward compat
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>
10 years agoFix instrumentation of vmscan for older kernels
Mathieu Desnoyers [Fri, 26 Sep 2014 19:40:12 +0000 (15:40 -0400)] 
Fix instrumentation of vmscan for older kernels

Missing definition of LTTNG_TRACEPOINT_EVENT_CONDITION_MAP and
LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP, only used for rather old
kernels (e.g. 3.2.62).

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: older kernels (3.2.x) don't undefine TRACE_SYSTEM
Mathieu Desnoyers [Fri, 26 Sep 2014 19:28:11 +0000 (15:28 -0400)] 
Fix: older kernels (3.2.x) don't undefine TRACE_SYSTEM

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: syscall listing: handle "enable all syscall"
Mathieu Desnoyers [Wed, 24 Sep 2014 20:08:34 +0000 (16:08 -0400)] 
Fix: syscall listing: handle "enable all syscall"

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: don't allow disabling syscalls when none are enabled
Mathieu Desnoyers [Wed, 24 Sep 2014 16:17:03 +0000 (12:17 -0400)] 
Fix: don't allow disabling syscalls when none are enabled

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: syscall: fail disable all if all already disabled
Mathieu Desnoyers [Wed, 24 Sep 2014 01:02:51 +0000 (21:02 -0400)] 
Fix: syscall: fail disable all if all already disabled

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: syscall filtering: NULL pointer deref
Mathieu Desnoyers [Tue, 23 Sep 2014 23:48:01 +0000 (19:48 -0400)] 
Fix: syscall filtering: NULL pointer deref

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoCleanup: list syscall without syscall_entry prefix
Mathieu Desnoyers [Mon, 22 Sep 2014 20:35:45 +0000 (16:35 -0400)] 
Cleanup: list syscall without syscall_entry prefix

Also full transition from syscall_enter to syscall_entry.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: syscall_list_show NULL pointer deref
Mathieu Desnoyers [Mon, 22 Sep 2014 19:30:51 +0000 (15:30 -0400)] 
Fix: syscall_list_show NULL pointer deref

Also make sure the syscall listing index matches the bitmask.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoimplement syscall mask getter
Mathieu Desnoyers [Mon, 15 Sep 2014 17:15:02 +0000 (13:15 -0400)] 
implement syscall mask getter

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoCleanup: lttng-abi.h coding style
Mathieu Desnoyers [Fri, 12 Sep 2014 19:30:29 +0000 (15:30 -0400)] 
Cleanup: lttng-abi.h coding style

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agosyscall listing: show syscall ID
Mathieu Desnoyers [Fri, 12 Sep 2014 19:25:38 +0000 (15:25 -0400)] 
syscall listing: show syscall ID

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoAllow events with same name to be enabled for each channel
Mathieu Desnoyers [Fri, 12 Sep 2014 18:39:50 +0000 (14:39 -0400)] 
Allow events with same name to be enabled for each channel

Before, we refused to enable an event with the same name in two
different channels at the same time within a session.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoABI: use enable a syscall ABI field name
Mathieu Desnoyers [Fri, 12 Sep 2014 18:20:39 +0000 (14:20 -0400)] 
ABI: use enable a syscall ABI field name

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoImplement syscall listing
Mathieu Desnoyers [Fri, 12 Sep 2014 18:12:43 +0000 (14:12 -0400)] 
Implement syscall listing

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: tracepoint list anonymous file name
Mathieu Desnoyers [Thu, 11 Sep 2014 16:19:16 +0000 (12:19 -0400)] 
Fix: tracepoint list anonymous file name

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: syscall filtering: disable all syscalls
Mathieu Desnoyers [Tue, 9 Sep 2014 22:56:53 +0000 (18:56 -0400)] 
Fix: syscall filtering: disable all syscalls

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agosyscall tracing: input/output parameter handling for all arch
Mathieu Desnoyers [Tue, 9 Sep 2014 15:06:22 +0000 (11:06 -0400)] 
syscall tracing: input/output parameter handling for all arch

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agolttng-get-syscall-inout.sh depends on bash
Mathieu Desnoyers [Tue, 9 Sep 2014 14:19:38 +0000 (10:19 -0400)] 
lttng-get-syscall-inout.sh depends on bash

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix generate syscall header script: add missing escape char
Mathieu Desnoyers [Tue, 9 Sep 2014 13:45:16 +0000 (09:45 -0400)] 
Fix generate syscall header script: add missing escape char

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agosyscall instrumentation: handle copy_from_user return value
Mathieu Desnoyers [Tue, 9 Sep 2014 12:32:29 +0000 (08:32 -0400)] 
syscall instrumentation: handle copy_from_user return value

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoRename LTTng syscall instrumentation macros
Mathieu Desnoyers [Tue, 9 Sep 2014 12:28:31 +0000 (08:28 -0400)] 
Rename LTTng syscall instrumentation macros

Mapping:

SC_LTTNG_TRACE_EVENT -> SC_LTTNG_TRACEPOINT_EVENT_CODE
SC_TRACE_EVENT -> SC_LTTNG_TRACEPOINT_EVENT
SC_DECLARE_EVENT_CLASS_NOARGS -> SC_LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS
SC_DEFINE_EVENT_NOARGS -> SC_LTTNG_TRACEPOINT_EVENT_INSTANCE_NOARGS

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoRename LTTng instrumentation macros
Mathieu Desnoyers [Tue, 9 Sep 2014 11:48:17 +0000 (07:48 -0400)] 
Rename LTTng instrumentation macros

Since LTTng instrumentation macros have a different layout than the
Linux kernel TRACE_EVENT macros, privatize the name.

Here is the mapping:

DECLARE_EVENT_CLASS -> LTTNG_TRACEPOINT_EVENT_CLASS
DEFINE_EVENT -> LTTNG_TRACEPOINT_EVENT_INSTANCE
TRACE_EVENT -> LTTNG_TRACEPOINT_EVENT
TRACE_EVENT_CONDITION -> LTTNG_TRACEPOINT_EVENT_CONDITION
DEFINE_EVENT_CONDITION -> LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION
TRACE_EVENT_MAP -> LTTNG_TRACEPOINT_EVENT_MAP
DEFINE_EVENT_MAP -> LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP

LTTNG_V4L2_TRACEPOINT_EVENT -> LTTNG_TRACEPOINT_EVENT_V4L2
DEFINE_WRITEBACK_WORK_EVENT ->
LTTNG_TRACEPOINT_EVENT_WRITEBACK_WORK_INSTANCE
DEFINE_WBC_EVENT -> LTTNG_TRACEPOINT_EVENT_WBC_INSTANCE

DEFINE_EVENT_NOARGS -> LTTNG_TRACEPOINT_EVENT_INSTANCE_NOARGS
TRACE_EVENT_FLAGS -> REMOVE

LTTNG_DECLARE_EVENT_CLASS -> LTTNG_TRACEPOINT_EVENT_CLASS_CODE
LTTNG_DECLARE_EVENT_CLASS_NOARGS ->
LTTNG_TRACEPOINT_EVENT_CLASS_CODE_NOARGS
LTTNG_TRACE_EVENT -> LTTNG_TRACEPOINT_EVENT_CODE

TRACE_EVENT_MAP_NOARGS -> LTTNG_TRACEPOINT_EVENT_MAP_NOARGS
DECLARE_EVENT_CLASS_NOARGS -> LTTNG_TRACEPOINT_EVENT_CLASS_NOARGS

DEFINE_EVENT_MAP_NOARGS -> LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP_NOARGS

DEFINE_EVENT_PRINT -> LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT
DEFINE_EVENT_PRINT_MAP -> LTTNG_TRACEPOINT_EVENT_INSTANCE_PRINT_MAP

DEFINE_EVENT_CONDITION_MAP ->
LTTNG_TRACEPOINT_EVENT_INSTANCE_CONDITION_MAP
TRACE_EVENT_CONDITION_MAP -> LTTNG_TRACEPOINT_EVENT_CONDITION_MAP

TRACE_EVENT_NOARGS -> LTTNG_TRACEPOINT_EVENT_NOARGS
TRACE_EVENT_FN_MAP -> LTTNG_TRACEPOINT_EVENT_FN_MAP
TRACE_EVENT_FN -> LTTNG_TRACEPOINT_EVENT_FN

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoExtract input/output arguments from accept and connect syscalls
Mathieu Desnoyers [Thu, 24 Jul 2014 16:47:46 +0000 (12:47 -0400)] 
Extract input/output arguments from accept and connect syscalls

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agosyscall: extract pipe and pipe2 output args
Mathieu Desnoyers [Mon, 21 Jul 2014 01:04:04 +0000 (21:04 -0400)] 
syscall: extract pipe and pipe2 output args

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoRemove sys_ prefix from syscall names
Mathieu Desnoyers [Sun, 20 Jul 2014 20:34:56 +0000 (16:34 -0400)] 
Remove sys_ prefix from syscall names

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoSystem call inout/output arg processing
Mathieu Desnoyers [Sun, 20 Jul 2014 20:24:45 +0000 (16:24 -0400)] 
System call inout/output arg processing

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoUpdate syscall inout table
Mathieu Desnoyers [Sun, 20 Jul 2014 17:43:38 +0000 (13:43 -0400)] 
Update syscall inout table

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoAdd syscall inout table
Mathieu Desnoyers [Sun, 20 Jul 2014 17:39:39 +0000 (13:39 -0400)] 
Add syscall inout table

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoExtract syscall exit ret value on x86 32/64
Mathieu Desnoyers [Sun, 20 Jul 2014 03:33:40 +0000 (23:33 -0400)] 
Extract syscall exit ret value on x86 32/64

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoExtract system call exit return value
Mathieu Desnoyers [Sun, 20 Jul 2014 03:33:18 +0000 (23:33 -0400)] 
Extract system call exit return value

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoSyscall filtering: apply to syscall exit
Mathieu Desnoyers [Sun, 20 Jul 2014 02:17:55 +0000 (22:17 -0400)] 
Syscall filtering: apply to syscall exit

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoSystem call filtering
Mathieu Desnoyers [Sat, 19 Jul 2014 21:18:25 +0000 (17:18 -0400)] 
System call filtering

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoasoc.h: fix build with v3.17 kernel
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>
10 years agoFix: lttng-modules teardown NULL pointer OOPS
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>
10 years agoFix: handle concurrent flush vs get_next_subbuf on metadata cache
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>
10 years agoModernize README using Markdown
Philippe Proulx [Tue, 16 Sep 2014 23:12:28 +0000 (19:12 -0400)] 
Modernize README using Markdown

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoFix: OOT lttng_logger tracepoint not visible with signed kernels
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>
10 years agoAdd cscope to gitignore
Mathieu Desnoyers [Tue, 9 Sep 2014 14:10:44 +0000 (10:10 -0400)] 
Add cscope to gitignore

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoUpdate kvm instrumentation: compile on 3.17-rc1
Mathieu Desnoyers [Thu, 21 Aug 2014 15:15:50 +0000 (11:15 -0400)] 
Update kvm instrumentation: compile on 3.17-rc1

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoUpdate statedump to 3.17 nsproxy locking
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>
10 years agoFix: noargs probes should calculate alignment and event length
Mathieu Desnoyers [Fri, 25 Jul 2014 16:30:43 +0000 (12:30 -0400)] 
Fix: noargs probes should calculate alignment and event length

A noargs probe could have event fields. noargs just means that the probe
does not receive any argument as parameter. However, it could very well
serialize data into fields (global variables, constants, etc).

It just happens that LTTng does not serialize any data in noargs events
at the moment, but this may very well change.

The if (0) with (void) variable access strategy to stop compiler from
complaining from unused variables does not seem to work as expected with
gcc 4.9.1. Use "unused" attribute instead.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
10 years agoUpdate compaction instrumentation to 3.16 kernel
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>
10 years agoUpdate vmscan instrumentation to 3.16 kernel
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>
10 years agoVersion 2.5.0
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>
10 years agoVersion 2.5.0-rc2
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>
10 years agoFix: statedump: check whether "files" is NULL, RCU semantic fix
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>
10 years agoFix: statedump handle oom case, handle errors
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>
10 years agoFix: correct typo in kernel version number
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>
10 years agoFix: blktrace instrumentation for backported branches
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>
10 years agoFix: statedump block devices OOPS
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>
10 years agoVersion 2.5.0-rc1
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>
10 years agoAdd TID field to some block_* events
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>
10 years agoFix: refuse overwrite mode buffers with less than two subbuffers
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>
10 years agoFix: lttng modules system call generation script
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>
10 years agoDump FD flags and mode on state dump
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>
10 years agoFix: incorrect rwbs field type in block_bio_queue
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>
10 years agoFix: blktrace instrumentation for v3.2.58+ stable branch
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>
10 years agoFix: pass proper args when writing commit counter
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>
10 years agoCleanup: lib ringbuffer: pagecpy has unsigned semantic
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>
This page took 0.043795 seconds and 5 git commands to generate.