From: Ingo Molnar <mingo@elte.hu>
To: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Cc: Nick Piggin <npiggin@suse.de>,
Linus Torvalds <torvalds@linux-foundation.org>,
"Eric W. Biederman" <ebiederm@xmission.com>,
Thomas Gleixner <tglx@linutronix.de>,
Nick Piggin <nickpiggin@yahoo.com.au>,
Mingming Cao <cmm@us.ibm.com>, Adrian Bunk <bunk@stusta.de>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Mariusz Kozlowski <m.kozlowski@tuxland.pl>,
Oliver Pinter <oliver.pntr@gmail.com>,
Sid Boyce <g3vbv@blueyonder.co.uk>,
Jens Axboe <jens.axboe@oracle.com>
Subject: [patch] hrtimers debug patch
Date: Fri, 23 Mar 2007 13:01:48 +0100 [thread overview]
Message-ID: <20070323120148.GA27505@elte.hu> (raw)
In-Reply-To: <6bffcb0e0703230051i5accb180r7bd0fb16de85198a@mail.gmail.com>
* Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:
> http://www.stardust.webpages.pl/files/tbf/bitis-gabonica/2.6.21-rc4/git-config
>
> I don't know how to reproduce this bug on 2.6.21-rc4. On
> 2.6.21-rc2-mm1 it was very simple, just run youtube,
> bash_shared_mapping etc. In fact I didn't see this bug for a week.
hm. The sysrq-q info you provided shows a weird (=='impossible')
high-res timers state, in that CPU#1's hrtimer_cpu_base->expires_next is
at KTIME_MAX, and state has been there for around 8-9 minutes. The
timers there just stay pending and never expire. Thomas and me have just
spent 4 hours reviewing the affected code inside out and upside down but
we can find no credible way for this condition to trigger. But it
obviously happened on your box, and persisted for many minutes.
So to move this issue forward, i've written a hrtimers debug patch
(attached) - which checks a couple of key assumptions in the hrtimers.c
code, and which also extends the SysRq-Q debug info with this:
.expires_next : 88378000000 nsecs
.exp_prev : 88377000000 nsecs
last expires_next stacktrace:
update_cpu_base_expires_next+5f/63
hrtimer_interrupt+177/1b3
smp_apic_timer_interrupt+6e/80
apic_timer_interrupt+33/38
<ffffffff>
knowing which codepath updated expires_next to KTIME_MAX would be very
helpful to us.
So could you please pick up latest git (12998096c or later), undo commit
25496caec (which broke my laptop - it might break your system too), and
apply the attached patch, and keep lockdep enabled (so that you get
CONFIG_STACKTRACE=y, essential for the stacktrace output above)? It
might take some time for you to trigger this bug again, but that's the
best idea we have so far. If we are lucky then one of the WARN_ON()s
triggers much sooner.
if the hang occurs again then please do a SysRq-Q again and send us the
output.
Ingo
---------------------------->
Subject: [patch] hrtimers debug patch
From: Ingo Molnar <mingo@elte.hu>
debugging helper for hrtimers. Keep a lookout for WARN_ON messages.
Saves a stacktrace on every expires_next update, and makes that
stack-trace available in SysRq-Q (or /proc/timer_list) output.
( make sure to run this on a lockdep-enabled kernel, so that
CONFIG_STACKTRACE=y. )
NOT-Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/i386/kernel/apic.c | 2 +
include/linux/hrtimer.h | 7 +++++
kernel/hrtimer.c | 54 +++++++++++++++++++++++++++++++++++----------
kernel/time/tick-oneshot.c | 13 ++++++++++
kernel/time/timer_list.c | 21 ++++++++++++++++-
5 files changed, 83 insertions(+), 14 deletions(-)
Index: linux/arch/i386/kernel/apic.c
===================================================================
--- linux.orig/arch/i386/kernel/apic.c
+++ linux/arch/i386/kernel/apic.c
@@ -523,6 +523,8 @@ void __init setup_boot_APIC_clock(void)
*/
if (nmi_watchdog != NMI_IO_APIC)
lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY;
+ else
+ printk(KERN_WARNING "APIC timer registered as dummy, due to nmi_watchdog=1!\n");
}
/* Setup the lapic or request the broadcast */
Index: linux/include/linux/hrtimer.h
===================================================================
--- linux.orig/include/linux/hrtimer.h
+++ linux/include/linux/hrtimer.h
@@ -15,6 +15,7 @@
#ifndef _LINUX_HRTIMER_H
#define _LINUX_HRTIMER_H
+#include <linux/stacktrace.h>
#include <linux/rbtree.h>
#include <linux/ktime.h>
#include <linux/init.h>
@@ -196,6 +197,12 @@ struct hrtimer_cpu_base {
struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES];
#ifdef CONFIG_HIGH_RES_TIMERS
ktime_t expires_next;
+# define HRTIMERS_STACK_TRACE_DEPTH 32
+# ifdef CONFIG_STACKTRACE
+ struct stack_trace exp_trace;
+ unsigned long exp_entries[HRTIMERS_STACK_TRACE_DEPTH];
+# endif
+ ktime_t exp_prev;
int hres_active;
struct list_head cb_pending;
unsigned long nr_events;
Index: linux/kernel/hrtimer.c
===================================================================
--- linux.orig/kernel/hrtimer.c
+++ linux/kernel/hrtimer.c
@@ -305,6 +305,27 @@ unsigned long ktime_divns(const ktime_t
/* High resolution timer related functions */
#ifdef CONFIG_HIGH_RES_TIMERS
+static void update_cpu_base_expires_next(struct hrtimer_cpu_base *cpu_base,
+ ktime_t expires_next)
+{
+ cpu_base->exp_prev = cpu_base->expires_next;
+ cpu_base->expires_next = expires_next;
+
+#ifdef CONFIG_STACKTRACE
+ {
+ struct stack_trace *trace = &cpu_base->exp_trace;
+
+ trace->nr_entries = 0;
+ trace->entries = cpu_base->exp_entries;
+ trace->max_entries = HRTIMERS_STACK_TRACE_DEPTH;
+ trace->skip = 1;
+ trace->all_contexts = 0;
+
+ save_stack_trace(trace, NULL);
+ }
+#endif
+}
+
/*
* High resolution timer enabled ?
*/
@@ -353,7 +374,7 @@ static void hrtimer_force_reprogram(stru
struct hrtimer_clock_base *base = cpu_base->clock_base;
ktime_t expires;
- cpu_base->expires_next.tv64 = KTIME_MAX;
+ update_cpu_base_expires_next(cpu_base, (ktime_t){ .tv64 = KTIME_MAX });
for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++, base++) {
struct hrtimer *timer;
@@ -363,7 +384,7 @@ static void hrtimer_force_reprogram(stru
timer = rb_entry(base->first, struct hrtimer, node);
expires = ktime_sub(timer->expires, base->offset);
if (expires.tv64 < cpu_base->expires_next.tv64)
- cpu_base->expires_next = expires;
+ update_cpu_base_expires_next(cpu_base, expires);
}
if (cpu_base->expires_next.tv64 != KTIME_MAX)
@@ -382,7 +403,7 @@ static void hrtimer_force_reprogram(stru
static int hrtimer_reprogram(struct hrtimer *timer,
struct hrtimer_clock_base *base)
{
- ktime_t *expires_next = &__get_cpu_var(hrtimer_bases).expires_next;
+ struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
ktime_t expires = ktime_sub(timer->expires, base->offset);
int res;
@@ -396,7 +417,7 @@ static int hrtimer_reprogram(struct hrti
if (hrtimer_callback_running(timer))
return 0;
- if (expires.tv64 >= expires_next->tv64)
+ if (expires.tv64 >= cpu_base->expires_next.tv64)
return 0;
/*
@@ -404,7 +425,7 @@ static int hrtimer_reprogram(struct hrti
*/
res = tick_program_event(expires, 0);
if (!IS_ERR_VALUE(res))
- *expires_next = expires;
+ update_cpu_base_expires_next(cpu_base, expires);
return res;
}
@@ -479,7 +500,7 @@ static inline void hrtimer_remove_cb_pen
*/
static inline void hrtimer_init_hres(struct hrtimer_cpu_base *base)
{
- base->expires_next.tv64 = KTIME_MAX;
+ update_cpu_base_expires_next(base, (ktime_t){ .tv64 = KTIME_MAX });
base->hres_active = 0;
INIT_LIST_HEAD(&base->cb_pending);
}
@@ -543,7 +564,8 @@ static inline int hrtimer_enqueue_reprog
*/
static int hrtimer_switch_to_hres(void)
{
- struct hrtimer_cpu_base *base = &__get_cpu_var(hrtimer_bases);
+ int cpu = smp_processor_id();
+ struct hrtimer_cpu_base *base = &per_cpu(hrtimer_bases, cpu);
unsigned long flags;
if (base->hres_active)
@@ -553,6 +575,8 @@ static int hrtimer_switch_to_hres(void)
if (tick_init_highres()) {
local_irq_restore(flags);
+ printk(KERN_WARNING "Could not switch to high resolution "
+ "mode on CPU %d\n", cpu);
return 0;
}
base->hres_active = 1;
@@ -667,6 +691,7 @@ static void enqueue_hrtimer(struct hrtim
struct rb_node **link = &base->active.rb_node;
struct rb_node *parent = NULL;
struct hrtimer *entry;
+ int leftmost = 1;
/*
* Find the right place in the rbtree:
@@ -678,18 +703,19 @@ static void enqueue_hrtimer(struct hrtim
* We dont care about collisions. Nodes with
* the same expiry time stay together.
*/
- if (timer->expires.tv64 < entry->expires.tv64)
+ if (timer->expires.tv64 < entry->expires.tv64) {
link = &(*link)->rb_left;
- else
+ } else {
link = &(*link)->rb_right;
+ leftmost = 0;
+ }
}
/*
* Insert the timer to the rbtree and check whether it
* replaces the first pending timer
*/
- if (!base->first || timer->expires.tv64 <
- rb_entry(base->first, struct hrtimer, node)->expires.tv64) {
+ if (leftmost) {
/*
* Reprogram the clock event device. When the timer is already
* expired hrtimer_enqueue_reprogram has either called the
@@ -706,6 +732,9 @@ static void enqueue_hrtimer(struct hrtim
rb_link_node(&timer->node, parent, link);
rb_insert_color(&timer->node, &base->active);
+
+ WARN_ON(base->first != rb_first(&base->active));
+
/*
* HRTIMER_STATE_ENQUEUED is or'ed to the current state to preserve the
* state of a possibly running callback.
@@ -742,6 +771,7 @@ static void __remove_hrtimer(struct hrti
hrtimer_force_reprogram(base->cpu_base);
}
rb_erase(&timer->node, &base->active);
+ WARN_ON(base->first != rb_first(&base->active));
}
timer->state = newstate;
}
@@ -1053,7 +1083,7 @@ void hrtimer_interrupt(struct clock_even
base++;
}
- cpu_base->expires_next = expires_next;
+ update_cpu_base_expires_next(cpu_base, expires_next);
/* Reprogramming necessary ? */
if (expires_next.tv64 != KTIME_MAX) {
Index: linux/kernel/time/tick-oneshot.c
===================================================================
--- linux.orig/kernel/time/tick-oneshot.c
+++ linux/kernel/time/tick-oneshot.c
@@ -73,8 +73,19 @@ int tick_switch_to_oneshot(void (*handle
struct clock_event_device *dev = td->evtdev;
if (!dev || !(dev->features & CLOCK_EVT_FEAT_ONESHOT) ||
- !tick_device_is_functional(dev))
+ !tick_device_is_functional(dev)) {
+
+ printk("could not switch to one-shot clockevents mode.\n");
+ if (!dev) {
+ printk("because no tick device\n");
+ } else {
+ if (!(dev->features & CLOCK_EVT_FEAT_ONESHOT))
+ printk("because %s does not support one-shot mode.\n", dev->name);
+ if (!tick_device_is_functional(dev))
+ printk("because %s is not functional.\n", dev->name);
+ }
return -EINVAL;
+ }
td->mode = TICKDEV_MODE_ONESHOT;
dev->event_handler = handler;
Index: linux/kernel/time/timer_list.c
===================================================================
--- linux.orig/kernel/time/timer_list.c
+++ linux/kernel/time/timer_list.c
@@ -46,7 +46,7 @@ static void print_name_offset(struct seq
sym_name = kallsyms_lookup(addr, &size, &offset, &modname, namebuf);
if (sym_name)
- SEQ_printf(m, "%s", sym_name);
+ SEQ_printf(m, "%s+%lx/%lx", sym_name, offset, size);
else
SEQ_printf(m, "<%p>", sym);
}
@@ -129,6 +129,23 @@ print_base(struct seq_file *m, struct hr
print_active_timers(m, base, now);
}
+static void print_cpu_base_stack_trace(struct seq_file *m,
+ struct hrtimer_cpu_base *cpu_base)
+{
+#ifdef CONFIG_STACKTRACE
+ struct stack_trace *trace = &cpu_base->exp_trace;
+ int i;
+
+ SEQ_printf(m, " last expires_next stacktrace:\n");
+ for (i = 0; i < trace->nr_entries; i++) {
+ SEQ_printf(m, " ");
+ print_name_offset(m, (void *)trace->entries[i]);
+ SEQ_printf(m, "\n");
+ }
+ SEQ_printf(m, "\n");
+#endif
+}
+
static void print_cpu(struct seq_file *m, int cpu, u64 now)
{
struct hrtimer_cpu_base *cpu_base = &per_cpu(hrtimer_bases, cpu);
@@ -147,6 +164,8 @@ static void print_cpu(struct seq_file *m
#ifdef CONFIG_HIGH_RES_TIMERS
P_ns(expires_next);
+ P_ns(exp_prev);
+ print_cpu_base_stack_trace(m, cpu_base);
P(hres_active);
P(nr_events);
#endif
next prev parent reply other threads:[~2007-03-23 12:05 UTC|newest]
Thread overview: 259+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-16 16:33 Linux 2.6.21-rc4 Linus Torvalds
2007-03-16 17:01 ` Takashi Iwai
2007-03-16 17:44 ` Michal Piotrowski
2007-03-16 18:26 ` Andrew Morton
2007-03-16 18:55 ` Michal Piotrowski
2007-03-16 23:23 ` Jan Engelhardt
2007-03-16 23:31 ` Michal Piotrowski
2007-03-17 8:19 ` Mariusz Kozlowski
2007-03-16 18:54 ` Takashi Iwai
2007-03-16 19:03 ` Michal Piotrowski
2007-03-17 23:46 ` Adrian Bunk
2007-03-18 13:04 ` Michal Piotrowski
2007-03-16 20:34 ` Rafael J. Wysocki
2007-03-16 20:47 ` Thomas Gleixner
2007-03-16 23:25 ` [PATCH] clockevents: Fix suspend/resume to disk hangs Thomas Gleixner
2007-03-17 9:35 ` Milan Broz
2007-03-17 10:07 ` Thomas Meyer
2007-03-17 21:47 ` Rafael J. Wysocki
2007-03-18 17:58 ` Adrian Bunk
2007-03-18 0:42 ` appletouch quirk doesn't run at resume Adrian Bunk
2007-03-18 18:45 ` Jiri Kosina
2007-03-18 19:01 ` Thomas Meyer
2007-03-18 19:22 ` Jiri Kosina
2007-03-27 21:02 ` Thomas Meyer
2007-03-28 12:26 ` Jiri Kosina
2007-03-28 13:24 ` Dmitry Torokhov
2007-03-28 16:51 ` Thomas Meyer
2007-03-28 17:06 ` Jiri Kosina
2007-03-28 17:35 ` Dmitry Torokhov
2007-03-20 9:35 ` [PATCH] clockevents: Fix suspend/resume to disk hangs Marcus Better
2007-03-21 14:04 ` Thomas Gleixner
2007-03-22 10:34 ` Marcus Better
2007-03-23 9:14 ` Marcus Better
2007-03-23 10:05 ` Tino Keitel
2007-03-23 13:47 ` Rafael J. Wysocki
2007-03-23 14:36 ` Marcus Better
2007-03-16 21:11 ` Linux 2.6.21-rc4 Randy Dunlap
2007-03-16 22:39 ` Randy Dunlap
2007-03-16 23:13 ` Chris Friesen
2007-03-16 23:27 ` Jan Engelhardt
2007-03-17 6:43 ` Sam Ravnborg
2007-03-18 12:39 ` Sam Ravnborg
2007-03-19 4:16 ` Randy Dunlap
2007-03-18 18:49 ` [1/6] 2.6.21-rc4: known regressions Adrian Bunk
2007-03-20 10:24 ` Tobias Diedrich
2007-03-20 11:14 ` Adrian Bunk
2007-03-22 3:45 ` Linus Torvalds
2007-03-22 4:18 ` Nick Piggin
2007-03-22 15:21 ` Linus Torvalds
2007-03-23 1:08 ` Mingming Cao
2007-03-23 1:40 ` Linus Torvalds
2007-03-23 2:11 ` Nick Piggin
2007-03-23 7:51 ` Michal Piotrowski
2007-03-23 9:37 ` Nick Piggin
2007-03-23 17:19 ` Adrian Bunk
2007-03-23 12:01 ` Ingo Molnar [this message]
[not found] ` <4607BDD9.1010002@googlemail.com>
[not found] ` <6bffcb0e0703260720i37bbb956o3d20019fe4ac9879@mail.gmail.com>
2007-03-26 14:33 ` [patch] hrtimers debug patch Thomas Gleixner
2007-03-26 14:42 ` Michal Piotrowski
2007-03-26 15:07 ` Michal Piotrowski
2007-03-26 17:02 ` Ingo Molnar
2007-03-26 17:50 ` Michal Piotrowski
2007-04-06 15:27 ` Michal Piotrowski
2007-04-06 16:39 ` Ingo Molnar
2007-03-23 11:42 ` [1/6] 2.6.21-rc4: known regressions Ingo Molnar
2007-03-23 11:56 ` Thomas Gleixner
2007-03-23 15:08 ` [PATCH] i386: add command line option "local_apic_timer_c2_ok" Thomas Gleixner
2007-03-26 12:31 ` Pavel Machek
2007-03-26 13:52 ` Thomas Gleixner
2007-03-27 21:19 ` Len Brown
2007-03-27 21:34 ` Linus Torvalds
2007-03-27 22:16 ` Len Brown
2007-03-28 2:18 ` Len Brown
2007-03-29 14:15 ` Andi Kleen
2007-03-29 14:53 ` Langsdorf, Mark
2007-03-29 16:50 ` Andi Kleen
2007-03-29 20:02 ` Mark Langsdorf
2007-03-29 20:49 ` Andi Kleen
2007-03-29 21:16 ` Linus Torvalds
2007-03-29 21:45 ` Andreas Mohr
2007-03-29 21:56 ` Linus Torvalds
2007-03-29 22:06 ` Andi Kleen
2007-03-29 22:05 ` Andi Kleen
2007-03-30 21:06 ` Grzegorz Chwesewicz
2007-03-31 7:47 ` Grzegorz Chwesewicz
2007-03-29 21:43 ` Grzegorz Chwesewicz
2007-03-29 21:55 ` Grzegorz Chwesewicz
2007-03-29 14:19 ` Andi Kleen
2007-03-23 18:13 ` [1/6] 2.6.21-rc4: known regressions Linus Torvalds
2007-03-23 18:16 ` Linus Torvalds
2007-03-23 18:28 ` Linus Torvalds
2007-03-23 18:43 ` Thomas Gleixner
2007-03-23 12:27 ` Ingo Molnar
2007-03-22 18:24 ` Mariusz Kozłowski
2007-03-18 18:49 ` [2/6] " Adrian Bunk
2007-03-18 19:25 ` Andi Kleen
2007-03-19 16:06 ` Randy Dunlap
2007-03-19 16:15 ` Adrian Bunk
2007-03-19 17:07 ` Randy Dunlap
2007-03-20 15:32 ` Ray Lee
2007-03-18 18:49 ` [3/6] " Adrian Bunk
2007-03-26 1:25 ` Jeff Chua
2007-03-26 4:05 ` Adrian Bunk
2007-03-26 5:37 ` Jeff Chua
2007-03-26 16:26 ` Thomas Gleixner
2007-03-26 17:46 ` Jeff Chua
2007-03-28 7:04 ` Thomas Gleixner
2007-03-28 13:43 ` Maxim
2007-03-28 14:41 ` Ingo Molnar
2007-03-28 15:01 ` Maxim
2007-03-28 16:38 ` Linus Torvalds
2007-03-28 19:38 ` [linux-pm] " David Brownell
2007-03-28 20:19 ` Maxim
2007-03-28 20:59 ` David Brownell
2007-03-28 21:27 ` Maxim
2007-03-29 22:33 ` David Brownell
2007-03-29 23:29 ` Maxim Levitsky
2007-03-30 0:09 ` David Brownell
2007-03-30 0:48 ` Maxim Levitsky
2007-03-28 20:42 ` Linus Torvalds
2007-03-28 21:17 ` David Brownell
2007-03-28 22:26 ` Maxim
2007-03-29 4:41 ` [ PATCH] Add suspend/resume for HPET was: " Maxim
2007-03-29 5:08 ` Linus Torvalds
2007-03-29 5:47 ` Maxim
2007-03-29 13:20 ` Sergei Shtylyov
2007-03-29 13:31 ` Maxim
2007-03-29 13:46 ` [PATCH v2] Add suspend/resume for HPET Maxim Levitsky
2007-03-29 16:53 ` Linus Torvalds
2007-03-29 17:28 ` Maxim Levitsky
2007-03-29 17:51 ` Ingo Molnar
2007-03-29 20:46 ` Andi Kleen
2007-03-29 18:11 ` Jeff Chua
2007-03-31 15:51 ` Thomas Gleixner
2007-03-31 16:01 ` Jeff Chua
2007-03-31 16:09 ` Thomas Gleixner
2007-03-31 16:09 ` Linus Torvalds
2007-03-31 16:33 ` Thomas Gleixner
2007-03-31 16:41 ` Greg KH
2007-03-31 16:53 ` Linus Torvalds
2007-03-31 17:02 ` Ingo Molnar
2007-03-31 18:18 ` [linux-pm] " David Brownell
2007-03-31 19:32 ` David Brownell
2007-04-01 3:13 ` Jeff Chua
2007-04-01 4:13 ` David Brownell
2007-03-31 17:08 ` Greg KH
2007-03-31 17:55 ` [linux-pm] " David Brownell
2007-03-31 16:56 ` Maxim Levitsky
2007-03-31 17:09 ` Linus Torvalds
2007-03-31 17:17 ` Ingo Molnar
2007-03-31 17:58 ` Daniel Walker
2007-03-29 16:35 ` [ PATCH] Add suspend/resume for HPET was: Re: [3/6] 2.6.21-rc4: known regressions Linus Torvalds
2007-03-29 16:51 ` Maxim Levitsky
2007-03-29 17:22 ` Linus Torvalds
2007-03-29 17:47 ` [patch, v2] add suspend/resume for HPET Ingo Molnar
2007-03-28 18:04 ` [3/6] 2.6.21-rc4: known regressions Michael S. Tsirkin
2007-03-28 18:32 ` Ingo Molnar
2007-03-28 18:35 ` Randy Dunlap
2007-03-29 14:24 ` Jeff Chua
2007-03-18 18:49 ` [4/6] " Adrian Bunk
2007-03-18 18:49 ` [5/6] " Adrian Bunk
2007-03-18 19:07 ` Maxim
2007-03-18 19:22 ` Adrian Bunk
2007-03-18 19:59 ` Maxim
2007-03-18 20:03 ` Maxim
2007-03-18 18:49 ` [6/6] " Adrian Bunk
2007-03-20 2:38 ` David Miller
2007-03-24 19:50 ` David Miller
2007-03-19 20:39 ` 2.6.21-rc4: known regressions with patches available Adrian Bunk
2007-03-20 11:02 ` [Alsa-devel] " Takashi Iwai
2007-03-23 18:48 ` [1/5] 2.6.21-rc4: known regressions (v2) Adrian Bunk
2007-03-25 4:45 ` David Miller
2007-03-25 5:08 ` Paul Collins
2007-03-25 12:22 ` Adrian Bunk
2007-03-23 18:48 ` [2/5] " Adrian Bunk
2007-03-23 21:08 ` Thomas Gleixner
2007-03-24 0:14 ` Ray Lee
2007-03-24 6:40 ` Thomas Gleixner
2007-03-24 18:17 ` Ray Lee
2007-03-24 19:11 ` [PATCH] x86_64: avoid sending LOCAL_TIMER_VECTOR IPI to itself Ingo Molnar
2007-03-25 19:24 ` Ray Lee
2007-03-26 10:01 ` [2/5] 2.6.21-rc4: known regressions (v2) Tejun Heo
2007-03-23 18:50 ` [3/5] " Adrian Bunk
2007-03-23 19:07 ` Maxim
2007-03-23 20:53 ` Rafael J. Wysocki
2007-03-24 17:04 ` Thomas Meyer
2007-03-24 18:02 ` Eric W. Biederman
2007-03-24 18:20 ` Thomas Meyer
2007-03-24 18:47 ` Eric W. Biederman
2007-03-24 20:34 ` Thomas Meyer
2007-03-25 3:39 ` Eric W. Biederman
2007-03-25 11:41 ` Thomas Meyer
2007-03-25 12:03 ` Eric W. Biederman
2007-03-25 12:28 ` Rafael J. Wysocki
2007-03-25 12:56 ` Eric W. Biederman
2007-03-25 19:14 ` Rafael J. Wysocki
2007-03-25 20:37 ` Eric W. Biederman
2007-03-26 21:03 ` Rafael J. Wysocki
2007-03-25 14:17 ` Thomas Meyer
2007-03-25 18:56 ` Rafael J. Wysocki
2007-03-25 13:54 ` Thomas Meyer
2007-03-25 14:48 ` Adrian Bunk
2007-03-25 17:25 ` Thomas Meyer
2007-03-25 19:06 ` Rafael J. Wysocki
2007-03-25 19:31 ` Rafael J. Wysocki
2007-03-26 20:01 ` Luck, Tony
2007-03-27 3:29 ` Eric W. Biederman
2007-04-02 15:38 ` Bjorn Helgaas
2007-04-02 16:38 ` Bjorn Helgaas
2007-04-02 19:50 ` Eric W. Biederman
2007-03-25 21:34 ` Frédéric Riss
2007-03-26 6:45 ` Frédéric RISS
2007-03-26 9:14 ` Thomas Gleixner
2007-03-26 10:36 ` Frederic Riss
2007-03-26 18:53 ` Frédéric Riss
2007-03-26 19:02 ` Adrian Bunk
2007-03-26 19:39 ` Frederic Riss
2007-03-26 19:46 ` Adrian Bunk
2007-03-26 10:00 ` Marcus Better
2007-03-26 12:35 ` Pavel Machek
2007-03-26 14:11 ` Marcus Better
2007-03-26 14:34 ` Adrian Bunk
2007-03-26 17:42 ` Marcus Better
2007-03-26 18:48 ` Adrian Bunk
2007-03-27 9:42 ` Marcus Better
2007-03-23 18:50 ` [4/5] " Adrian Bunk
2007-03-23 19:15 ` Thomas Gleixner
2007-03-23 19:15 ` Adrian Bunk
2007-03-23 19:21 ` Thomas Gleixner
2007-03-23 22:23 ` Chuck Ebbert
2007-03-23 22:43 ` Thomas Gleixner
2007-03-23 23:35 ` Thomas Gleixner
2007-03-25 12:42 ` [PATCH] clocksource: Fix thinko in watchdog selection Thomas Gleixner
2007-03-23 23:00 ` [4/5] 2.6.21-rc4: known regressions (v2) Adrian Bunk
2007-03-23 23:05 ` Chuck Ebbert
2007-03-23 19:22 ` Thomas Gleixner
2007-03-24 13:47 ` Thomas Gleixner
2007-03-25 12:31 ` [PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt Thomas Gleixner
2007-03-23 19:49 ` [4/5] 2.6.21-rc4: known regressions (v2) Thomas Gleixner
[not found] ` <20070325071023.GL17532@mellanox.co.il>
2007-03-25 7:37 ` Thomas Gleixner
2007-03-25 8:57 ` Michael S. Tsirkin
2007-03-25 10:17 ` Thomas Gleixner
2007-03-25 10:15 ` Michael S. Tsirkin
2007-03-25 10:27 ` Thomas Gleixner
2007-03-25 10:25 ` Michael S. Tsirkin
2007-03-25 10:38 ` Thomas Gleixner
2007-03-25 11:16 ` Ingo Molnar
2007-03-25 12:09 ` Thomas Gleixner
2007-03-26 14:19 ` Michael S. Tsirkin
2007-03-23 20:00 ` Thomas Gleixner
2007-03-23 20:08 ` Thomas Gleixner
2007-03-24 13:59 ` Michal Piotrowski
2007-03-24 15:14 ` Thomas Gleixner
2007-03-24 16:13 ` Michal Piotrowski
2007-03-23 21:43 ` john stultz
2007-03-23 21:54 ` Linus Torvalds
2007-03-24 0:44 ` john stultz
2007-03-23 18:50 ` [5/5] " Adrian Bunk
2007-03-24 11:25 ` 2.6.21-rc4: known regressions with patches (v2) Adrian Bunk
2007-03-26 12:37 ` Bob Tracy
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=20070323120148.GA27505@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=bunk@stusta.de \
--cc=cmm@us.ibm.com \
--cc=ebiederm@xmission.com \
--cc=g3vbv@blueyonder.co.uk \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=m.kozlowski@tuxland.pl \
--cc=michal.k.k.piotrowski@gmail.com \
--cc=nickpiggin@yahoo.com.au \
--cc=npiggin@suse.de \
--cc=oliver.pntr@gmail.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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
all inboxes | Powered by JetHome®