cvs commit: src/sys/alpha/alpha machdep.c src/sys/alpha/include
cpuconf.h src/sys/alpha/pci lca.c lcareg.h
John Baldwin
jhb at FreeBSD.org
Tue Feb 1 10:13:36 PST 2005
On Tuesday 01 February 2005 10:28 am, Bernd Walter wrote:
> On Tue, Feb 01, 2005 at 06:49:33AM -0500, John Baldwin wrote:
> > On Monday 31 January 2005 06:07 pm, Bernd Walter wrote:
> > > ticso 2005-01-31 23:07:42 UTC
> > >
> > > FreeBSD src repository
> > >
> > > Modified files:
> > > sys/alpha/alpha machdep.c
> > > sys/alpha/include cpuconf.h
> > > sys/alpha/pci lca.c lcareg.h
> > > Log:
> > > add cpu_idle support for 21066A based lca systems
> > >
> > > Revision Changes Path
> > > 1.229 +9 -1 src/sys/alpha/alpha/machdep.c
> > > 1.14 +1 -0 src/sys/alpha/include/cpuconf.h
> > > 1.21 +29 -0 src/sys/alpha/pci/lca.c
> > > 1.4 +2 -0 src/sys/alpha/pci/lcareg.h
> >
> > What exactly are the writes to this register doing btw? Also, is there
> > any reason we shouldn't just be using the PAL call that waits for the
> > next interrupt instead?
>
> It reduces clock speed until the next interrupt on 21066A CPUs
> and is a nop on plain 21066 CPUs.
Hmm.
> Would the PAL call work for SMP systems?
Yes, though it says that the CPU counter can slow down while it is in the
waiting state, so it seems that PAL is free to implement something just like
what you did.
> AFAIK no alpha CPU has native halt support so there is not much magic
> that PAL can do for us.
> What I've found out about this case is that alpha CPUs automaticaly
> reduce power on unused parts and running just a tight loop, that works
> without memory access, for a few microsecsonds might be more efficient
> do do it ourself than calling PAL, which must be doing something
> similar.
> At least I think it is possible to reduce idle power consumption from
> the current situation either way.
Yes, right now we buzz loop with a memory access on each iteration, we could
add a for loop that just decrements a counter to zero to the idle loop if
desired. With preemption turned on we could have the idle process not check
the run queues at all and just sit in a buzz loop.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the cvs-src
mailing list