Module Name:    src
Committed By:   uebayasi
Date:           Tue Feb 23 15:38:30 UTC 2010

Modified Files:
        src/sys/uvm [uebayasi-xip]: uvm_page.c uvm_page.h

Log Message:
Put back vm_page::phys_addr for now, because removing it involves some random
parts in the tree.  I'll revisit this after merging the branch.


To generate a diff of this commit:
cvs rdiff -u -r1.153.2.14 -r1.153.2.15 src/sys/uvm/uvm_page.c
cvs rdiff -u -r1.59.2.14 -r1.59.2.15 src/sys/uvm/uvm_page.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/uvm/uvm_page.c
diff -u src/sys/uvm/uvm_page.c:1.153.2.14 src/sys/uvm/uvm_page.c:1.153.2.15
--- src/sys/uvm/uvm_page.c:1.153.2.14	Tue Feb 23 08:46:17 2010
+++ src/sys/uvm/uvm_page.c	Tue Feb 23 15:38:30 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_page.c,v 1.153.2.14 2010/02/23 08:46:17 uebayasi Exp $	*/
+/*	$NetBSD: uvm_page.c,v 1.153.2.15 2010/02/23 15:38:30 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.14 2010/02/23 08:46:17 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_page.c,v 1.153.2.15 2010/02/23 15:38:30 uebayasi Exp $");
 
 #include "opt_ddb.h"
 #include "opt_uvmhist.h"
@@ -452,6 +452,9 @@
 		/* init and free vm_pages (we've already zeroed them) */
 		paddr = ptoa(vm_physmem[lcv].start);
 		for (i = 0 ; i < n ; i++, paddr += PAGE_SIZE) {
+#if 1
+			vm_physmem[lcv].pgs[i].phys_addr = paddr;
+#endif
 #ifdef __HAVE_VM_PAGE_MD
 			VM_MDPAGE_INIT(&vm_physmem[lcv].pgs[i].mdpage, paddr);
 #endif
@@ -835,10 +838,13 @@
 			printf("\tignoring 0x%lx -> 0x%lx\n", start, end);
 			return;
 		}
-		/* zero data, init free_list, and free pages */
+		/* zero data, init phys_addr, free_list, and free pages */
 		memset(pgs, 0, sizeof(struct vm_page) * npages);
 		for (lcv = 0, paddr = ptoa(start) ;
 				 lcv < npages ; lcv++, paddr += PAGE_SIZE) {
+#if 1
+			pgs[lcv].phys_addr = paddr;
+#endif
 			pgs[lcv].free_list = free_list;
 			if (atop(paddr) >= avail_start &&
 			    atop(paddr) <= avail_end)
@@ -1142,18 +1148,23 @@
 paddr_t
 uvm_vm_page_to_phys(const struct vm_page *pg)
 {
-	const struct vm_physseg *seg;
-	int psi;
 
 #ifdef DEVICE_PAGE
 	if (uvm_pageisdevice_p(pg)) {
 		return VM_PAGE_DEVICE_TO_PHYS(pg);
 	}
 #endif
+#if 1
+	return pg->phys_addr;
+#else
+	const struct vm_physseg *seg;
+	int psi;
+
 	psi = VM_PHYSSEG_FIND(vm_physmem, vm_nphysmem, VM_PHYSSEG_OP_PG, 0, pg, NULL);
 	KASSERT(psi != -1);
 	seg = &vm_physmem[psi];
 	return (seg->start + pg - seg->pgs) * PAGE_SIZE;
+#endif
 }
 
 

Index: src/sys/uvm/uvm_page.h
diff -u src/sys/uvm/uvm_page.h:1.59.2.14 src/sys/uvm/uvm_page.h:1.59.2.15
--- src/sys/uvm/uvm_page.h:1.59.2.14	Tue Feb 23 08:46:17 2010
+++ src/sys/uvm/uvm_page.h	Tue Feb 23 15:38:30 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_page.h,v 1.59.2.14 2010/02/23 08:46:17 uebayasi Exp $	*/
+/*	$NetBSD: uvm_page.h,v 1.59.2.15 2010/02/23 15:38:30 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -142,6 +142,10 @@
 						 * to modify: [O _and_ P] */
 	uint16_t		wire_count;	/* wired down map refs [P] */
 	uint16_t		pqflags;	/* page queue flags [P] */
+#if 1
+	paddr_t			phys_addr;	/* physical address of page */
+#endif
+
 
 #ifdef __HAVE_VM_PAGE_MD
 	struct vm_page_md	mdpage;		/* pmap-specific data */

Reply via email to