Messages in this thread | | | Date | Thu, 3 Feb 2005 11:56:47 +0100 | From | Pavel Machek <> | Subject | Re: [PATCH] Dynamic tick, version 050127-1 |
| |
Hi!
> > > > > > I used your config advices from second mail, still it does not work as > > > > > > expected: system gets "too sleepy". Like it takes a nap during boot > > > > > > after "dyn-tick: Maximum ticks to skip limited to 1339", and key is > > > > > > needed to make it continue boot. Then cursor stops blinking and > > > > > > machine is hung at random intervals during use, key is enough to awake > > > > > > it. > > > > > > > > > > Hmmm, that sounds like the local APIC does not wake up the PIT > > > > > interrupt properly after sleep. Hitting the keys causes the timer > > > > > interrupt to get called, and that explains why it keeps running. But > > > > > the timer ticks are not happening as they should for some reason. > > > > > This should not happen (tm)... > > > > > > > > :-). Any ideas how to debug it? Previous version of patch seemed to work better... > > > > > > I don't think it's HPET timer, or CONFIG_SMP. It also looks like your > > > local APIC timer is working. > > > > I turned off CONFIG_PREEMPT, but nothing changed :-(. > > What about reprogramming the timers in time.c after the sleep? Do > you to dyn_tick->skip = 1; part in dyn_tick_timer_interrupt?
Yes, when I enabled debugging, dbg_dyn_tick_irq() was reached and produced lot of noise to syslog. After I done nothing for a while, machine would just sit there and wait, not doing anything. When it was hung, dbg_dyn_timer_tick was not reached.
> It could also be that the reprogamming of PIT timer does not work on > your machine. I chopped off the udelays there... Can you try > something like this:
I added the udelays, but behaviour did not change.
> --- a/arch/i386/kernel/time.c 2005-01-27 12:58:04 -08:00 > +++ b/arch/i368/kernel/time.c 2005-02-02 19:01:31 -08:00 > @@ -479,8 +480,11 @@ > > spin_lock_irqsave(&i8253_lock, flags); > outb_p(0x34, PIT_MODE); /* binary, mode 2, LSB/MSB, ch 0 */ > + udelay(10); > outb_p(skip & 0xff, PIT_CH0); /* LSB */ > + udelay(10); > outb(skip >> 8, PIT_CH0); /* MSB */ > + udelay(10); > spin_unlock_irqrestore(&i8253_lock, flags); > } > Pavel -- People were complaining that M$ turns users into beta-testers... ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |