From b52f96ab642f5324a08c032ad5a9b3690cd14f28 Mon Sep 17 00:00:00 2001 From: apio Date: Thu, 21 Sep 2023 19:14:13 +0200 Subject: [PATCH] kernel: Schedule cache clears only on certain checkpoints --- kernel/src/memory/MemoryManager.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/kernel/src/memory/MemoryManager.cpp b/kernel/src/memory/MemoryManager.cpp index eb0a7ab1..d291c71f 100644 --- a/kernel/src/memory/MemoryManager.cpp +++ b/kernel/src/memory/MemoryManager.cpp @@ -157,10 +157,15 @@ namespace MemoryManager used_mem += ARCH_PAGE_SIZE; free_mem -= ARCH_PAGE_SIZE; - if (free_mem < 4 * 1024 * 1024) + if (free_mem * 4 == total()) { - // Less than 4 MiB of free memory! Let's start clearing caches... - kwarnln("Less than 4 MiB of free memory, clearing caches to try to gain extra memory"); + kwarnln("Only 1/4 of memory is free, clearing caches to try to gain extra memory"); + Scheduler::signal_oom_thread(); + } + + if (free_mem * 8 == total()) + { + kwarnln("Only 1/8 of memory is free, clearing caches to try to gain extra memory"); Scheduler::signal_oom_thread(); }