| From compudj@mail.openrapids.net Tue Jun 26 23:52:58 2012 |
| From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| Date: Wed, 27 Jun 2012 02:52:55 -0400 |
| Subject: [LTSI staging] LTTng staging update 2.0.1 to 2.0.4 |
| To: Greg KH <gregkh@linuxfoundation.org> |
| Cc: ltsi-dev@lists.linuxfoundation.org |
| Message-ID: <20120627065255.GA6293@Krystal> |
| Content-Disposition: inline |
| |
| |
| Update LTTng in LTSI staging from lttng-modules 2.0.1 to 2.0.4. |
| (available at: git://git.lttng.org/lttng-modules.git) |
| |
| Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| --- |
| drivers/staging/lttng/README | 43 +++++++++- |
| drivers/staging/lttng/instrumentation/events/lttng-module/signal.h | 37 ++++++++ |
| drivers/staging/lttng/instrumentation/syscalls/lttng-syscalls-generate-headers.sh | 2 |
| drivers/staging/lttng/lttng-events.c | 2 |
| drivers/staging/lttng/lttng-tracer.h | 2 |
| drivers/staging/lttng/probes/lttng-events.h | 2 |
| drivers/staging/lttng/probes/lttng-probe-statedump.c | 1 |
| 7 files changed, 80 insertions(+), 9 deletions(-) |
| |
| --- a/drivers/staging/lttng/README |
| +++ b/drivers/staging/lttng/README |
| @@ -1,7 +1,7 @@ |
| LTTng 2.0 modules |
| |
| Mathieu Desnoyers |
| -February 8, 2012 |
| +April 6, 2012 |
| |
| LTTng 2.0 kernel modules build against a vanilla or distribution kernel, without |
| need for additional patches. Other features: |
| @@ -37,9 +37,44 @@ LTTng 0.x patchset, but the lttng-module |
| 0.x, so both tracers cannot be installed at the same time for a given |
| kernel version. |
| |
| -LTTng-modules depends on having kallsyms enabled in the kernel it is |
| -built against. Ideally, if you want to have system call tracing, the |
| -"Trace Syscalls" feature should be enabled too. |
| + |
| +* Kernel config options required |
| + |
| +CONFIG_MODULES: required |
| + * Kernel modules support. |
| +CONFIG_KALLSYMS: required |
| + * See wrapper/ files. This is necessary until the few required missing |
| + symbols are exported to GPL modules from mainline. |
| +CONFIG_HIGH_RES_TIMERS: required |
| + * Needed for LTTng 2.0 clock source. |
| +CONFIG_TRACEPOINTS: required |
| + kernel tracepoint instrumentation |
| + * Enabled as side-effect of any of the perf/ftrace/blktrace |
| + instrumentation features. |
| + |
| + |
| +* Kernel config options supported (optional) |
| + |
| +The following kernel configuration options will affect the features |
| +available from LTTng: |
| + |
| + |
| +CONFIG_HAVE_SYSCALL_TRACEPOINTS: |
| + system call tracing |
| + lttng enable-event -k --syscall |
| + lttng enable-event -k -a |
| +CONFIG_PERF_EVENTS: |
| + performance counters |
| + lttng add-context -t perf:* |
| +CONFIG_EVENT_TRACING: |
| + needed to allow block layer tracing |
| +CONFIG_KPROBES: |
| + Dynamic probe. |
| + lttng enable-event -k --probe ... |
| +CONFIG_KRETPROBES: |
| + Dynamic function entry/return probe. |
| + lttng enable-event -k --function ... |
| + |
| |
| * Note about Perf PMU counters support |
| |
| --- a/drivers/staging/lttng/instrumentation/events/lttng-module/signal.h |
| +++ b/drivers/staging/lttng/instrumentation/events/lttng-module/signal.h |
| @@ -5,6 +5,7 @@ |
| #define _TRACE_SIGNAL_H |
| |
| #include <linux/tracepoint.h> |
| +#include <linux/version.h> |
| |
| #ifndef _TRACE_SIGNAL_DEF |
| #define _TRACE_SIGNAL_DEF |
| @@ -34,6 +35,7 @@ |
| * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV |
| * means that si_code is SI_KERNEL. |
| */ |
| +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) |
| TRACE_EVENT(signal_generate, |
| |
| TP_PROTO(int sig, struct siginfo *info, struct task_struct *task), |
| @@ -44,7 +46,7 @@ TRACE_EVENT(signal_generate, |
| __field( int, sig ) |
| __field( int, errno ) |
| __field( int, code ) |
| - __array( char, comm, TASK_COMM_LEN ) |
| + __array_text( char, comm, TASK_COMM_LEN ) |
| __field( pid_t, pid ) |
| ), |
| |
| @@ -59,6 +61,39 @@ TRACE_EVENT(signal_generate, |
| __entry->sig, __entry->errno, __entry->code, |
| __entry->comm, __entry->pid) |
| ) |
| +#else |
| +TRACE_EVENT(signal_generate, |
| + |
| + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task, |
| + int group, int result), |
| + |
| + TP_ARGS(sig, info, task, group, result), |
| + |
| + TP_STRUCT__entry( |
| + __field( int, sig ) |
| + __field( int, errno ) |
| + __field( int, code ) |
| + __array_text( char, comm, TASK_COMM_LEN ) |
| + __field( pid_t, pid ) |
| + __field( int, group ) |
| + __field( int, result ) |
| + ), |
| + |
| + TP_fast_assign( |
| + tp_assign(sig, sig) |
| + TP_STORE_SIGINFO(info) |
| + tp_memcpy(comm, task->comm, TASK_COMM_LEN) |
| + tp_assign(pid, task->pid) |
| + tp_assign(group, group) |
| + tp_assign(result, result) |
| + ), |
| + |
| + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d", |
| + __entry->sig, __entry->errno, __entry->code, |
| + __entry->comm, __entry->pid, __entry->group, |
| + __entry->result) |
| +) |
| +#endif |
| |
| /** |
| * signal_deliver - called when a signal is delivered |
| --- a/drivers/staging/lttng/instrumentation/syscalls/lttng-syscalls-generate-headers.sh |
| +++ b/drivers/staging/lttng/instrumentation/syscalls/lttng-syscalls-generate-headers.sh |
| @@ -59,7 +59,7 @@ if [ "$CLASS" = integers ]; then |
| |
| NRARGS=0 |
| |
| -echo \ |
| +echo -e \ |
| 'SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs,\n'\ |
| ' TP_STRUCT__entry(),\n'\ |
| ' TP_fast_assign(),\n'\ |
| --- a/drivers/staging/lttng/lttng-events.c |
| +++ b/drivers/staging/lttng/lttng-events.c |
| @@ -292,7 +292,7 @@ struct lttng_event *lttng_event_create(s |
| int ret; |
| |
| mutex_lock(&sessions_mutex); |
| - if (chan->free_event_id == -1UL) |
| + if (chan->free_event_id == -1U) |
| goto full; |
| /* |
| * This is O(n^2) (for each event, the loop is called at event |
| --- a/drivers/staging/lttng/lttng-tracer.h |
| +++ b/drivers/staging/lttng/lttng-tracer.h |
| @@ -40,7 +40,7 @@ |
| |
| #define LTTNG_MODULES_MAJOR_VERSION 2 |
| #define LTTNG_MODULES_MINOR_VERSION 0 |
| -#define LTTNG_MODULES_PATCHLEVEL_VERSION 1 |
| +#define LTTNG_MODULES_PATCHLEVEL_VERSION 4 |
| |
| #define LTTNG_VERSION_NAME "Annedd'ale" |
| #define LTTNG_VERSION_DESCRIPTION \ |
| --- a/drivers/staging/lttng/probes/lttng-events.h |
| +++ b/drivers/staging/lttng/probes/lttng-events.h |
| @@ -18,7 +18,7 @@ |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| - |
| +#include <linux/uaccess.h> |
| #include <linux/debugfs.h> |
| #include "lttng.h" |
| #include "lttng-types.h" |
| --- a/drivers/staging/lttng/probes/lttng-probe-statedump.c |
| +++ b/drivers/staging/lttng/probes/lttng-probe-statedump.c |
| @@ -27,6 +27,7 @@ |
| #include <linux/ip.h> |
| #include <linux/netdevice.h> |
| #include <linux/inetdevice.h> |
| +#include <linux/sched.h> |
| #include "../lttng-events.h" |
| |
| /* |