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