Re: git: c849eb8f1925 - main - nullfs: Add the vfs.nullfs.cache_nodes sysctl to control nocache default [unknown oid 'vfs.nullfs.cache_nodes']
Date: Sun, 17 Mar 2024 04:58:09 UTC
On Mar 16, 2024, at 21:48, Seigo Tanimura <seigo.tanimura@gmail.com> wrote: > Hello Mark, Hello. > Is the nullfs(5) kernel module loaded? > > vfs.nullfs.cache_nodes is implemented in nullfs(5), which is not in GENERIC. I had not expected a tunable to require a kernel module load first. Also, the name was actually vfs.nullfs.cache_vnodes . With nullfs.ko loaded: # sysctl -T vfs.nullfs.cache_vnodes vfs.nullfs.cache_vnodes: 1 That indicates it is a tunable (so it should be appropriate for /boot/loader.conf use, as I understand what tunable refers to). But vfs.nullfs.cache_vnodes can not be internally set before nullfs.ko is loaded. There might need to be notes about the proper handling for early (tunable) time frames. Mark > Best regards, > > -- > Seigo Tanimura <seigo.tanimura@gmail.com> > > > On Sun, Mar 17, 2024 at 1:18 PM Mark Millard <marklmi@yahoo.com> 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/amd64.amd64/sys/GENERIC-NODBG amd64 amd64 1500015 1500015 > > The results are: > > # sysctl -d vfs.nullfs.cache_nodes > sysctl: unknown oid 'vfs.nullfs.cache_nodes' > > # 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 > > 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. === Mark Millard marklmi at yahoo.com