linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] make vm_enough_memory more efficient
@ 2003-01-16  7:47 Martin J. Bligh
  2003-01-16  8:14 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Martin J. Bligh @ 2003-01-16  7:47 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-mm mailing list, linux-kernel

vm_enough_memory seems to call si_meminfo just to get the total 
RAM, which seems far too expensive. This replaces the comment
saying "this is crap" with some code that's less crap.

Not heavily tested (compiles and boots), but seems pretty obvious.

M.

diff -urpN -X /home/fletch/.diff.exclude virgin/mm/mmap.c vm_enough_memory/mm/mmap.c
--- virgin/mm/mmap.c	Mon Jan 13 21:09:28 2003
+++ vm_enough_memory/mm/mmap.c	Wed Jan 15 23:41:39 2003
@@ -72,7 +72,6 @@ inline void vm_unacct_memory(long pages)
 int vm_enough_memory(long pages)
 {
 	unsigned long free, allowed;
-	struct sysinfo i;
 
 	atomic_add(pages, &vm_committed_space);
 
@@ -113,12 +112,7 @@ int vm_enough_memory(long pages)
 		return 0;
 	}
 
-	/*
-	 * FIXME: need to add arch hooks to get the bits we need
-	 * without this higher overhead crap
-	 */
-	si_meminfo(&i);
-	allowed = i.totalram * sysctl_overcommit_ratio / 100;
+	allowed = totalram_pages * sysctl_overcommit_ratio / 100;
 	allowed += total_swap_pages;
 
 	if (atomic_read(&vm_committed_space) < allowed)

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] make vm_enough_memory more efficient
  2003-01-16  7:47 [PATCH] make vm_enough_memory more efficient Martin J. Bligh
@ 2003-01-16  8:14 ` Andrew Morton
  2003-01-16 15:22   ` Martin J. Bligh
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2003-01-16  8:14 UTC (permalink / raw)
  To: Martin J. Bligh; +Cc: linux-mm, linux-kernel

"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> vm_enough_memory seems to call si_meminfo just to get the total 
> RAM, which seems far too expensive. This replaces the comment
> saying "this is crap" with some code that's less crap.
> 
> Not heavily tested (compiles and boots), but seems pretty obvious.

Yup, obviously correct.

The really hurtful part of vm_enough_memory() is the call to
get_page_cache_size(), which has to go over every CPU's local VM statistics
in get_page_state().

But I guess you're running with sysctl_overcommit_memory != 0.


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] make vm_enough_memory more efficient
  2003-01-16  8:14 ` Andrew Morton
@ 2003-01-16 15:22   ` Martin J. Bligh
  0 siblings, 0 replies; 3+ messages in thread
From: Martin J. Bligh @ 2003-01-16 15:22 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-mm, linux-kernel

>> vm_enough_memory seems to call si_meminfo just to get the total 
>> RAM, which seems far too expensive. This replaces the comment
>> saying "this is crap" with some code that's less crap.
>> 
>> Not heavily tested (compiles and boots), but seems pretty obvious.
> 
> Yup, obviously correct.

Cool.
 
> The really hurtful part of vm_enough_memory() is the call to
> get_page_cache_size(), which has to go over every CPU's local VM statistics
> in get_page_state().
> 
> But I guess you're running with sysctl_overcommit_memory != 0.

Yup, I manually disable that because it's so expensive. I'll see if
I can make the default case cheaper as well.

M.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-01-16 15:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-16  7:47 [PATCH] make vm_enough_memory more efficient Martin J. Bligh
2003-01-16  8:14 ` Andrew Morton
2003-01-16 15:22   ` Martin J. Bligh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox