Subject: Re: Virtual Memory Subsystem
To: Jukka Marin <jmarin@pyy.jmp.fi>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: port-i386
Date: 11/25/1996 23:55:28
>> I would have thought this would be fixed by now.  I consider this a major
>> issue and reason enough to switch to another OS, and I'm sure many other
>> people think this as well.

OpenBSD has a fix. It's sub-optimal but perhaps we could use it
until a _real_ fix of the VM system is done?

>[beware of your blood pressure]

>Well, it doesn't always seem to matter what the end-users think.  There are
>a few annoying misfeatures in NetBSD that (IMHO) should have been fixed on
>day #1, but haven't.  This VM thing may not be fixed for another 3 years, I
>guess.  I would also appreciate it if my machines didn't come to a complete
>halt when I run out of RAM.


I don't understand. 

There is a fix for that in -current, and has been, I beleive, since
before 1.2 was released. I hope it goes in as an official patch for
1.2.  The relevant change was from 1.23 to 1.24 of
sys/vm/vm_pageout.c. pr #2755 explains the problem.

Here's the diff:

Index: vm_pageout.c
===================================================================
RCS file: /cvsroot/src/sys/vm/vm_pageout.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- vm_pageout.c	1996/02/05 01:54:07	1.23
+++ vm_pageout.c	1996/09/18 02:04:50	1.24
@@ -1,4 +1,4 @@
-/*	$NetBSD: vm_pageout.c,v 1.23 1996/02/05 01:54:07 christos Exp $	*/
+/*	$NetBSD: vm_pageout.c,v 1.24 1996/09/18 02:04:50 mrg Exp $	*/
 
 /* 
  * Copyright (c) 1991, 1993
@@ -70,6 +70,7 @@
 
 #include <sys/param.h>
 #include <sys/proc.h>
+#include <sys/kernel.h>
 
 #include <vm/vm.h>
 #include <vm/vm_page.h>
@@ -319,14 +320,13 @@
 		break;
 	case VM_PAGER_AGAIN:
 	{
-		extern int lbolt;
-
 		/*
 		 * FAIL on a write is interpreted to mean a resource
 		 * shortage, so we put pause for awhile and try again.
 		 * XXX could get stuck here.
 		 */
-		(void) tsleep((caddr_t)&lbolt, PZERO|PCATCH, "pageout", 0);
+		(void) tsleep((caddr_t)&vm_pages_needed, PZERO|PCATCH,
+		    "pageout", hz);
 		break;
 	}
 	case VM_PAGER_FAIL:
@@ -451,9 +451,8 @@
 	 * XXX rethink this
 	 */
 	if (postatus == VM_PAGER_AGAIN) {
-		extern int lbolt;
-
-		(void) tsleep((caddr_t)&lbolt, PZERO|PCATCH, "pageout", 0);
+		(void) tsleep((caddr_t)&vm_pages_needed, PZERO|PCATCH,
+		    "pageout", hz);
 		goto again;
 	} else if (postatus == VM_PAGER_BAD)
 		panic("vm_pageout_cluster: VM_PAGER_BAD");




>BTW, if anyone needs Cyclades or A2232 serial cards under 1.2, I have ported
>the drivers to 1.2 now.  I'm sure they don't look good enough to be included
>in the tree, but they do work.

Again, I don't understand. -current has both PCI and ISA 
front-end drivers for Cyclades cards.


>No flames, please - we've gone through that many times enough.

Just puzzlement.  These particular shortcomings _are_  fixed in -current.
(aren't they?)