Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-2-0]: src/sys/uvm Pull up revision 1.57 (requested by chs in tick...
details: https://anonhg.NetBSD.org/src/rev/436e1345a3cd
branches: netbsd-2-0
changeset: 564689:436e1345a3cd
user: tron <tron%NetBSD.org@localhost>
date: Wed Mar 16 12:11:08 2005 +0000
description:
Pull up revision 1.57 (requested by chs in ticket #1137):
hack around a UVM problem that causes hangs when large processes fork.
see PR 26908 for details.
diffstat:
sys/uvm/uvm_amap.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diffs (36 lines):
diff -r 2e08661817da -r 436e1345a3cd sys/uvm/uvm_amap.c
--- a/sys/uvm/uvm_amap.c Wed Mar 16 12:11:02 2005 +0000
+++ b/sys/uvm/uvm_amap.c Wed Mar 16 12:11:08 2005 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: uvm_amap.c,v 1.53 2004/03/24 07:50:48 junyoung Exp $ */
+/* $NetBSD: uvm_amap.c,v 1.53.2.1 2005/03/16 12:11:08 tron Exp $ */
/*
*
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.53 2004/03/24 07:50:48 junyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_amap.c,v 1.53.2.1 2005/03/16 12:11:08 tron Exp $");
#undef UVM_AMAP_INLINE /* enable/disable amap inlines */
@@ -220,6 +220,17 @@
free(amap->am_slots, M_UVMAMAP);
fail1:
pool_put(&uvm_amap_pool, amap);
+
+ /*
+ * XXX hack to tell the pagedaemon how many pages we need,
+ * since we can need more than it would normally free.
+ */
+ if (waitf == M_NOWAIT) {
+ extern int uvm_extrapages;
+ uvm_extrapages += ((sizeof(int) * 2 +
+ sizeof(struct vm_anon *)) *
+ totalslots) >> PAGE_SHIFT;
+ }
return (NULL);
}
Home |
Main Index |
Thread Index |
Old Index