Skip to content

Registry

Jorgen Lundman edited this page Oct 12, 2025 · 1 revision

Registry

Open ZFS uses the Registry for default tunable values which is read in on startup.

 \HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OpenZFS

hostid

The Registry key hostid is generally handled by OpenZFS internally, ie, generated randomly if it is not set the first time Open ZFS is loaded.

You can change hostid if that is so desired. For example, if you share the pool between multiple Operating Systems on the same Hardware.

Arc Max

To set the ARC maximum memory usage to 2GB, create an entry;

"zfs_arc_max" REG_QWORD "0x80000000"

Vectorized Raidz

There are a few vectorized implementations to chose from.

To disable all assembler implementations, create a registry setting:

 "zfs_sha256_impl" REG_SZ "generic"
 "zfs_sha512_impl" REG_SZ "generic"
 "icp_aes_impl" REG_SZ "generic"
 "icp_gcm_impl" REG_SZ "generic"
 "zfs_blake3_impl" REG_SZ "generic"
 "zfs_vdev_raidz_impl" REG_SZ "original"
 "zfs_fletcher_4_impl" REG_SZ "scalar"

Which would set the implementations to use the standard C versions. The default value is fastest which picks the highest available. Examples are

 zfs_vdev_raidz_impl: [original] scalar sse2 ssse3 
 icp_gcm_impl_get: cycle fastest [generic] 
 icp_aes_impl_get: cycle fastest [generic] x86_64 aesni 
 zfs_fletcher_4_impl_get: fastest [scalar] superscalar superscalar4 sse2 ssse3

Available tunables

As of 2022, the tunables are now written to the Registry when you install OpenZFS, so all available tunables are visible there.

Clone this wiki locally