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 <i.maxim...@ovn.org>
---

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
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to