From b42497e05e0baaab99dcba4e71fee0df0ed79d18 Mon Sep 17 00:00:00 2001 From: apio Date: Wed, 20 Sep 2023 19:49:13 +0200 Subject: [PATCH] kernel: Start clearing caches when free memory is lower than 1MiB This is done to avoid returning ENOMEM errors when cache memory can still be reclaimed. --- kernel/src/memory/MemoryManager.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/src/memory/MemoryManager.cpp b/kernel/src/memory/MemoryManager.cpp index fc530b16..018c284d 100644 --- a/kernel/src/memory/MemoryManager.cpp +++ b/kernel/src/memory/MemoryManager.cpp @@ -157,6 +157,13 @@ namespace MemoryManager used_mem += ARCH_PAGE_SIZE; free_mem -= ARCH_PAGE_SIZE; + if (free_mem < 1024 * 1024) + { + // Less than 1 MiB of free memory! Let's start clearing caches... + kwarnln("Less than 1 MiB of free memory, clearing caches to try to gain extra memory"); + Scheduler::signal_oom_thread(); + } + return index * ARCH_PAGE_SIZE; }