mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Add prefetch property
ZFS prefetch is currently governed by the zfs_prefetch_disable tunable. However, this is a module-wide settings - if a specific dataset benefits from prefetch, while others have issue with it, an optimal solution does not exists. This commit introduce the "prefetch" tri-state property, which enable granular control (at dataset/volume level) for prefetching. This patch does not remove the zfs_prefetch_disable, which remains a system-wide switch for enable/disable prefetch. However, to avoid duplication, it would be preferable to deprecate and then remove the module tunable. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Ameer Hamza <ahamza@ixsystems.com> Signed-off-by: Gionatan Danti <g.danti@assyoma.it> Co-authored-by: Gionatan Danti <g.danti@assyoma.it> Closes #15237 Closes #15436
This commit is contained in:
@@ -345,6 +345,13 @@ zfs_prop_init(void)
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
static const zprop_index_t prefetch_table[] = {
|
||||
{ "none", ZFS_PREFETCH_NONE },
|
||||
{ "metadata", ZFS_PREFETCH_METADATA },
|
||||
{ "all", ZFS_PREFETCH_ALL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
static const zprop_index_t sync_table[] = {
|
||||
{ "standard", ZFS_SYNC_STANDARD },
|
||||
{ "always", ZFS_SYNC_ALWAYS },
|
||||
@@ -453,6 +460,10 @@ zfs_prop_init(void)
|
||||
ZFS_CACHE_ALL, PROP_INHERIT,
|
||||
ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_VOLUME,
|
||||
"all | none | metadata", "SECONDARYCACHE", cache_table, sfeatures);
|
||||
zprop_register_index(ZFS_PROP_PREFETCH, "prefetch",
|
||||
ZFS_PREFETCH_ALL, PROP_INHERIT,
|
||||
ZFS_TYPE_FILESYSTEM | ZFS_TYPE_SNAPSHOT | ZFS_TYPE_VOLUME,
|
||||
"none | metadata | all", "PREFETCH", prefetch_table, sfeatures);
|
||||
zprop_register_index(ZFS_PROP_LOGBIAS, "logbias", ZFS_LOGBIAS_LATENCY,
|
||||
PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
|
||||
"latency | throughput", "LOGBIAS", logbias_table, sfeatures);
|
||||
|
||||
Reference in New Issue
Block a user