HomeFreeBSD

pmap_invalidate_range: For very large ranges, flush the whole TLB

Description

pmap_invalidate_range: For very large ranges, flush the whole TLB

Typical TLBs have 40-512 entries available. At some point, iterating
every single page in a requested invalidation range and issuing invlpg
on it is more expensive than flushing the TLB and allowing it to reload
on demand.

Broadwell CPUs have 1536 L2 TLB entries, so I've picked the arbitrary
number 4096 entries as a hueristic at which point we flush TLB rather
than invalidating every single potential page.

Reviewed by: alc
Feedback from: jhb, kib
MFC notes: Depends on r291688
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D4280

Details

Provenance
cemAuthored on
Reviewer
alc
Differential Revision
D4280: pmap_invalidate_range: For very large ranges, flush the whole TLB
Parents
rS291905: MFC r291446:
Branches
Unknown
Tags
Unknown