diff options
Diffstat (limited to 'debian/patches/vm-cache-policy0003-vm-evict-clean-pages-first.patch')
-rw-r--r-- | debian/patches/vm-cache-policy0003-vm-evict-clean-pages-first.patch | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/debian/patches/vm-cache-policy0003-vm-evict-clean-pages-first.patch b/debian/patches/vm-cache-policy0003-vm-evict-clean-pages-first.patch deleted file mode 100644 index 2ba5794..0000000 --- a/debian/patches/vm-cache-policy0003-vm-evict-clean-pages-first.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 3f0c838e24d6765688c28ff1d852cc03809878b1 Mon Sep 17 00:00:00 2001 -From: Justus Winter <4winter@informatik.uni-hamburg.de> -Date: Sat, 21 Feb 2015 15:20:46 +0100 -Subject: [PATCH gnumach 3/3] vm: evict clean pages first - -* vm/vm_pageout.c (vm_pageout_scan): Evict clean pages from the list -of clean pages first, without requiring an expensive scan through the -inactive list. ---- - vm/vm_pageout.c | 24 +++++++++++++++++++++++- - 1 file changed, 23 insertions(+), 1 deletion(-) - -diff --git a/vm/vm_pageout.c b/vm/vm_pageout.c -index 6ea2951..a22dfeb 100644 ---- a/vm/vm_pageout.c -+++ b/vm/vm_pageout.c -@@ -681,6 +681,28 @@ void vm_pageout_scan(void) - /*NOTREACHED*/ - } - -+ /* Try to evict a clean page first. */ -+ simple_lock (&vm_page_queue_clean_lock); -+ int tries; -+ for (tries = vm_page_clean_count; tries; tries--) -+ { -+ assert (! queue_empty (&vm_page_queue_clean)); -+ queue_remove_first (&vm_page_queue_clean, -+ m, vm_page_t, cleanq); -+ if (! m->active && m->inactive -+ && (want_pages || m->external)) -+ { -+ m->cleanq.next = NULL; -+ vm_page_clean_count -= 1; -+ simple_unlock (&vm_page_queue_clean_lock); -+ goto got_one; -+ } -+ else -+ queue_enter (&vm_page_queue_clean, -+ m, vm_page_t, cleanq); -+ } -+ simple_unlock (&vm_page_queue_clean_lock); -+ - vm_pageout_inactive++; - - /* Find a page we are interested in paging out. If we -@@ -697,7 +719,7 @@ void vm_pageout_scan(void) - if (!m) - goto pause; - } -- -+ got_one: - object = m->object; - - /* --- -2.1.4 - |