Subject: Re: kern/10699
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Erik E. Fair <fair@netbsd.org>
List: netbsd-bugs
Date: 06/23/2005 01:02:02
The following reply was made to PR kern/10699; it has been noted by GNATS.
From: "Erik E. Fair" <fair@netbsd.org>
To: gnats-bugs@netbsd.org
Cc: joff@netbsd.org
Subject: Re: kern/10699
Date: Wed, 22 Jun 2005 18:01:16 -0700
I think the analysis of this problem is wrong. I don't know how old NetBSD's
CPU cycle counter interface is, but in -current and NetBSD 2.0, the TSC is
used for microtime instead of the i8254 if it is present, and if CPU_I586 or
CPU_I586 are defined in the kernel config.
There is a comment to the effect that the TSC is broken in some Cyrix CPUs
in sys/arch/i386/include/cpu_counter.h
These CPUs need to be identified and code added to
sys/arch/i386/i386/identcpu.c to turn off TSC for them, similar to the Winchip
C6.
In the mean time, this PR can be worked around by recompiling your kernel
with
options NO_TSC_MICROTIME
I have been running a system which exhibited the bug you described, and this
fixed it; I have been testing with your program for about 10 minutes so far
(previously, the bad behavior manifested immediately).
Erik <fair@netbsd.org>