Module Name:    src
Committed By:   martin
Date:           Mon Apr 14 10:54:08 UTC 2014

Modified Files:
        src/sys/arch/sparc64/include: pmap.h vmparam.h

Log Message:
Implement and enable TOPDOWN_VM. From Chuck Silvers.


To generate a diff of this commit:
cvs rdiff -u -r1.57 -r1.58 src/sys/arch/sparc64/include/pmap.h
cvs rdiff -u -r1.33 -r1.34 src/sys/arch/sparc64/include/vmparam.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/sparc64/include/pmap.h
diff -u src/sys/arch/sparc64/include/pmap.h:1.57 src/sys/arch/sparc64/include/pmap.h:1.58
--- src/sys/arch/sparc64/include/pmap.h:1.57	Fri Dec 27 21:11:19 2013
+++ src/sys/arch/sparc64/include/pmap.h	Mon Apr 14 10:54:08 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.57 2013/12/27 21:11:19 palle Exp $	*/
+/*	$NetBSD: pmap.h,v 1.58 2014/04/14 10:54:08 martin Exp $	*/
 
 /*-
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -192,8 +192,27 @@ int pmap_count_wired(struct pmap *);
 void pmap_activate_pmap(struct pmap *);
 void pmap_update(struct pmap *);
 void pmap_bootstrap(u_long, u_long);
+
 /* make sure all page mappings are modulo 16K to prevent d$ aliasing */
-#define	PMAP_PREFER(pa, va, sz, td)	(*(va)+=(((*(va))^(pa))&(1<<(PGSHIFT))))
+#define	PMAP_PREFER(fo, va, sz, td)	pmap_prefer((fo), (va), (td))
+static inline void
+pmap_prefer(vaddr_t fo, vaddr_t *va, int td)
+{
+	vaddr_t newva;
+	vaddr_t m;
+
+	m = 2 * PAGE_SIZE;
+	newva = (*va & ~(m - 1)) | (fo & (m - 1));
+
+	if (td) {
+		if (newva > *va)
+			newva -= m;
+	} else {
+		if (newva < *va)
+			newva += m;
+	}
+	*va = newva;
+}
 
 #define	PMAP_GROWKERNEL         /* turn on pmap_growkernel interface */
 #define PMAP_NEED_PROCWR

Index: src/sys/arch/sparc64/include/vmparam.h
diff -u src/sys/arch/sparc64/include/vmparam.h:1.33 src/sys/arch/sparc64/include/vmparam.h:1.34
--- src/sys/arch/sparc64/include/vmparam.h:1.33	Thu Jan  3 09:40:55 2013
+++ src/sys/arch/sparc64/include/vmparam.h	Mon Apr 14 10:54:08 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: vmparam.h,v 1.33 2013/01/03 09:40:55 martin Exp $ */
+/*	$NetBSD: vmparam.h,v 1.34 2014/04/14 10:54:08 martin Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -47,6 +47,8 @@
 #ifndef VMPARAM_H
 #define VMPARAM_H
 
+#define __USE_TOPDOWN_VM
+
 /*
  * We use 8K VM pages on the Sun4U.  Override the PAGE_* definitions
  * to be compile-time constants.

Reply via email to