This was "borrowed" from the web page on Configurable Kernel Parameters.
The following parameters, all related to spinlock pools for multi-processor computers, are used similarly and are documented together here. Each parameter allocates the specified number of spinlocks for the corresponding system resource:
bufcache_hash_locks
Buffer-cache spinlock pool
chanq_hash_locks
Channel queue spinlock pool
ftable_hash_locks
io_ports_hash_locks
pfdat_hash_locks
region_hash_locks
Process-region spinlock pool
sysv_hash_locks
System V Inter-process-communication spinlock pool
vnode_cd_hash_locks
Vnode clean/dirty spinlock pool
vnode_hash_locks
These parameters are for use by advanced users only who have a thorough understanding of how spinlocks are used by multiple processors and how the number of spinlocks needed are related to system size and complexity. Do not change these from their default value unless you understand the consequences of any changes. In general, these values should not be altered without the advice of HP support engineers who are thoroughly familiar with their use.
Setting these parameters to inappropriate values can result in severe performance problems in multi-processor systems.
Following is a list of acceptable values. All of these parameters have the same minimum and maximum values. Only the defaults are different as indicated:
Minimum
Maximum
Default
64 (ftable_hash_locks, io_ports_hash_locks)
Default
128 (bufcache_hash_locks, pfdat_hash_locks, region_hash_locks, sysv_hash_locks, vnode_hash_locks, vnode_cd_hash_locks)
Default
Specify a value that is an integer exponent of 2. If you specify any other value, SAM or the kernel itself changes the parameter value to the next larger integer exponent of two (for example, specifying 100 results in the spinlock-pool value of 128.
Description
In simple terms, spinlocks are a mechanism used in multiple-processor systems to control the interaction of processors that must be held off while waiting for another processor to finish a task so the results can be passed to the waiting processor. Spinlocks control access to file-system vnodes, I/O ports, buffer cache, and various other resources.
Earlier HP-UX versions allocated a fixed number of spinlocks for all resources, but beginning at HP-UX 11.0, spinlocks can be allocated for each resource type to accommodate very large and complex systems.
In general, if the system is encountering lock contention problems that are associated with one of these hashed pools, first identify the resource spinlock pool that is associated with the contention, then increase the spinlock-pool parameter for that resource. Spinlock pools are always an integer power of two. If you specify a value that is not, the kernel always allocates a value that is the next larger integer exponent of two.
As stated above, these parameters are for use by experienced, knowledgeable system administrators only. They should not be altered unless you are quite certain that what you are doing is the correct thing to do.
Back to the Top