From af637076adfbf7023a9470cb93c02a92e3758049 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Fri, 4 Jul 2008 14:49:25 +0000 Subject: [PATCH] * Avoid calling vm_unreserve_memory() if there is no change in the commited size. Removes a bit of overhead (call and mutex_lock / mutex_unlock). * Don't fail if there is exactly enough memory available to satisfy the reserve request. Not that it would really matter as it's rather an edge case... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26246 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/vm/vm.cpp | 2 +- src/system/kernel/vm/vm_store_anonymous_noswap.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index 70e2d9e2e0..3580fc5434 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -4761,7 +4761,7 @@ vm_try_reserve_memory(size_t amount) //dprintf("try to reserve %lu bytes, %Lu left\n", amount, sAvailableMemory); - if (sAvailableMemory > amount) { + if (sAvailableMemory >= amount) { sAvailableMemory -= amount; status = B_OK; } else diff --git a/src/system/kernel/vm/vm_store_anonymous_noswap.cpp b/src/system/kernel/vm/vm_store_anonymous_noswap.cpp index 31132c3ac1..15829ae60a 100644 --- a/src/system/kernel/vm/vm_store_anonymous_noswap.cpp +++ b/src/system/kernel/vm/vm_store_anonymous_noswap.cpp @@ -66,6 +66,9 @@ anonymous_commit(struct vm_store *_store, off_t size) size = precommitted; } + if (size == store->vm.committed_size) + return B_OK; + // Check to see how much we could commit - we need real memory if (size > store->vm.committed_size) {