From 4fe399e4262ea3b02d50fc3301415294665f5926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 28 Apr 2010 18:09:09 +0000 Subject: [PATCH] * Use vm_page_write_modified_page_range() instead of vm_page_schedule_write_page_range() to prevent more memory pressure. * While it seems to help a bit, it doesn't solve the problem of bug #5777. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36519 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/cache/file_cache.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/cache/file_cache.cpp b/src/system/kernel/cache/file_cache.cpp index 9f167c3561..ddf206d0c4 100644 --- a/src/system/kernel/cache/file_cache.cpp +++ b/src/system/kernel/cache/file_cache.cpp @@ -293,13 +293,15 @@ reserve_pages(file_cache_ref* ref, vm_page_reservation* reservation, // we are not mapped, and we're accessed sequentially if (isWrite) { - // just schedule some pages to be written back + // Just write some pages back, and actually wait until they + // have been written back in order to relieve the page pressure + // a bit. int32 index = ref->last_access_index; int32 previous = index - 1; if (previous < 0) previous = LAST_ACCESSES - 1; - vm_page_schedule_write_page_range(cache, + vm_page_write_modified_page_range(cache, ref->LastAccessPageOffset(previous, true), ref->LastAccessPageOffset(index, true)); } else {