aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2025-02-04 22:16:44 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2025-02-04 22:21:02 +0100
commit57facae9c1b4799224ff7e41af167f791749d102 (patch)
tree190be44120b2302daef5bf763895bb97a1987fba
parent5a4cb53dab56faef505cef7f9c6da1a033b4fc2f (diff)
downloadgnumach-57facae9c1b4799224ff7e41af167f791749d102.tar.gz
gnumach-57facae9c1b4799224ff7e41af167f791749d102.tar.bz2
gnumach-57facae9c1b4799224ff7e41af167f791749d102.zip
vm_page: Avoid trying to evict internal pages until defpager is up
Otherwise we will get stuck inside vm_object_pager_create's call to vm_object_enter trying to reference it. This avoids getting stuck when there is no swap and we don't start a defpager.
-rw-r--r--vm/vm_page.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/vm/vm_page.c b/vm/vm_page.c
index b0d3b7c2..39aa674a 100644
--- a/vm/vm_page.c
+++ b/vm/vm_page.c
@@ -2035,7 +2035,7 @@ again:
* Eviction failed, consider pages from internal objects on the
* next attempt.
*/
- if (external_only) {
+ if (external_only && memory_manager_default) {
simple_unlock(&vm_page_queue_free_lock);
external_only = FALSE;
goto again;