cpu-timer rate

kama kama at pvp.se
Mon Dec 5 00:41:11 PST 2005



On Sat, 3 Dec 2005, Peter Jeremy wrote:

> On Fri, 2005-Dec-02 14:32:58 +0100, kama wrote:
> >I am just wondering why the cpu-timer is doubled from what I set in
> >kern.hz?
> >
> ># vmstat -i
> >interrupt                          total       rate
> ...
> >cpu0: timer                     14314031       1999
> >Total                           14750922       2060
> >
> ># sysctl -a | grep hz
> >kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }
>
> There's only a single timer but FreeBSD needs two independent clocks.
> The 'tick' clock is used to update the TOD counters and decide when to
> reschedule processes.  The 'stathz' is used to collect statistics on
> CPU utilisation ('profhz' is used instead if any process is using
> profiling).  Since processes tend to synchronize to 'tick' the
> statistics clock needs to be independent to ensure that a CPU utilisation
> is correctly allocated.
>
> In order to simulate two clocks, FreeBSD runs the hardware clock at a
> high rate and uses two different divisors for the soft clocks (/2 for
> tick, /3 for profhz and /15 for stathz).  Larger divisors are better
> for utilisation statistics but increase clock interrupt overheads.

Ehm, Im sorry, but did that even answer my question?

I appreciate that you took time to answer about the different clocks. But
that does not answer why vmstat -i shows a rate of 2000 when I have set
the hz to 1000.

/Bjorn


More information about the freebsd-stable mailing list