History

mm: add bdi_set_max_ratio_no_scale() function

This introduces bdi_set_max_ratio_no_scale(). It uses the max granularity for the ratio. This function by the new sysfs knob max_ratio_fine.

Stefan Roesch committed 3 years ago

Commit 4e230b41 parent 9c832a82 files · +9 −3Browse files

Unified · Split

2 files
  1. include/linux/backing-dev.h +1 −0
  2. mm/page-writeback.c +8 −3
include/linux/backing-dev.h+1−0
@@ -109,6 +109,7 @@ u64 bdi_get_min_bytes(struct backing_dev_info *bdi); · 108 unmodified lines
109109 u64 bdi_get_max_bytes(struct backing_dev_info *bdi);
110110 int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio);
111111 int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio);
112+int bdi_set_max_ratio_no_scale(struct backing_dev_info *bdi, unsigned int max_ratio);
112113 int bdi_set_min_bytes(struct backing_dev_info *bdi, u64 min_bytes);
113114 int bdi_set_max_bytes(struct backing_dev_info *bdi, u64 max_bytes);
114115 int bdi_set_strict_limit(struct backing_dev_info *bdi, unsigned int strict_limit);
mm/page-writeback.c+8−3
@@ -719,6 +719,9 @@ static int __bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ra · 718 unmodified lines
719719 {
720720 int ret = 0;
721721
722+ if (max_ratio > 100 * BDI_RATIO_SCALE)
723+ return -EINVAL;
724+
722725 spin_lock_bh(&bdi_lock);
723726 if (bdi->min_ratio > max_ratio) {
724727 ret = -EINVAL;
@@ -731,6 +734,11 @@ static int __bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ra · 6 unmodified lines
731734 return ret;
732735 }
733736
737+int bdi_set_max_ratio_no_scale(struct backing_dev_info *bdi, unsigned int max_ratio)
738+{
739+ return __bdi_set_max_ratio(bdi, max_ratio);
740+}
741+
734742 int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio)
735743 {
736744 return __bdi_set_min_ratio(bdi, min_ratio * BDI_RATIO_SCALE);
@@ -738,9 +746,6 @@ int bdi_set_min_ratio(struct backing_dev_info *bdi, unsigned int min_ratio) · 1 unmodified line
738746
739747 int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio)
740748 {
741− if (max_ratio > 100)
742− return -EINVAL;
743−
744749 return __bdi_set_max_ratio(bdi, max_ratio * BDI_RATIO_SCALE);
745750 }
746751 EXPORT_SYMBOL(bdi_set_max_ratio);