[Correcting a typo in the naming. Leads to discovering need to load nullfs.ko
first.]

On Mar 16, 2024, at 21:18, Mark Millard <[email protected]> wrote:

> Both an official PkgBase install and a personal build do not find the new oid 
> for this for main:
> 
> # uname -apKU
> FreeBSD 7950X3D-ZFS 15.0-CURRENT FreeBSD 15.0-CURRENT 
> main-n268827-75464941dc17 GENERIC-NODEBUG amd64 amd64 1500015 1500015
> 
> # uname -apKU
> FreeBSD 7950X3D-ZFS 15.0-CURRENT FreeBSD 15.0-CURRENT #139 
> main-n268827-75464941dc17-dirty: Sun Mar 17 03:16:30 UTC 2024     
> root@7950X3D-ZFS:/usr/obj/BUILDs/main-amd64-nodbg-clang/usr/main-src/amd64amd64/sys/GENERIC-NODBG
>  amd64 amd64 1500015 1500015
> 
> The results are:
> 
> # sysctl -d vfs.nullfs.cache_nodes
> sysctl: unknown oid 'vfs.nullfs.cache_nodes'

# sysctl -d vfs.nullfs.cache_vnodes

would also have failed because nullfs.ko had not been
loaded yet.

> # sysctl -a | grep vnode
> kern.maxvnodes: 3224925
> kern.ipc.umtx_vnode_persistent: 0
> vm.vnode_pbufs: 2048
> vm.stats.vm.v_vnodepgsout: 0
> vm.stats.vm.v_vnodepgsin: 4923
> vm.stats.vm.v_vnodeout: 0
> vm.stats.vm.v_vnodein: 662
> vfs.wantfreevnodes: 806231
> vfs.freevnodes: 1323
> vfs.vnodes_created: 3654
> vfs.numvnodes: 1807
> vfs.vnode.vnlru.uma_reclaim_calls: 0
> vfs.vnode.vnlru.kicks: 0
> vfs.vnode.vnlru.max_free_per_call: 10000
> vfs.vnode.vnlru.failed_runs: 0
> vfs.vnode.vnlru.direct_recycles_free: 0
> vfs.vnode.vnlru.recycles_free: 0
> vfs.vnode.vnlru.recycles: 0
> vfs.vnode.stats.alloc_sleeps: 0
> vfs.vnode.stats.free: 1323
> vfs.vnode.stats.skipped_requeues: 0
> vfs.vnode.stats.created: 3654
> vfs.vnode.stats.count: 1807
> vfs.vnode.param.wantfree: 806231
> vfs.vnode.param.limit: 3224925
> vfs.cache.debug.vnodes_cel_3_failures: 0
> vfs.cache.stats.heldvnodes: 119
> debug.vnode_domainset: <NULL>
> debug.sizeof.vnode: 448
> debug.fail_point.status_fill_kinfo_vnode__random_path: off
> debug.fail_point.fill_kinfo_vnode__random_path: off

That also explains the above.

> Note: The mount_nullfs man page does have:
> 
> QUOTE
>             cache    Force enable metadata caching.
> 
>     The vfs.nullfs.cache_vnodes sysctl specifies global default for mount-
>     specific cache/nocache option.
> END QUOTE
> 
> That is evidence of the vintage of materials.
> 

After:

# kldload nullfs

It shows up (when correctly spelled):

# sysctl -Td vfs.nullfs.cache_vnodes
vfs.nullfs.cache_vnodes: cache free nullfs vnodes

(So the tunable requires first loading nullfs.ko to be
effective? Should there be any notes about getting
tunable time frame settings to work for any early
time frame use of nullfs_mount?)

# sysctl -Wd vfs.nullfs.cache_vnodes
vfs.nullfs.cache_vnodes: cache free nullfs vnodes

===
Mark Millard
marklmi at yahoo.com


Reply via email to