diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-02-04 22:16:44 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2025-02-04 22:21:02 +0100 |
commit | 57facae9c1b4799224ff7e41af167f791749d102 (patch) | |
tree | 190be44120b2302daef5bf763895bb97a1987fba | |
parent | 5a4cb53dab56faef505cef7f9c6da1a033b4fc2f (diff) | |
download | gnumach-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.c | 2 |
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; |