Page MenuHomeFreeBSD

nullfs: don't pre lock exclusive in nullfs_root
ClosedPublic

Authored by mjg on Mar 4 2020, 3:43 PM.
Tags
None
Referenced Files
F132327843: D23955.diff
Wed, Oct 15, 10:47 PM
Unknown Object (File)
Sun, Sep 28, 6:09 AM
Unknown Object (File)
Wed, Sep 24, 3:28 PM
Unknown Object (File)
Wed, Sep 24, 12:57 AM
Unknown Object (File)
Sep 15 2025, 4:35 AM
Unknown Object (File)
Sep 13 2025, 6:38 AM
Unknown Object (File)
Sep 12 2025, 9:45 PM
Unknown Object (File)
Sep 12 2025, 7:37 PM
Subscribers

Details

Summary

It causes signification contention under load. null_nodeget handles shared routines just fine by upgrading internally. This can be augmented to retry the call.

90 minutes of poudriere -j 104:

beforeafter
2166701312 (lockmgr:zfs)1342718342 (sx:proctree)
1129032848 (sleep mutex:vm reserv domain)1096197132 (sleep mutex:vm reserv domain)
1103242960 (sx:proctree)865508704 (rw:pmap pv list)
811216368 (rw:pmap pv list)785291794 (rw:vm object)
795941429 (rw:vm object)638809521 (sleep mutex:vm active pagequeue)
655162024 (sleep mutex:vm active pagequeue)570326117 (sx:vm map (user))
633134542 (sx:vm map (user))506366332 (sleep mutex:process lock)
492951491 (sleep mutex:process lock)301431921 (sx:allproc)
249325948 (spin mutex:sleepq chain)283324092 (lockmgr:zfs)

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 29778