Skip to content

Commit 63277d2

Browse files
committed
Configurable dirty ratio hysteresis
Signed-off-by: Daniel Madej <daniel.madej@huawei.com>
1 parent c6a8081 commit 63277d2

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

inc/cleaning/alru.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ enum ocf_cleaning_alru_parameters {
1818
ocf_alru_flush_max_buffers,
1919
ocf_alru_activity_threshold,
2020
ocf_alru_dirty_ratio_threshold,
21+
ocf_alru_dirty_ratio_inertia,
2122
};
2223

2324
/**
@@ -87,6 +88,10 @@ enum ocf_cleaning_alru_parameters {
8788
* when dirty ratio drops below (threshold - inertia).
8889
*/
8990

91+
/** Minimum dirty ratio trigger inertia value */
92+
#define OCF_ALRU_MIN_DIRTY_RATIO_INERTIA 0
93+
/** Maximum dirty ratio trigger inertia value */
94+
#define OCF_ALRU_MAX_DIRTY_RATIO_INERTIA 100
9095
/** Default dirty ratio trigger inertia value */
9196
#define OCF_ALRU_DEFAULT_DIRTY_RATIO_INERTIA 5
9297
/**

src/cleaning/alru.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,16 @@ int cleaning_policy_alru_set_cleaning_param(ocf_cache_t cache,
775775
"dirty ratio trigger threshold: %d\n",
776776
config->dirty_ratio_threshold);
777777
break;
778+
case ocf_alru_dirty_ratio_inertia:
779+
OCF_CLEANING_CHECK_PARAM(cache, param_value,
780+
OCF_ALRU_MIN_DIRTY_RATIO_INERTIA,
781+
OCF_ALRU_MAX_DIRTY_RATIO_INERTIA,
782+
"dirty_ratio_inertia");
783+
config->dirty_ratio_inertia = param_value;
784+
ocf_cache_log(cache, log_info, "Write-back flush thread "
785+
"dirty ratio trigger inertia: %d\n",
786+
config->dirty_ratio_inertia);
787+
break;
778788
default:
779789
return -OCF_ERR_INVAL;
780790
}
@@ -805,6 +815,9 @@ int cleaning_policy_alru_get_cleaning_param(ocf_cache_t cache,
805815
case ocf_alru_dirty_ratio_threshold:
806816
*param_value = config->dirty_ratio_threshold;
807817
break;
818+
case ocf_alru_dirty_ratio_inertia:
819+
*param_value = config->dirty_ratio_inertia;
820+
break;
808821
default:
809822
return -OCF_ERR_INVAL;
810823
}

0 commit comments

Comments
 (0)