Re: More details on the telnet with CONFIG_PIN_TLB problems
From: David Gibson <hidden>
Date: 2002-06-05 00:02:39
On Tue, Jun 04, 2002 at 09:57:20AM -0700, Matt Porter wrote:
On Tue, Jun 04, 2002 at 10:54:51PM +1000, Paul Mackerras wrote:quoted
Looks like Ben and I have found the problem; Ben added an isync and a sync to set_context() after setting the PID register and that seems to have fixed it. It makes sense, as isync invalidates the shadow DTLB and ITLB. (The sync may be unnecessary.)Makes sense, I was telling some folks at work that it had to be a 40x specific code problem. The 440 has had an isync in set_context() and doesn't see this problem (and by default uses pinned TLBs).
Heh, well not only uses them by default, but must use them since translation is always on.
Changing the PID is a context changing event that requires a context synchronization. The sync shouldn't be necessary per the UM and seems to be true in practice from my 440 testing.
-- David Gibson | For every complex problem there is a david@gibson.dropbear.id.au | solution which is simple, neat and | wrong. -- H.L. Mencken http://www.ozlabs.org/people/dgibson ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/