tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: TLB tiredown by ASID bump



On Jan 5, 2011, at 9:36 PM, Toru Nishimura wrote:

> Matt Thomas made a comment;
> 
>> The ASID generational stuff has a downside in that valid entries will be 
>> thrown away.  For mips (and booke) I use
>> a different algorithm which eliminates the overhead of
>> discarding all the TLB entries when you run out of ASIDs.
> 
> It's a good move to pursue efficent ASID management
> schemes since it's the key area for runtime VM/TLB activity.
> 
> Matt points loosing valid entries is a problem when ASID
> generation is going to get bumped.  I think, however, it'd be
> forgiven that tbia() operation, to discard all entries but global
> or locked, discards "live entries" since TLB size is still small
> enough.  Some CPU architectures do it  with a single
> special instruction or others do at-most 64 time loop to discard.
> TLB is a cache for VA->PA translation and the management
> scheme always provokes "efficiency v.s. correctness"
> arguments.  It's a matter of implementation tradeoff, I believe.

More systems are getting larger numbers of TLB entries.  The mpc85xx has
512 4KB fixed-size and 16 variable-sized TLB entries.  One newer MIPS64 
processor has 2048 4KB fixed-size and 128 variable sized TLB entries and
includes a page table walker.  Both of the fixed-size TLBs are set/way 
organized unlike the variable TLBs which are fully associative.

Invalidate all becomes expensive when your TLBs get very large as does
discarding live entries.  


Home | Main Index | Thread Index | Old Index