These are pretty minor changes. COLOR is never cleared after it is set. So we can check for it before acquiring and setting. I made a mistake in my ref patch that caused us to use a write ref for the final vnode ref which is not necessary and actually was a regression. The vm_map_pmap_enter() change realistically isn't likely to improve perf but it looks more tidy this way I think.
|2372 ↗||(On Diff #64929)|
I wonder if it makes sense to just return there, regardless of the locking changes. If the object was device/sg and now it is no longer, then it probably does not make sense do any page table prefilling at all.
|2542 ↗||(On Diff #64929)|
I suspect that this would be more important e.g. for shared read-only mapping (weird case actually).
|531 ↗||(On Diff #64929)|
I think that this runlock can happen before umtx_shm_object_terminated().