cvs commit: src/sys/kern kern_spinlock.c src/sys/platform/vkernel/i386 cpu_regs.c src/sys/sys systm.h src/sys/platform/pc32/i386 machdep.c
Michal Belczyk
belczyk at bsd.krakow.pl
Mon Jul 2 11:52:36 PDT 2007
On Mon, Jul 02, 2007 at 07:06:21PM +0200, Simon 'corecode' Schubert wrote:
> Matthew Dillon wrote:
> > Log:
> > Implement an architecture call for contended spinlocks so the vkernel can
> > insert a usleep().
>
> Very nice. I've been meaning to do this. We could use monitor/mwait on core2duo CPUs for power reduction for example (also when waiting for the mplock/scheduler changes in the idle loop).
On my core2duo laptop replacing cpu_idle_hook() with one using mwait to enter
enhanced halt states resulted in lowering the maximal cpu temperature from
above 60 to below 55 degrees and made the cpu fan run less often. I even made
some graphs representing the cpu temperature in time[1] on an idle system.
However, I believe that lowering cpu voltage and frequency via EST and estd
should give better results. Some time ago I wrote a kernel module
implementing EST for those cpus[2] in an ACPI-independent way. Nice thing is
that one can set voltage and frequency idependently of each other, at least on
my cpu ;-) And it was working with estd. Now it's probably non-compilable
after some SYSINIT-related macros had been renamed.
Note that it's based only on intel docs and my own experiments so there might
be bugs in it.
[1] http://bsd.krakow.pl/df/CxE/
[2] http://bsd.krakow.pl/df/est_core.tgz
--
Michal Belczyk
More information about the Commits
mailing list