kernel-testers.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
To: Kevin Shanahan <kmshanah-biM/RbsGxha6c6uEtOJ/EA@public.gmane.org>
Cc: "Ingo Molnar" <mingo-X9Un+BFzKDI@public.gmane.org>,
	"Avi Kivity" <avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	"Steven Rostedt"
	<rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org>,
	"Rafael J. Wysocki" <rjw-KKrjLPT3xs0@public.gmane.org>,
	"Linux Kernel Mailing List"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"Kernel Testers List"
	<kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"Mike Galbraith" <efault-Mmb7MZpHnFY@public.gmane.org>,
	"Frédéric Weisbecker"
	<fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	bugme-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r@public.gmane.org
Subject: [RFC][PATCH] ftrace: function graph trace context switches
Date: Mon, 26 Jan 2009 15:38:12 +0100	[thread overview]
Message-ID: <1232980692.4863.104.camel@laptop> (raw)
In-Reply-To: <1232969705.4863.46.camel@laptop>

On Mon, 2009-01-26 at 12:35 +0100, Peter Zijlstra wrote:
> 
> Another something nice would be to have ctx switches like:
> 
> foo-1 => bar-2 ran: ${time foo spend on the cpu} since: ${time bar
> spend away from the cpu}

Steve, Frederic, how's this?

(compile tested only)

---
 include/linux/ftrace.h               |    5 ++
 kernel/sched_fair.c                  |    1 -
 kernel/trace/Kconfig                 |    1 +
 kernel/trace/trace.c                 |   51 +++++++++++++++++++
 kernel/trace/trace.h                 |   10 ++++
 kernel/trace/trace_functions_graph.c |   88 ++++++++++++++-------------------
 6 files changed, 104 insertions(+), 52 deletions(-)

diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 9f7880d..411b027 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -381,6 +381,11 @@ struct ftrace_graph_ret {
 	int depth;
 };
 
+struct ftrace_graph_switch {
+	pid_t prev, next;
+	u64 ran, since;
+};
+
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
 
 /*
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
index f34cf42..fa477ac 100644
--- a/kernel/sched_fair.c
+++ b/kernel/sched_fair.c
@@ -530,7 +530,6 @@ update_stats_wait_end(struct cfs_rq *cfs_rq, struct sched_entity *se)
 	schedstat_set(se->wait_count, se->wait_count + 1);
 	schedstat_set(se->wait_sum, se->wait_sum +
 			rq_of(cfs_rq)->clock - se->wait_start);
-	schedstat_set(se->wait_start, 0);
 }
 
 static inline void
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
index dde1d46..7aa1c13 100644
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@ -67,6 +67,7 @@ config FUNCTION_GRAPH_TRACER
 	bool "Kernel Function Graph Tracer"
 	depends on HAVE_FUNCTION_GRAPH_TRACER
 	depends on FUNCTION_TRACER
+	select SCHEDSTATS
 	default y
 	help
 	  Enable the kernel to trace a function at both its return
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 2129ab9..380a334 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -31,6 +31,7 @@
 #include <linux/fs.h>
 #include <linux/kprobes.h>
 #include <linux/writeback.h>
+#include <linux/sched.h>
 
 #include <linux/stacktrace.h>
 #include <linux/ring_buffer.h>
@@ -820,6 +821,35 @@ static void __trace_graph_return(struct trace_array *tr,
 	entry->ret				= *trace;
 	ring_buffer_unlock_commit(global_trace.buffer, event, irq_flags);
 }
+
+static void __trace_graph_switch(struct trace_array *tr,
+				 struct trace_array_cpu *data,
+				 unsigned long flags, int pc,
+				 struct task_struct *prev,
+				 struct task_struct *next)
+{
+	struct ring_buffer_event *event;
+	struct ftrace_graph_switch_entry *entry;
+	unsigned long irq_flags;
+
+	if (unlikely(local_read(&__get_cpu_var(ftrace_cpu_disabled))))
+		return;
+
+	event = ring_buffer_lock_reserve(global_trace.buffer, sizeof(*entry),
+					 &irq_flags);
+	if (!event)
+		return;
+	entry	= ring_buffer_event_data(event);
+	tracing_generic_entry_update(&entry->ent, flags, pc);
+	entry->ent.type			= TRACE_GRAPH_SWITCH;
+	entry->ctx.prev = prev->pid;
+	entry->ctx.next = next->pid;
+	entry->ctx.ran = prev->se.sum_exec_runtime -
+		    prev->se.prev_sum_exec_runtime;
+	entry->ctx.since = next->se.exec_start - next->se.wait_start;
+
+	ring_buffer_unlock_commit(global_trace.buffer, event, irq_flags);
+}
 #endif
 
 void
@@ -1097,6 +1127,27 @@ void trace_graph_return(struct ftrace_graph_ret *trace)
 	atomic_dec(&data->disabled);
 	local_irq_restore(flags);
 }
+
+void trace_graph_switch(struct task_struct *prev, struct task_struct *next)
+{
+	struct trace_array *tr = &global_trace;
+	struct trace_array_cpu *data;
+	unsigned long flags;
+	long disabled;
+	int cpu;
+	int pc;
+
+	local_irq_save(flags);
+	cpu = raw_smp_processor_id();
+	data = tr->data[cpu];
+	disabled = atomic_inc_return(&data->disabled);
+	if (likely(disabled == 1)) {
+		pc = preempt_count();
+		__trace_graph_switch(tr, data, flags, pc, prev, next);
+	}
+	atomic_dec(&data->disabled);
+	local_irq_restore(flags);
+}
 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
 
 enum trace_file_type {
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index b96037d..781fbce 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -27,6 +27,7 @@ enum trace_type {
 	TRACE_BOOT_RET,
 	TRACE_GRAPH_RET,
 	TRACE_GRAPH_ENT,
+	TRACE_GRAPH_SWITCH,
 	TRACE_USER_STACK,
 	TRACE_HW_BRANCHES,
 	TRACE_KMEM_ALLOC,
@@ -71,6 +72,12 @@ struct ftrace_graph_ret_entry {
 	struct trace_entry			ent;
 	struct ftrace_graph_ret		ret;
 };
+
+struct ftrace_graph_switch_entry {
+	struct trace_entry		ent;
+	struct ftrace_graph_switch	ctx;
+};
+
 extern struct tracer boot_tracer;
 
 /*
@@ -295,6 +302,8 @@ extern void __ftrace_bad_type(void);
 			  TRACE_GRAPH_ENT);		\
 		IF_ASSIGN(var, ent, struct ftrace_graph_ret_entry,	\
 			  TRACE_GRAPH_RET);		\
+		IF_ASSIGN(var, ent, struct ftrace_graph_switch_entry,	\
+			  TRACE_GRAPH_SWITCH);		\
 		IF_ASSIGN(var, ent, struct hw_branch_entry, TRACE_HW_BRANCHES);\
  		IF_ASSIGN(var, ent, struct trace_power, TRACE_POWER); \
 		IF_ASSIGN(var, ent, struct kmemtrace_alloc_entry,	\
@@ -438,6 +447,7 @@ void trace_function(struct trace_array *tr,
 
 void trace_graph_return(struct ftrace_graph_ret *trace);
 int trace_graph_entry(struct ftrace_graph_ent *trace);
+void trace_graph_switch(struct task_struct *prev, struct task_struct *next);
 
 void tracing_start_cmdline_record(void);
 void tracing_stop_cmdline_record(void);
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index 66fc7b8..cf6494b 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -10,6 +10,7 @@
 #include <linux/uaccess.h>
 #include <linux/ftrace.h>
 #include <linux/fs.h>
+#include <trace/sched.h>
 
 #include "trace.h"
 #include "trace_output.h"
@@ -158,28 +159,13 @@ print_graph_proc(struct trace_seq *s, pid_t pid)
 	return TRACE_TYPE_HANDLED;
 }
 
-
-/* If the pid changed since the last trace, output this event */
 static enum print_line_t
-verif_pid(struct trace_seq *s, pid_t pid, int cpu, pid_t *last_pids_cpu)
+print_graph_switch(struct ftrace_graph_switch_entry *field, struct trace_seq *s,
+			struct trace_iterator *iter)
 {
-	pid_t prev_pid;
-	pid_t *last_pid;
+	int cpu = iter->cpu;
 	int ret;
 
-	if (!last_pids_cpu)
-		return TRACE_TYPE_HANDLED;
-
-	last_pid = per_cpu_ptr(last_pids_cpu, cpu);
-
-	if (*last_pid == pid)
-		return TRACE_TYPE_HANDLED;
-
-	prev_pid = *last_pid;
-	*last_pid = pid;
-
-	if (prev_pid == -1)
-		return TRACE_TYPE_HANDLED;
 /*
  * Context-switch trace line:
 
@@ -197,7 +183,7 @@ verif_pid(struct trace_seq *s, pid_t pid, int cpu, pid_t *last_pids_cpu)
 	if (ret == TRACE_TYPE_PARTIAL_LINE)
 		TRACE_TYPE_PARTIAL_LINE;
 
-	ret = print_graph_proc(s, prev_pid);
+	ret = print_graph_proc(s, field->ctx.prev);
 	if (ret == TRACE_TYPE_PARTIAL_LINE)
 		TRACE_TYPE_PARTIAL_LINE;
 
@@ -205,16 +191,21 @@ verif_pid(struct trace_seq *s, pid_t pid, int cpu, pid_t *last_pids_cpu)
 	if (!ret)
 		TRACE_TYPE_PARTIAL_LINE;
 
-	ret = print_graph_proc(s, pid);
+	ret = print_graph_proc(s, field->ctx.next);
 	if (ret == TRACE_TYPE_PARTIAL_LINE)
 		TRACE_TYPE_PARTIAL_LINE;
 
+	ret = trace_seq_printf(s, "  ran: %Lu, since: %Lu",
+			field->ctx.ran, field->ctx.since);
+	if (!ret)
+		TRACE_TYPE_PARTIAL_LINE;
+
 	ret = trace_seq_printf(s,
 		"\n ------------------------------------------\n\n");
 	if (!ret)
 		TRACE_TYPE_PARTIAL_LINE;
 
-	return ret;
+	return TRACE_TYPE_HANDLED;
 }
 
 static bool
@@ -471,14 +462,9 @@ print_graph_entry(struct ftrace_graph_ent_entry *field, struct trace_seq *s,
 {
 	int ret;
 	int cpu = iter->cpu;
-	pid_t *last_entry = iter->private;
 	struct trace_entry *ent = iter->ent;
 	struct ftrace_graph_ent *call = &field->graph_ent;
 
-	/* Pid */
-	if (verif_pid(s, ent->pid, cpu, last_entry) == TRACE_TYPE_PARTIAL_LINE)
-		return TRACE_TYPE_PARTIAL_LINE;
-
 	/* Interrupt */
 	ret = print_graph_irq(s, call->func, TRACE_GRAPH_ENT, cpu, ent->pid);
 	if (ret == TRACE_TYPE_PARTIAL_LINE)
@@ -523,12 +509,8 @@ print_graph_return(struct ftrace_graph_ret *trace, struct trace_seq *s,
 	int i;
 	int ret;
 	int cpu = iter->cpu;
-	pid_t *last_pid = iter->private;
 	unsigned long long duration = trace->rettime - trace->calltime;
 
-	/* Pid */
-	if (verif_pid(s, ent->pid, cpu, last_pid) == TRACE_TYPE_PARTIAL_LINE)
-		return TRACE_TYPE_PARTIAL_LINE;
 
 	/* Absolute time */
 	if (tracer_flags.val & TRACE_GRAPH_PRINT_ABS_TIME) {
@@ -600,7 +582,6 @@ print_graph_comment(struct print_entry *trace, struct trace_seq *s,
 	int i;
 	int ret;
 	int cpu = iter->cpu;
-	pid_t *last_pid = iter->private;
 
 	/* Absolute time */
 	if (tracer_flags.val & TRACE_GRAPH_PRINT_ABS_TIME) {
@@ -609,10 +590,6 @@ print_graph_comment(struct print_entry *trace, struct trace_seq *s,
 			return TRACE_TYPE_PARTIAL_LINE;
 	}
 
-	/* Pid */
-	if (verif_pid(s, ent->pid, cpu, last_pid) == TRACE_TYPE_PARTIAL_LINE)
-		return TRACE_TYPE_PARTIAL_LINE;
-
 	/* Cpu */
 	if (tracer_flags.val & TRACE_GRAPH_PRINT_CPU) {
 		ret = print_graph_cpu(s, cpu);
@@ -677,6 +654,11 @@ print_graph_function(struct trace_iterator *iter)
 	struct trace_entry *entry = iter->ent;
 
 	switch (entry->type) {
+	case TRACE_GRAPH_SWITCH: {
+		struct ftrace_graph_switch_entry *field;
+		trace_assign_type(field, entry);
+		return print_graph_switch(field, s, iter);
+	}
 	case TRACE_GRAPH_ENT: {
 		struct ftrace_graph_ent_entry *field;
 		trace_assign_type(field, entry);
@@ -724,34 +706,38 @@ static void print_graph_headers(struct seq_file *s)
 	seq_printf(s, "               |   |   |   |\n");
 }
 
-static void graph_trace_open(struct trace_iterator *iter)
+static void probe_sched_switch(struct rq *rq,
+			       struct task_struct *prev,
+			       struct task_struct *next)
 {
-	/* pid on the last trace processed */
-	pid_t *last_pid = alloc_percpu(pid_t);
-	int cpu;
+	trace_graph_switch(prev, next);
+}
 
-	if (!last_pid)
-		pr_warning("function graph tracer: not enough memory\n");
-	else
-		for_each_possible_cpu(cpu) {
-			pid_t *pid = per_cpu_ptr(last_pid, cpu);
-			*pid = -1;
-		}
+static DEFINE_MUTEX(graph_trace_mutex);
+static int graph_trace_ref;
 
-	iter->private = last_pid;
+static void graph_trace_start(struct trace_array *tr)
+{
+	mutex_lock(&graph_trace_mutex);
+	if (!(graph_trace_ref++))
+		register_trace_sched_switch(probe_sched_switch);
+	mutex_unlock(&graph_trace_mutex);
 }
 
-static void graph_trace_close(struct trace_iterator *iter)
+static void graph_trace_stop(struct trace_array *tr)
 {
-	percpu_free(iter->private);
+	mutex_lock(&graph_trace_mutex);
+	if (!(--graph_trace_ref))
+		unregister_trace_sched_switch(probe_sched_switch);
+	mutex_unlock(&graph_trace_mutex);
 }
 
 static struct tracer graph_trace __read_mostly = {
 	.name	     	= "function_graph",
-	.open		= graph_trace_open,
-	.close		= graph_trace_close,
 	.init	     	= graph_trace_init,
 	.reset	     	= graph_trace_reset,
+	.start		= graph_trace_start,
+	.stop		= graph_trace_stop,
 	.print_line	= print_graph_function,
 	.print_header	= print_graph_headers,
 	.flags		= &tracer_flags,


  reply	other threads:[~2009-01-26 14:38 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-19 21:41 2.6.29-rc2-git1: Reported regressions 2.6.27 -> 2.6.28 Rafael J. Wysocki
2009-01-19 21:41 ` [Bug #11849] default IRQ affinity change in v2.6.27 (breaking several SMP PPC based systems) Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12208] uml is very slow on 2.6.28 host Rafael J. Wysocki
2009-01-26 11:35   ` Miklos Szeredi
2009-01-19 21:45 ` [Bug #12159] 2.6.28-rc6-git1 -- No sound produced from Intel HDA ALSA driver Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12160] networking oops after resume from s2ram (2.6.28-rc6) Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12061] snd_hda_intel: power_save: sound cracks on powerdown Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12260] Regression due to commit 2b80848e3818fb1c (p54usb: support LM87 firmwares) Rafael J. Wysocki
2009-01-20 22:11   ` [PATCH -stable] p54usb: fix traffic stalls / packet drop Christian Lamparter
     [not found]     ` <200901202311.11854.chunkeey-S0/GAf8tV78@public.gmane.org>
2009-01-20 22:36       ` Rafael J. Wysocki
2009-01-20 22:39       ` Greg KH
     [not found]         ` <20090120223957.GA6088-l3A5Bk7waGM@public.gmane.org>
2009-01-20 23:56           ` John W. Linville
     [not found]             ` <20090120235626.GA3094-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
2009-01-21 14:03               ` Christian Lamparter
2009-01-19 21:45 ` [Bug #12263] Sata soft reset filling log Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12209] oldish top core dumps (in its meminfo() function) Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12224] journal activity on inactive partition causes inactive harddrive spinup Rafael J. Wysocki
2009-01-20 13:03   ` Theodore Tso
2009-01-19 21:45 ` [Bug #12391] Processor does not go below C2 state until usb.autosuspend is enabled Rafael J. Wysocki
2009-01-27 10:27   ` Pavel Machek
2009-01-19 21:45 ` [Bug #12337] ~100 extra wakeups reported by powertop Rafael J. Wysocki
2009-01-20  9:38   ` Alberto Gonzalez
2009-01-19 21:45 ` [Bug #12264] i915: switching from kwin in opengl mode to a VT then back to x11, x11 freezes Rafael J. Wysocki
2009-01-20 18:13   ` Caleb Cushing
2009-01-19 21:45 ` [Bug #12265] FPU emulation broken in 2.6.28-rc8 ? Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12396] hwinfo problem since 2.6.28 Rafael J. Wysocki
2009-01-26 14:00   ` Beschorner Daniel
2009-01-19 21:45 ` [Bug #12393] debugging in dosemu causes lots of 'scheduling while atomic' Rafael J. Wysocki
2009-01-20  9:58   ` Michal Suchanek
2009-01-19 21:45 ` [Bug #12395] 2.6.28-rc9: oprofile regression Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12403] TTY problem on linux-2.6.28-rc7 Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12401] 2.6.28 regression: xbacklight broken on ThinkPad X61s Rafael J. Wysocki
2009-01-20  7:30   ` Tino Keitel
2009-01-19 21:45 ` [Bug #12404] Oops in 2.6.28-rc9 and -rc8 -- mtrr issues / e1000e Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12405] oops in __bounce_end_io_read under kvm Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12406] 2.6.28 thinks that my PS/2 mouse is a touchpad Rafael J. Wysocki
2009-01-20  1:45   ` Arjan Opmeer
     [not found]     ` <20090120014507.GA1557-ZZpm67l/2hWBldXiawXZ59HuzzzSOjJt@public.gmane.org>
2009-01-20  9:19       ` Dmitry Torokhov
     [not found]         ` <200901200119.59851.dmitry.torokhov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-01-22  6:29           ` Alexander E. Patrakov
2009-01-19 21:45 ` [Bug #12408] Funny problem with 2.6.28: Kernel stalls Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12407] Kernel 2.6.28 regression: Hang after hibernate Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12426] TMDC Joystick no longer works in kernel 2.6.28 Rafael J. Wysocki
2009-01-21  0:48   ` Andrew S. Johnson
     [not found]     ` <200901201848.32080.andy-9eXmkf4BiQ2aMJb+Lgu22Q@public.gmane.org>
2009-01-22 13:34       ` Jiri Kosina
     [not found]         ` <alpine.LRH.1.10.0901221432320.13438-1ReQVI26iDCaZKY3DrU6dA@public.gmane.org>
2009-01-23  2:06           ` Andrew S. Johnson
     [not found]             ` <200901222006.44919.andy-9eXmkf4BiQ2aMJb+Lgu22Q@public.gmane.org>
2009-01-26 11:49               ` Jiri Kosina
2009-01-19 21:45 ` [Bug #12465] KVM guests stalling on 2.6.28 (bisected) Rafael J. Wysocki
2009-01-20  0:12   ` Kevin Shanahan
     [not found]     ` <1232410363.4768.21.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-20 11:35       ` Ingo Molnar
     [not found]         ` <20090120113546.GA26571-X9Un+BFzKDI@public.gmane.org>
2009-01-20 12:37           ` Avi Kivity
2009-01-20 12:42           ` Kevin Shanahan
     [not found]             ` <1232455343.4895.4.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-20 12:56               ` Ingo Molnar
     [not found]                 ` <20090120125652.GA1457-X9Un+BFzKDI@public.gmane.org>
2009-01-20 13:07                   ` Ingo Molnar
     [not found]                     ` <20090120130714.GA11048-X9Un+BFzKDI@public.gmane.org>
2009-01-20 14:59                       ` Steven Rostedt
     [not found]                         ` <alpine.DEB.1.10.0901200957220.2681-f9ZlEuEWxVcI6MkJdU+c8EEOCMrvLtNR@public.gmane.org>
2009-01-20 15:04                           ` Ingo Molnar
     [not found]                             ` <20090120150408.GD21931-X9Un+BFzKDI@public.gmane.org>
2009-01-20 17:53                               ` Steven Rostedt
     [not found]                                 ` <alpine.DEB.1.10.0901201251180.2681-f9ZlEuEWxVcI6MkJdU+c8EEOCMrvLtNR@public.gmane.org>
2009-01-20 18:39                                   ` Ingo Molnar
2009-01-20 17:47                           ` Avi Kivity
     [not found]                             ` <49760E2D.2060109-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-01-21 14:25                               ` Kevin Shanahan
     [not found]                                 ` <1232547932.4895.119.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-21 14:34                                   ` Avi Kivity
     [not found]                                     ` <49773275.3020203-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-01-21 14:51                                       ` Kevin Shanahan
     [not found]                                         ` <1232549502.4895.124.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-21 14:59                                           ` Avi Kivity
     [not found]                                             ` <49773848.4080409-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-01-21 15:13                                               ` Steven Rostedt
2009-01-22  1:48                                               ` Steven Rostedt
2009-01-21 15:10                                       ` Steven Rostedt
2009-01-21 15:18                                       ` Ingo Molnar
2009-01-22 19:57                                         ` Kevin Shanahan
     [not found]                                           ` <1232654237.4885.8.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-22 20:31                                             ` Ingo Molnar
     [not found]                                         ` <20090121151820.GA23813-X9Un+BFzKDI@public.gmane.org>
2009-01-26  9:55                                           ` Kevin Shanahan
2009-01-26 11:35                                             ` Peter Zijlstra
2009-01-26 14:38                                               ` Peter Zijlstra [this message]
2009-01-26 15:39                                                 ` [RFC][PATCH] ftrace: function graph trace context switches Frédéric Weisbecker
2009-01-26 15:41                                                 ` Steven Rostedt
2009-03-16 17:57                                                 ` Frederic Weisbecker
2009-01-26 15:00                                               ` [Bug #12465] KVM guests stalling on 2.6.28 (bisected) Ingo Molnar
2009-01-20 14:23                   ` Kevin Shanahan
     [not found]                     ` <1232461380.4895.33.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-20 14:25                       ` Ingo Molnar
     [not found]                         ` <20090120142515.GC10224-X9Un+BFzKDI@public.gmane.org>
2009-01-20 15:51                           ` Kevin Shanahan
     [not found]                             ` <1232466686.4895.45.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-20 16:06                               ` Ingo Molnar
     [not found]                                 ` <20090120160613.GA32650-X9Un+BFzKDI@public.gmane.org>
2009-01-20 16:19                                   ` Peter Zijlstra
2009-01-20 14:46                       ` Frédéric Weisbecker
2009-01-20 13:04               ` Avi Kivity
     [not found]                 ` <4975CBF8.90101-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-01-20 17:54                   ` Kevin Shanahan
     [not found]                     ` <1232474081.4895.76.camel-9TBizaOOD0ujuAshGpSIhRCuuivNXqWP@public.gmane.org>
2009-01-20 18:42                       ` Ingo Molnar
2009-01-19 21:45 ` [Bug #12409] NULL pointer dereference at get_stats() Rafael J. Wysocki
2009-01-21 16:18   ` Frederik Deweerdt
2009-01-24  0:39     ` Tetsuo Handa
2009-02-07  2:34     ` Tetsuo Handa
     [not found]       ` <200902071133.AJJ09378.MOHLFFtOSOVQFJ-JPay3/Yim36HaxMnTkn67Xf5DAMn2ifp@public.gmane.org>
2009-02-09 11:19         ` Tetsuo Handa
     [not found]           ` <200902092019.CHE32301.JLFVFMtQSOOFHO-JPay3/Yim36HaxMnTkn67Xf5DAMn2ifp@public.gmane.org>
2009-02-11 22:54             ` Alok Kataria
2009-02-11 23:02               ` Alok Kataria
2009-02-13 11:54         ` Tetsuo Handa
2009-01-19 21:45 ` [Bug #12411] 2.6.28: BUG in r8169 Rafael J. Wysocki
2009-01-19 21:45 ` [Bug #12483] Reference to inexistent struct dmi_device_id breaks the build Rafael J. Wysocki
2009-01-20  8:15   ` Jean Delvare
2009-01-19 21:45 ` [Bug #12500] r8169: NETDEV WATCHDOG: eth0 (r8169): transmit timed out Rafael J. Wysocki
2009-01-22 16:43 ` 2.6.29-rc2-git1: Reported regressions 2.6.27 -> 2.6.28 Jörg-Volker Peetz
2009-01-24 13:25 ` Rolf Eike Beer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1232980692.4863.104.camel@laptop \
    --to=peterz-wegcikhe2lqwvfeawa7xhq@public.gmane.org \
    --cc=avi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=bugme-daemon-590EEB7GvNiWaY/ihj7yzEB+6BGkLq7r@public.gmane.org \
    --cc=efault-Mmb7MZpHnFY@public.gmane.org \
    --cc=fweisbec-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=kernel-testers-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=kmshanah-biM/RbsGxha6c6uEtOJ/EA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mingo-X9Un+BFzKDI@public.gmane.org \
    --cc=rjw-KKrjLPT3xs0@public.gmane.org \
    --cc=rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).