this largely sorts out contention when using poudriere
commit 2246193ba69caf2211f4e7ee26b7d33bb9b415b7 Author: Mateusz Guzik <mjg@FreeBSD.org> Date: Wed Oct 1 10:06:39 2025 +0000 nullfs: avoid the interlock in null_lock with smr This largely eliminates contention on the vnode interlock. Note this still does not scale, to be fixed(tm). commit 3af18ee2ed6ef0584235ae42a905fc8e78119bff Author: Mateusz Guzik <mjg@FreeBSD.org> Date: Tue Sep 30 15:16:30 2025 +0000 nullfs: smr-protected hash lookup Vast majority of real-world contention on the hash comes from lookups, notably seen during highly parallel poudriere runs. Lockless lookup largely alleviates the problem. commit a222eb981209bb939c7c7f085bdb2f476b2b6120 Author: Mateusz Guzik <mjg@FreeBSD.org> Date: Wed Oct 1 10:28:48 2025 +0000 nullfs: assert the vnode is not doomed in null_hashget_locked While here some style touch ups and fixing a stale name in an assert. commit 975fdfbf725ca41e878f8be31bb140dcdcae352f Author: Mateusz Guzik <mjg@FreeBSD.org> Date: Wed Oct 1 11:09:50 2025 +0000 nullfs: remove the vhold/vdrop cycle around unlock Both lower vnode and null data are safe while the lock is held, at the same time neither is touched after unlock. While here remove stale comment about interlock handling. It is no longer legal to pass to unlock.