MFV r305560: 7278 tuning zfs_arc_max does not impact arc_c_min

When changing zfs_arc_max (e.g. as zdb does), it may be set to less
than the default arc_c_min. arc_c_min should decrease to not be more than
arc_c_max, but it doesn't; therefore tuning of arc_c_max is ineffective.

Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Paul Dagnelie <paul.dagnelie@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Author: Matthew Ahrens <mahrens@delphix.com>

openzfs/openzfs@608764bead
This commit is contained in:
Alexander Motin 2016-09-07 20:05:10 +00:00
commit de1fdddeda
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=305561

View File

@ -6062,8 +6062,10 @@ arc_init(void)
* Allow the tunables to override our calculations if they are
* reasonable.
*/
if (zfs_arc_max > arc_abs_min && zfs_arc_max < kmem_size())
if (zfs_arc_max > arc_abs_min && zfs_arc_max < kmem_size()) {
arc_c_max = zfs_arc_max;
arc_c_min = MIN(arc_c_min, arc_c_max);
}
if (zfs_arc_min > arc_abs_min && zfs_arc_min <= arc_c_max)
arc_c_min = zfs_arc_min;
#endif