sys_attrs_ufs - ufs subsystem attributes
This reference page lists and describes attributes for the UNIX File System
(ufs) kernel subsystem. Refer to the sys_attrs(5) reference page for an
introduction to the topic of kernel subsystem attributes.
A value that enables (1) or disables (0) the creation of fast symbolic
Default value: 1 (enabled)
Size of (number of slots in) the inode hash chain table for the inode
least recently used (LRU) cache.
Default value: 2048 (slots)
Minimum value: 64
Maximum value: 16,384
Large inode hash chain tables spread the inode structures and may make
chain lengths short. This can reduce linear searches and improve
lookup speeds. In general, chains should contain only 2 or 3 elements.
Obsolete. This attribute has been replaced by the vfs subsystem's
max_ufs_mounts attribute, which is tunable at run time. See
sys_attrs_vfs(5) for information about max_ufs_mounts.
The range of blocks behind the current block location through which to
search for a free block to allocate for an indirect block write opera-
tion (for all writes other than the first). A value greater than 1
enables a look-behind search before writing each indirect block after
the first block write operation.
Default value: 16 (blocks)
Minimum value: 1
Maximum value: 64
The maximum number of vnodes that UFS can process while flushing dirty
buffers on the mount list before releasing the lock on the mount list
to other components. If ufs_lockholdmax number of vnodes is reached
before all dirty buffers on all vnodes are flushed from the mount list,
UFS releases the mount list lock and regains it later to process (flush
dirty buffers on) the remaining vnodes.
Default value: 500 (vnodes)
Minimum value: 0 (means that UFS must release the mount list lock each
time a vnode is processed)
Maximum value: 5000
Reducing the value of ufs_lockholdmax can improve system responsiveness
for systems under heavy I/O load. The cost is an increase in CPU over-
head (more time required to flush dirty buffers from the mount list).
Reducing the ufs_lockholdmax value too low or on systems with low I/O
overhead incurs CPU cost without increasing system responsiveness.
If the rt_preempt_opt attribute is set, ufs_lockholdmax is automati-
cally reduced to 50 to better support the strict preemption require-
ments of realtime operations.
A value that enables (nonzero) or disables (0) an operation that res-
tricts how blocks of stale UFS data and metadata (such as inodes) are
reused. When ufs_object_safety is set to a nonzero value, blocks are
cleared before being rewritten and update operations are ordered in a
certain way to conform to C2 security requirements. For example, during
file creation, a dinode is always written before a directory entry is
updated to point to that dinode. When a file is deleted, the directory
entry is always updated before the dinode is deleted.
Default value: 0 (disabled)
Change ufs_object_safety to a nonzero value only if a C2 security level
is a system requirement. There is a serious UFS performance cost asso-
ciated with this change. Furthermore, the default setting, even though
not in strict conformance with C2 security requirements, leaves a low
probability that confidential data will be exposed.