Subject: Re: "frequency error ... exceeeds tolerance"
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Tobias Nygren <tnn@NetBSD.org>
List: port-alpha
Date: 08/21/2007 17:55:32
On Tue, 21 Aug 2007 11:27:17 -0400 (EDT)
der Mouse <mouse@Rodents.Montreal.QC.CA> wrote:

> >> Aug 21 01:46:01 Omega ntpd[348]: frequency error -508 PPM exceeds tolerance 500 PPM
> 
> [tnn@]
> > What verson of NetBSD?
> 
> Doh!  My apologies.  This is 3.1.
> 
> > The fix on netbsd-3 is to define the CLKF_BASEPRI macro to 0.
> 
> This appears to be in sys/alpha/include/cpu.h, and, looking at
> kern/kern_clock.c, it doesn't look as though it makes sense to casually
> define it to zero.  How does that fix this problem?

If I understand things correctly, it avoids short circuiting softclock
handling from the hardclock handler. The palcode that invokes hardclock
doesn't seem to be reentrant, and this makes the system lose hardclock
ticks.

i386 does the same thing (i386/include/cpu.h from netbsd-3):

#define	CLKF_BASEPRI(frame)	(0)

-Tobias