OK. I've let the machine run overnight (and it didn't ever finish).
The problem is that it is stuck in the following kernel code:
printk("Calibrating delay loop.. ");
while (loops_per_sec <<= 1) {
/* wait for "start of" clock tick */
ticks = jiffies;
while (ticks == jiffies)
printk("Jiffies = %d\r", jiffies ) /* nothing */;
/* Go .. */
ticks = jiffies;
__delay(loops_per_sec);
ticks = jiffies - ticks;
if (ticks)
break;
}
Will just print Jiffies = 0 forever :-(
I'm at a loss to understand why this is happening to me. The
declaration looks correct to me:
include/linux/sched.h: extern unsigned long volatile jiffies;
so it likely is the case that I'm not taking interrupts that cause the
jiffies count to be incremented.
Any ideas on what to look for? I've gone ahead and added a sti() just
before the while loop, so I know interrupts are enabled.
I've not (yet) upgraded to 1.5.59, but a quick peek at the patches
doesn't reveal anything that looked like it would help the situation.
There must be something different between the 1.2.9ish kernel that I
had working before and this one....
Anyway, I'd love to hear any ideas that people have...
Warner
|