On Tue, Jun 04, 2002 at 10:54:51PM +1000, Paul Mackerras wrote: > > 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). 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. Regards, -- Matt Porter porter at cox.net This is Linux Country. On a quiet night, you can hear Windows reboot. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
