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 <[email protected]>
---
Note: In case of backporting, branches below 23.03 have a bit different code,
so the fix will need to be slightly different.
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 d8c6b4743..be8983fa7 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);
--
2.41.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev