Re: Realtime Preemption, 2.6.12, Beginners Guide?

From: Ingo Molnar
Date: Wed Jul 06 2005 - 18:46:22 EST



* Ingo Molnar <mingo@xxxxxxx> wrote:

> does the patch below help? We initialized the timestamps to 0, but
> with jiffies starting out negative, that means a ~5 minutes gap until
> we first reach a value of 0. That would explain the messages. The only
> thing it doesnt explain, why did this only trigger on your box?

here's an updated patch - it will print out all timestamps too. (you'll
have to revert all previous softlockup patches first, via patch -R.)

Ingo

Index: linux/kernel/softlockup.c
===================================================================
--- linux.orig/kernel/softlockup.c
+++ linux/kernel/softlockup.c
@@ -16,9 +16,9 @@

static DEFINE_RAW_SPINLOCK(print_lock);

-static DEFINE_PER_CPU(unsigned long, timeout) = 0;
-static DEFINE_PER_CPU(unsigned long, timestamp) = 0;
-static DEFINE_PER_CPU(unsigned long, print_timestamp) = 0;
+static DEFINE_PER_CPU(unsigned long, timeout) = INITIAL_JIFFIES;
+static DEFINE_PER_CPU(unsigned long, timestamp) = INITIAL_JIFFIES;
+static DEFINE_PER_CPU(unsigned long, print_timestamp) = INITIAL_JIFFIES;
static DEFINE_PER_CPU(struct task_struct *, watchdog_task);

static int did_panic = 0;
@@ -65,8 +65,8 @@ void softlockup_tick(void)
per_cpu(print_timestamp, this_cpu) = timestamp;

spin_lock(&print_lock);
- printk(KERN_ERR "BUG: soft lockup detected on CPU#%d!\n",
- this_cpu);
+ printk(KERN_ERR "BUG: soft lockup detected on CPU#%d! %ld-%ld(%ld)\n",
+ this_cpu, jiffies, timestamp, timeout);
dump_stack();
#if defined(__i386__) && defined(CONFIG_SMP)
nmi_show_all_regs();
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/