Improved multiprocessor usage on amd64
cpghost at cordula.ws
Tue Sep 16 13:40:08 UTC 2008
On Tue, Sep 16, 2008 at 11:06:07AM +0200, Oliver Fromme wrote:
> cpghost <cpghost at cordula.ws> wrote:
> > On Sun, Sep 14, 2008 at 08:38:00PM -0500, Stephen Montgomery-Smith wrote:
> > > I have a dual core amd64 on which I run a processor intensive numerical
> > > program. I had been frustrated because it seemed to run 3 or 4 times
> > > faster under Linux. But with a recent upgrade of FreeBSD-CURRENT, it
> > > now goes at about the same speed as Linux.
> > >
> > > The program takes about an hour. For the first minute, the program runs
> > > rather slowly, but then it is as if the operating system finds its way,
> > > and suddenly it speeds up. "top -H" suggests that for the first minute
> > > that one thread is going really slowly, and is perhaps being starved or
> > > something.
> > >
> > > My question is - why is this happening, and is this something I should
> > > expect? Are there certain switches or sysctls I can set to make it go
> > > fast from the get go?
> > It looks like you're running powerd (see in /etc/rc.conf). It can take up
> > to a minute for the load average of the machine to exceed a certain
> > threshold where powerd would finally bump the cpu(s) to full speed.
> No. powerd(8) does not look at the load average at all,
> it looks at the CPU usage. It detects within 0.5 seconds
> (the default polling interval) when the CPU usage went up
> and starts adjusting the performance. It certainly doesn't
> take a minute.
Oh, yes, you're right: I stand corrected. powerd looks at the
kern.cp_time sysctl and not at the load average.
> Best regards
Cordula's Web. http://www.cordula.ws/
More information about the freebsd-current