From 6c36d72e715bb140df5b8d0a7ad9bcd0cb1e4b36 Mon Sep 17 00:00:00 2001 From: Rob N Date: Fri, 7 Apr 2023 03:52:50 +1000 Subject: [PATCH] vdev: expose zfs_vdev_max_ms_shift as a module parameter Reviewed-by: Brian Behlendorf Reviewed-by: Tino Reichardt Reviewed-by: Alexander Motin Signed-off-by: Rob Norris Sponsored-by: Klara, Inc. Sponsored-by: Seagate Technology LLC Closes #14719 (cherry picked from commit ff73574cd83580e4dd5905a43695bd5d0f4911b3) The type of sysctls had to be changed from uint_t to int to match other sysctls in to OpenZFS 2.1.5. --- man/man4/zfs.4 | 5 ++++- module/zfs/vdev.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/man/man4/zfs.4 b/man/man4/zfs.4 index 01baebb7d5..2c4cf80260 100644 --- a/man/man4/zfs.4 +++ b/man/man4/zfs.4 @@ -346,7 +346,10 @@ and the allocation can't actually be satisfied When a vdev is added, target this number of metaslabs per top-level vdev. . .It Sy zfs_vdev_default_ms_shift Ns = Ns Sy 29 Po 512MB Pc Pq int -Default limit for metaslab size. +Default lower limit for metaslab size. +. +.It Sy zfs_vdev_max_ms_shift Ns = Ns Sy 34 Po 16 GiB Pc Pq int +Default upper limit for metaslab size. . .It Sy zfs_vdev_max_auto_ashift Ns = Ns Sy ASHIFT_MAX Po 16 Pc Pq ulong Maximum ashift used when optimizing for logical -> physical sector size on new diff --git a/module/zfs/vdev.c b/module/zfs/vdev.c index 25d3f3ea6d..dc4f4ca8f0 100644 --- a/module/zfs/vdev.c +++ b/module/zfs/vdev.c @@ -5460,7 +5460,10 @@ ZFS_MODULE_PARAM(zfs_vdev, zfs_vdev_, default_ms_count, INT, ZMOD_RW, "Target number of metaslabs per top-level vdev"); ZFS_MODULE_PARAM(zfs_vdev, zfs_vdev_, default_ms_shift, INT, ZMOD_RW, - "Default limit for metaslab size"); + "Default lower limit for metaslab size"); + +ZFS_MODULE_PARAM(zfs_vdev, zfs_vdev_, max_ms_shift, INT, ZMOD_RW, + "Default upper limit for metaslab size"); ZFS_MODULE_PARAM(zfs_vdev, zfs_vdev_, min_ms_count, INT, ZMOD_RW, "Minimum number of metaslabs per top-level vdev");