Alex deVries writes:
>
> On Fri, 1 May 1998, William J. Earl wrote:
> > Is this an R4000? If so, it might be the count/compare erratum, if
> > the linux kernel does not have the workaround for it yet. (I haven't
> > checked the linux sources.)
>
> This is an R4600. How would I check if there were that patch applied?
The problem I have in mind cannot occur on an R4600. The modification
is to the routine which fetches $count. On the R4000, if you are depending
on the $compare match interrupt, you have to check for the possibility
that $count equalled $compare when you fetched it, since that causes
the interrupt to not happen. In that case, you have to fake the
interrupt in some way, or have to wait for $count to wrap (about 84 seconds
at 100 MHZ). IRIX just checks to see if the fetched copy of $count
is close to a shadow copy $compare. If it is, and if the clock interrupt
request bit is off (this being done with interrupts disabled), we
set $compare a little head of the current $count and spin until the
interrupt bit goes on (with some care to avoid getting stuck if we
lose the race in terms of setting $compare ahead of $count). Again,
all this only applies to the R4000, not to the R4400, R4600, or R5000.
|