Subject: RE: UBC on a no swap system
To: 'cgd@broadcom.com' <cgd@broadcom.com>
From: Huy Vu <hvu@hyperchip.com>
List: tech-kern
Date: 06/17/2003 15:26:35
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C33506.5D821D30
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C33506.5D821D30"


------_=_NextPart_001_01C33506.5D821D30
Content-Type: text/plain;
	charset="iso-8859-1"

> FYI, when sending diffs, it's often more useful to send unidiffs ("cvs
> diff -up" / "diff -up") or context diffs ("cvs diff -c" / "diff -c").

Ok, here is unidiff.



------_=_NextPart_001_01C33506.5D821D30
Content-Type: text/html;
	charset="iso-8859-1"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>RE: UBC on a no swap system</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>&gt; FYI, when sending diffs, it's often more useful to send unidiffs (&quot;cvs</FONT>
<BR><FONT SIZE=2>&gt; diff -up&quot; / &quot;diff -up&quot;) or context diffs (&quot;cvs diff -c&quot; / &quot;diff -c&quot;).</FONT>
</P>

<P><FONT SIZE=2>Ok, here is unidiff.</FONT>
</P>

<P><FONT FACE="Arial" SIZE=2 COLOR="#000000"></FONT>&nbsp;

</BODY>
</HTML>
------_=_NextPart_001_01C33506.5D821D30--

------_=_NextPart_000_01C33506.5D821D30
Content-Type: application/octet-stream;
	name="uvm_fault.diff"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="uvm_fault.diff"

Index: uvm_fault.c=0A=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A=
RCS file: /cvsroot/netbsd-current/netbsd1.6/sys/uvm/uvm_fault.c,v=0A=
retrieving revision 1.2=0A=
retrieving revision 1.3=0A=
diff -u -p -r1.2 -r1.3=0A=
--- uvm_fault.c	17 Dec 2002 21:07:50 -0000	1.2=0A=
+++ uvm_fault.c	17 Dec 2002 23:16:08 -0000	1.3=0A=
@@ -535,7 +535,10 @@ uvm_fault(orig_map, vaddr, fault_type, a=0A=
 	vm_prot_t enter_prot, check_prot;=0A=
 	boolean_t wired, narrow, promote, locked, shadowed, wire_fault, =
cow_now;=0A=
 	int npages, nback, nforw, centeridx, error, lcv, gotpages;=0A=
-	vaddr_t startva, objaddr, currva, offset;=0A=
+#ifdef NEW_ALGORITHM=0A=
+    int t;=0A=
+#endif=0A=
+    vaddr_t startva, objaddr, currva, offset;=0A=
 	voff_t uoff;=0A=
 	paddr_t pa;=0A=
 	struct vm_amap *amap;=0A=
@@ -1160,7 +1163,15 @@ ReFault:=0A=
 			}=0A=
 			uvmfault_unlockall(&ufi, amap, uobj, oanon);=0A=
 			KASSERT(uvmexp.swpgonly <=3D uvmexp.swpages);=0A=
-			if (anon =3D=3D NULL || uvmexp.swpgonly =3D=3D uvmexp.swpages) {=0A=
+=0A=
+#ifdef NEW_ALGORITHM=0A=
+            t =3D uvmexp.active + uvmexp.inactive + uvmexp.free;=0A=
+			if (anon =3D=3D NULL || (uvmexp.swpgonly =3D=3D uvmexp.swpages =
&&=0A=
+                uvmexp.filepages <=3D ((t * uvmexp.filemin) >> 8) =
&&=0A=
+                uvmexp.execpages <=3D ((t * uvmexp.execmin) >> 8))) =
{=0A=
+#else=0A=
+			if (anon =3D=3D NULL || (uvmexp.swpgonly =3D=3D uvmexp.swpages)) =
{=0A=
+#endif=0A=
 				UVMHIST_LOG(maphist,=0A=
 				    "<- failed.  out of VM",0,0,0,0);=0A=
 				uvmexp.fltnoanon++;=0A=
@@ -1576,7 +1587,15 @@ Case2:=0A=
 			/* unlock and fail ... */=0A=
 			uvmfault_unlockall(&ufi, amap, uobj, NULL);=0A=
 			KASSERT(uvmexp.swpgonly <=3D uvmexp.swpages);=0A=
-			if (anon =3D=3D NULL || uvmexp.swpgonly =3D=3D uvmexp.swpages) {=0A=
+=0A=
+#ifdef NEW_ALGORITHM=0A=
+            t =3D uvmexp.active + uvmexp.inactive + uvmexp.free;=0A=
+			if (anon =3D=3D NULL || (uvmexp.swpgonly =3D=3D uvmexp.swpages =
&&=0A=
+                uvmexp.filepages <=3D ((t * uvmexp.filemin) >> 8) =
&&=0A=
+                uvmexp.execpages <=3D ((t * uvmexp.execmin) >> 8))) =
{=0A=
+#else=0A=
+			if (anon =3D=3D NULL || (uvmexp.swpgonly =3D=3D uvmexp.swpages)) =
{=0A=
+#endif=0A=
 				UVMHIST_LOG(maphist, "  promote: out of VM",=0A=
 				    0,0,0,0);=0A=
 				uvmexp.fltnoanon++;=0A=

------_=_NextPart_000_01C33506.5D821D30--