linux-mips
[Top] [All Lists]

RE: Does Linux invalidate TLB entries?

To: Matthew Dharm <mdharm@momenco.com>
Subject: RE: Does Linux invalidate TLB entries?
From: Justin Carlson <justincarlson@cmu.edu>
Date: 30 Jan 2002 16:49:18 -0500
Cc: linux-mips@oss.sgi.com
In-reply-to: <NEBBLJGMNKKEEMNLHGAIOECKCFAA.mdharm@momenco.com>
References: <NEBBLJGMNKKEEMNLHGAIOECKCFAA.mdharm@momenco.com>
Sender: owner-linux-mips@oss.sgi.com
On Wed, 2002-01-30 at 16:23, Matthew Dharm wrote:
> The errata, unfortunately, doen't say.
> 
> It does say that the suggested workaround is to use the TLBP operation
> to look for a matching but invalid entry, and then branch to the
> invalid handler if necessary.
> 
> It also says that the CP0 Cause, EPC, BadVaddr and ENHI will wold the
> values for the dstream TLB exception.  In other words, it's all set up
> for the invalid exception, but it jumps to the refill exception
> instead.

Looking at the linux side a bit closer, I don't think this can ever hit
us.  All the MIPS variants (that I'm familiar with) only use invalid TLB
entries to flush the TLB, and in that case they set up the entries to be
in KSEG0.  

The only way to trigger an invalid TLB op, then, is to try to do a load
from a proper range in KSEG0 after a flush; in that case the right thing
for the processor to do not a TLB invalid exception anyways, as there is
no TLB-based translation required.  We'd still segfault and die as a
user process, of course, since you can't touch KSEG0, but that's good
and proper.

Anyone else see another case that would be a problem for us?

-Justin

Attachment: pgpGU0tC4wvsg.pgp
Description: PGP signature

<Prev in Thread] Current Thread [Next in Thread>