Re: [PATCHSET] Announce: High-res timers, tickless/dyntick and dynamic HZ -V4

Con Kolivas
2006-06-24T01:16:30Z

On Saturday 24 June 2006 11:09, Con Kolivas wrote:
> On Saturday 24 June 2006 10:51, Robert Hancock wrote:
> > Thomas Gleixner wrote:
> > > On Thu, 2006-06-22 at 21:31 -0600, Robert Hancock wrote:
> > >> Thomas Gleixner wrote:
> > >>> An updated patchset is available from:
> > >>>
> > >>> http://www.tglx.de/projects/hrtimers/2.6.17/patch-2.6.17-hrt-dyntick4
> > >>>.p atch
> > >>
> > >> On my Compaq Presario X1050 laptop running Fedora Core 5 I get:
> > >>
> > >> Disabling NO_HZ and high resolution timers due to timer broadcasting
> > >>
> > >> Not sure exactly what this is indicating or what's triggered this, but
> > >> I'm assuming the patch isn't doing much on this machine?
> > >
> > > The system is configured for SMP, but this is an UP machine and the
> > > APIC is disabled in the BIOS. Linux uses then the PIT and an IPI
> > > mechanism to broadcast timer events. We need to do the event
> > > reprogramming per CPU, so we switch off in that situation.
> > >
> > > Solution: Either use an UP kernel, or enable Local APIC in the BIOS (is
> > > not possible in most BIOSes), or add "lapic" to the kernel command
> > > line.
> > >
> > > Also for an UP kernel adding "lapic" to the commandline is good, as the
> > > APIC is faster accessible than the PIT.
> >
> > Tried that, still no dice:
> >
> > Kernel command line: ro root=/dev/VolGroup00/LogVol00 lapic
> > Local APIC disabled by BIOS -- reenabling.
> > Found and enabled local APIC!
> >
> > ...
> >
> > Disabling NO_HZ and high resolution timers due to timer broadcasting
> >
> > This isn't a viable solution for all machines anyway - some laptops
> > disable the local APIC and the BIOS expects it to remain that way, and
> > blows up if it gets turned on.
>
> One thing I did discover with my dynticks was that APIC on UP i386 was nigh
> on broken for the most part. Virtually all BIOSs disable it and even if you
> force enable it you may have to play with enable_timer_pin to get it to
> work (sometimes 1, sometimes 0) and there was no pattern to when it would
> be required since the BIOS manufacturer cared not. This is why for UP I
> disabled APIC when dynticks was enabled, and would test for one online cpu
> on SMP and do the same. This obviously isn't a solution when cpu hotplug is
> enabled and only one cpu is online.

That was enable_timer_pin_1 and disable_timer_pin_1 sorry.

--
-ck