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(); }