From 7606386fb313ac420ca2212f4b2b86927777496e Mon Sep 17 00:00:00 2001 From: Ilya Maximets Date: Fri, 22 Sep 2023 14:03:15 +0200 Subject: [PATCH] memory-trim: Fix timestamp overflow warning right after reboot. If OVN is started less than 30 seconds after system boot, it logs: |memory_trim|WARN|Detected last active timestamp overflow The 'now < trim_timeout_ms' is not for a timestamp overflow, but for the later subtraction. 'now < last_active_ms' is enough to check for the overflow. Technically, we shouldn't need to check that now > trim_timeout_ms before subtraction, because the result should be a signed integer, but it's cleaner this way. Fixes: 12ddb1c9d908 ("lflow-cache: Automatically trim cache when it becomes inactive.") Signed-off-by: Ilya Maximets --- lib/memory-trim.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/memory-trim.c b/lib/memory-trim.c index d8c6b47430..be8983fa79 100644 --- a/lib/memory-trim.c +++ b/lib/memory-trim.c @@ -71,13 +71,14 @@ memory_trimmer_can_run(struct memory_trimmer *mt) } long long int now = time_msec(); - if (now < mt->last_active_ms || now < mt->trim_timeout_ms) { + if (now < mt->last_active_ms) { VLOG_WARN_RL(&rl, "Detected last active timestamp overflow"); mt->recently_active = false; return true; } - if (now - mt->trim_timeout_ms >= mt->last_active_ms) { + if (now > mt->trim_timeout_ms + && now - mt->trim_timeout_ms >= mt->last_active_ms) { VLOG_INFO_RL(&rl, "Detected inactivity " "(last active %lld ms ago): trimming memory", now - mt->last_active_ms);