grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH v3 1/2] mm: Try invalidate disk caches last when out of memor


From: Zhang Boyang
Subject: [RFC PATCH v3 1/2] mm: Try invalidate disk caches last when out of memory
Date: Thu, 13 Oct 2022 09:29:18 +0800

Previously, every heap grow will cause all disk caches invalidated,
which decreases performance severely. This patch moves disk cache
invalidation code to the last of memory squeezing measures, so disk
caches are released only when no other ways to get free memory.

Signed-off-by: Zhang Boyang <zhangboyang.id@gmail.com>
---
 grub-core/kern/mm.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c
index 75f6eacbe..ae2279133 100644
--- a/grub-core/kern/mm.c
+++ b/grub-core/kern/mm.c
@@ -443,12 +443,6 @@ grub_memalign (grub_size_t align, grub_size_t size)
   switch (count)
     {
     case 0:
-      /* Invalidate disk caches.  */
-      grub_disk_cache_invalidate_all ();
-      count++;
-      goto again;
-
-    case 1:
       /* Request additional pages, contiguous */
       count++;
 
@@ -458,7 +452,7 @@ grub_memalign (grub_size_t align, grub_size_t size)
 
       /* fallthrough  */
 
-    case 2:
+    case 1:
       /* Request additional pages, anything at all */
       count++;
 
@@ -474,6 +468,12 @@ grub_memalign (grub_size_t align, grub_size_t size)
 
       /* fallthrough */
 
+    case 2:
+      /* Invalidate disk caches.  */
+      grub_disk_cache_invalidate_all ();
+      count++;
+      goto again;
+
     default:
       break;
     }
-- 
2.30.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]