mirror of
https://github.com/dingusdev/dingusppc.git
synced 2026-10-25 01:02:27 +00:00
XNU frequently changes BAT and PAT mappings for physical-memory access. Each resulting context synchronization can walk tens of thousands of TLB entries, which consumes a lot of time. Record the instruction and data TLB slots populated by BAT or PAT and invalidate only those slots. Pending invalidations are coalesced by source, and BAT updates cover PAT-derived entries because a new BAT can shadow a page mapping. Saves another 0.7 secondss in the time it takes to boot Mac OS X 10.3 to the WindowServer (compared to the generational PAT invalidation).