74 lines
2.5 KiB
Diff
74 lines
2.5 KiB
Diff
Subject: ftrace-migrate-disable-tracing.patch
|
|
From: Thomas Gleixner <tglx@linutronix.de>
|
|
Date: Sun, 17 Jul 2011 21:56:42 +0200
|
|
|
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
---
|
|
include/linux/ftrace_event.h | 3 ++-
|
|
kernel/trace/trace.c | 9 ++++++---
|
|
kernel/trace/trace_events.c | 1 +
|
|
kernel/trace/trace_output.c | 5 +++++
|
|
4 files changed, 14 insertions(+), 4 deletions(-)
|
|
|
|
--- a/include/linux/ftrace_event.h
|
|
+++ b/include/linux/ftrace_event.h
|
|
@@ -49,7 +49,8 @@ struct trace_entry {
|
|
unsigned char flags;
|
|
unsigned char preempt_count;
|
|
int pid;
|
|
- int padding;
|
|
+ unsigned short migrate_disable;
|
|
+ unsigned short padding;
|
|
};
|
|
|
|
#define FTRACE_MAX_EVENT \
|
|
--- a/kernel/trace/trace.c
|
|
+++ b/kernel/trace/trace.c
|
|
@@ -1177,6 +1177,8 @@ tracing_generic_entry_update(struct trac
|
|
((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) |
|
|
((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) |
|
|
(need_resched() ? TRACE_FLAG_NEED_RESCHED : 0);
|
|
+
|
|
+ entry->migrate_disable = (tsk) ? tsk->migrate_disable & 0xFF : 0;
|
|
}
|
|
EXPORT_SYMBOL_GPL(tracing_generic_entry_update);
|
|
|
|
@@ -2034,9 +2036,10 @@ static void print_lat_help_header(struct
|
|
seq_puts(m, "# | / _----=> need-resched \n");
|
|
seq_puts(m, "# || / _---=> hardirq/softirq \n");
|
|
seq_puts(m, "# ||| / _--=> preempt-depth \n");
|
|
- seq_puts(m, "# |||| / delay \n");
|
|
- seq_puts(m, "# cmd pid ||||| time | caller \n");
|
|
- seq_puts(m, "# \\ / ||||| \\ | / \n");
|
|
+ seq_puts(m, "# |||| / _--=> migrate-disable\n");
|
|
+ seq_puts(m, "# ||||| / delay \n");
|
|
+ seq_puts(m, "# cmd pid |||||| time | caller \n");
|
|
+ seq_puts(m, "# \\ / ||||| \\ | / \n");
|
|
}
|
|
|
|
static void print_event_info(struct trace_array *tr, struct seq_file *m)
|
|
--- a/kernel/trace/trace_events.c
|
|
+++ b/kernel/trace/trace_events.c
|
|
@@ -116,6 +116,7 @@ static int trace_define_common_fields(vo
|
|
__common_field(unsigned char, flags);
|
|
__common_field(unsigned char, preempt_count);
|
|
__common_field(int, pid);
|
|
+ __common_field(unsigned short, migrate_disable);
|
|
__common_field(int, padding);
|
|
|
|
return ret;
|
|
--- a/kernel/trace/trace_output.c
|
|
+++ b/kernel/trace/trace_output.c
|
|
@@ -593,6 +593,11 @@ int trace_print_lat_fmt(struct trace_seq
|
|
else
|
|
ret = trace_seq_putc(s, '.');
|
|
|
|
+ if (entry->migrate_disable)
|
|
+ ret = trace_seq_printf(s, "%x", entry->migrate_disable);
|
|
+ else
|
|
+ ret = trace_seq_putc(s, '.');
|
|
+
|
|
return ret;
|
|
}
|
|
|