svn commit: r210846 - in head/sys/mips: include mips

Alan Cox alc at cs.rice.edu
Fri Aug 6 05:41:38 UTC 2010


On 08/05/2010 09:25, Jayachandran C. wrote:
> On Thu, Aug 5, 2010 at 4:26 PM, Jayachandran C.
> <c.jayachandran at gmail.com>  wrote:
>    
>> On Thu, Aug 5, 2010 at 11:43 AM, Alan Cox<alc at cs.rice.edu>  wrote:
>>      
>>> Just an observation ...
>>>
>>> Jayachandran C. wrote:
>>>        
>>>> Author: jchandra
>>>> Date: Wed Aug  4 14:12:09 2010
>>>> New Revision: 210846
>>>> URL: http://svn.freebsd.org/changeset/base/210846
>>>>
>>>> Log:
>>>>   Add 3 level page tables for MIPS in n64.
>>>>     - 32 bit compilation will still use old 2 level page tables
>>>>   - re-arrange pmap code so that adding another level is easier
>>>>   - pmap code for 3 level page tables for n64
>>>>   - update TLB handler to traverse 3 levels in n64
>>>>     Reviewed by:        jmallett
>>>>          
>>> MIPS doesn't really need to use atomic_cmpset_int() in situations like this
>>> because the software dirty bit emulation in trap.c acquires the pmap lock.
>>>   Atomics like this appear to be a carryover from i386 where the
>>> hardware-managed TLB might concurrently set the modified bit.
>>>        
>> Then I guess we should be able to use *pte directly, without pbits,
>> obits and the retry loop.
>> Will try this change...
>>      
> Can you have a look at the attached patch and see if it is okay?  This
> has the above changes, and I have attempted to fix the other issue you
> had reported on wired mapping count too.
>
>    

The patch looks good.

> There are a few calls for loadandclear() on pte too, with pmap lock
> held, can this be avoided too?
>
>    

I haven't looked at them, but almost certainly yes.

Alan



More information about the freebsd-mips mailing list