From 24c0a02a18d35dbd4f7715018bfffb11241bce7b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Mon, 19 Nov 2018 01:07:43 +0100 Subject: Fix task and thread collection frequency sched_tick is incremented only once per second, not once per tick. * kern/task.c (consider_task_collect): Divide task_collect_max_rate by (hz / 1) to get a number of scheduler ticks. * kern/thread.c (consider_thread_collect): Divide thread_collect_max_rate by (hz / 1) to get a number of scheduler ticks. --- kern/task.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'kern/task.c') diff --git a/kern/task.c b/kern/task.c index fc5802e3..57ad9849 100644 --- a/kern/task.c +++ b/kern/task.c @@ -1224,7 +1224,8 @@ void consider_task_collect(void) task_collect_max_rate = hz; if (task_collect_allowed && - (sched_tick > (task_collect_last_tick + task_collect_max_rate))) { + (sched_tick > (task_collect_last_tick + + task_collect_max_rate / (hz / 1)))) { task_collect_last_tick = sched_tick; task_collect_scan(); } -- cgit v1.2.3