132 lines
3.8 KiB
Diff
132 lines
3.8 KiB
Diff
From 57861ad98668370ef2b8de094ba2b5bfed4f9bac Mon Sep 17 00:00:00 2001
|
|
From: Kemeng Shi <shikemeng@huawei.com>
|
|
Date: Wed, 12 May 2021 15:40:17 +0800
|
|
Subject: [PATCH 31/50] remove node_watermark
|
|
|
|
Signed-off-by: Kemeng Shi <shikemeng@huawei.com>
|
|
---
|
|
src/etmemd_src/etmemd_cslide.c | 79 ----------------------------------
|
|
1 file changed, 79 deletions(-)
|
|
|
|
diff --git a/src/etmemd_src/etmemd_cslide.c b/src/etmemd_src/etmemd_cslide.c
|
|
index 6f609b8..745dbcc 100644
|
|
--- a/src/etmemd_src/etmemd_cslide.c
|
|
+++ b/src/etmemd_src/etmemd_cslide.c
|
|
@@ -143,7 +143,6 @@ struct cslide_params_factory {
|
|
struct cslide_eng_params {
|
|
struct sys_mem mem;
|
|
struct node_map node_map;
|
|
- int node_watermark;
|
|
int hot_threshold;
|
|
int hot_reserve; // in MB
|
|
int mig_quota; // in MB
|
|
@@ -1463,65 +1462,6 @@ static int cslide_do_migrate(struct cslide_eng_params *eng_params)
|
|
return 0;
|
|
}
|
|
|
|
-static bool is_node_empty(struct node_mem *mem)
|
|
-{
|
|
- return mem->huge_free == mem->huge_total;
|
|
-}
|
|
-
|
|
-static bool is_all_cold_node_empty(struct cslide_eng_params *eng_params)
|
|
-{
|
|
- struct sys_mem *mem = &eng_params->mem;
|
|
- struct node_pair *pair = NULL;
|
|
- int i;
|
|
-
|
|
- for (i = 0; i < eng_params->node_map.cur_num; i++) {
|
|
- pair = &eng_params->node_map.pair[i];
|
|
- if (!is_node_empty(&mem->node_mem[pair->cold_node])) {
|
|
- return false;
|
|
- }
|
|
- }
|
|
- return true;
|
|
-}
|
|
-
|
|
-static inline bool is_busy(int node_watermark, long long total, long long free)
|
|
-{
|
|
- return free * TO_PCT / total < node_watermark;
|
|
-}
|
|
-
|
|
-static bool is_node_busy(int node_watermark, struct node_mem *mem)
|
|
-{
|
|
- return is_busy(node_watermark, mem->huge_total, mem->huge_free);
|
|
-}
|
|
-
|
|
-static bool is_any_hot_node_busy(struct cslide_eng_params *eng_params)
|
|
-{
|
|
- struct sys_mem *mem = &eng_params->mem;
|
|
- struct node_pair *pair = NULL;
|
|
- int node_watermark = eng_params->node_watermark;
|
|
- int i;
|
|
-
|
|
- for (i = 0; i < eng_params->node_map.cur_num; i++) {
|
|
- pair = &eng_params->node_map.pair[i];
|
|
- if (is_node_busy(node_watermark, &mem->node_mem[pair->hot_node])) {
|
|
- return true;
|
|
- }
|
|
- }
|
|
-
|
|
- return false;
|
|
-}
|
|
-
|
|
-static bool need_migrate(struct cslide_eng_params *eng_params)
|
|
-{
|
|
- if (!is_all_cold_node_empty(eng_params)) {
|
|
- return true;
|
|
- }
|
|
- if (is_any_hot_node_busy(eng_params)) {
|
|
- return true;
|
|
- }
|
|
-
|
|
- return false;
|
|
-}
|
|
-
|
|
static void init_host_pages_info(struct cslide_eng_params *eng_params)
|
|
{
|
|
int n;
|
|
@@ -1692,11 +1632,6 @@ static void *cslide_main(void *arg)
|
|
goto next;
|
|
}
|
|
|
|
- if (!need_migrate(eng_params)) {
|
|
- etmemd_log(ETMEMD_LOG_DEBUG, "no need to migrate\n");
|
|
- goto next;
|
|
- }
|
|
-
|
|
if (cslide_do_migrate(eng_params) != 0) {
|
|
etmemd_log(ETMEMD_LOG_ERR, "cslide_do_migrate fail\n");
|
|
goto next;
|
|
@@ -2055,19 +1990,6 @@ err:
|
|
return ret;
|
|
}
|
|
|
|
-static int fill_migrate_watermark(void *obj, void *val)
|
|
-{
|
|
- struct cslide_eng_params *params = (struct cslide_eng_params *)obj;
|
|
- int wm = parse_to_int(val);
|
|
-
|
|
- if (wm < MIN_WM || wm > MAX_WM) {
|
|
- etmemd_log(ETMEMD_LOG_ERR, "migrate watermark %d invalid\n", wm);
|
|
- return -1;
|
|
- }
|
|
- params->node_watermark = wm;
|
|
- return 0;
|
|
-}
|
|
-
|
|
static int fill_hot_threshold(void *obj, void *val)
|
|
{
|
|
struct cslide_eng_params *params = (struct cslide_eng_params *)obj;
|
|
@@ -2112,7 +2034,6 @@ static int fill_mig_quota(void *obj, void *val)
|
|
|
|
static struct config_item cslide_eng_config_items[] = {
|
|
{"node_pair", STR_VAL, fill_node_pair, false},
|
|
- {"node_watermark", INT_VAL, fill_migrate_watermark, false},
|
|
{"hot_threshold", INT_VAL, fill_hot_threshold, false},
|
|
{"node_mig_quota", INT_VAL, fill_mig_quota, false},
|
|
{"node_hot_reserve", INT_VAL, fill_hot_reserve, false},
|
|
--
|
|
2.27.0
|
|
|