From 18694f67a119a1a2c0f44fc4014c3df9c3fa2b8b Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 24 Feb 2024 20:53:42 +0100 Subject: Prepare for configurability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- coreupdown.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/coreupdown.c b/coreupdown.c index 70015ec..ab3d4e9 100644 --- a/coreupdown.c +++ b/coreupdown.c @@ -242,8 +242,22 @@ daemon_main(int argc, char **argv, int orig_argc, char **orig_argv, int reexeced size_t cpus; int up_time = 0, down_time = 0, cooldown = 0, err; struct timespec interval, rem; + uintmax_t coreup_threshold_cpu, coredown_threshold_cpu; + int coreup_threshold_time, coredown_threshold_time; + int coreup_cooldown, coredown_cooldown; + time_t daemon_interval_sec; + long int daemon_interval_nsec; restart: + coreup_threshold_cpu = COREUP_THRESHOLD_CPU; + coreup_threshold_time = COREUP_THRESHOLD_TIME; + coreup_cooldown = COREUP_COOLDOWN; + coredown_threshold_cpu = COREDOWN_THRESHOLD_CPU; + coredown_threshold_time = COREDOWN_THRESHOLD_TIME; + coredown_cooldown = COREDOWN_COOLDOWN; + daemon_interval_sec = DAEMON_INTERVAL_SEC; + daemon_interval_nsec = DAEMON_INTERVAL_NSEC; + if (reexeced) argv[0] = "coreupdownd"; @@ -266,8 +280,8 @@ restart: if (signal(SIGHUP, sighup_handler) == SIG_ERR) fprintf(stderr, "%s: signal SIGHUP : %s\n", argv0, strerror(errno)); - interval.tv_sec = DAEMON_INTERVAL_SEC; - interval.tv_nsec = DAEMON_INTERVAL_NSEC; + interval.tv_sec = daemon_interval_sec; + interval.tv_nsec = daemon_interval_nsec; if (getusage(&total, &idle, &cpus)) return 1; @@ -303,17 +317,17 @@ restart: continue; } - if (cpus == 1 && 100 * (total - idle) > COREUP_THRESHOLD_CPU * total) { + if (cpus == 1 && 100 * (total - idle) > coreup_threshold_cpu * total) { down_time = 0; - if (up_time++ >= COREUP_THRESHOLD_TIME) { - cooldown = COREUP_COOLDOWN; + if (up_time++ >= coreup_threshold_time) { + cooldown = coreup_cooldown; coreup(); up_time = 0; } - } else if (cpus > 1 && 100 * (total - idle) < COREDOWN_THRESHOLD_CPU * total * cpus) { + } else if (cpus > 1 && 100 * (total - idle) < coredown_threshold_cpu * total * cpus) { up_time = 0; - if (down_time++ >= COREDOWN_THRESHOLD_TIME) { - cooldown = COREDOWN_COOLDOWN; + if (down_time++ >= coredown_threshold_time) { + cooldown = coredown_cooldown; coredown(); down_time = 0; } -- cgit v1.2.3-70-g09d2