Re: [PATCH 3/6] 8xx: invalidate non present TLBs
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2009-10-09 00:58:25
On Thu, 2009-10-08 at 17:36 -0700, Dan Malek wrote:
On Oct 8, 2009, at 3:23 PM, Benjamin Herrenschmidt wrote:quoted
<< • Reference and change bit updates—The MPC850 does not generate an exception for an R (reference) bit update. In fact, there is no entry for an R bit in the TLB. The change bit (C) is bit 23 in the level-two descriptor, described in Table 8-4. Software updates C (changed) bits, but hardware treats the C bit (negated) as a write-protect attribute. Therefore, attempting to write to a page marked unmodified invalidates that entry and causes an implementation-specific DTLB error exception. ^^^^^^^^^^^^^^^^^^^^^^ If change bits are not needed, set the C bit to one by default in the PTEs.How interesting.... I've looked at many 8xx docs and they all have the same text (probably cut/paste :-)) I'd place some debug code in the C functions to print out a few of the TLB Entry for various errors to see if this really happens, and for other errors, too. I guess I never stumbled into this because I always thought I had to do everything from software, so just made sure I did.
I'm not sure it's worth bothering :-) I'm happy to continue assuming we need to tlbie and always make sure we do so. Cheers, Ben.