PERFORCE change 136478 for review

Kip Macy kmacy at FreeBSD.org
Fri Feb 29 19:48:22 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=136478

Change 136478 by kmacy at pandemonium:kmacy:xen31 on 2008/02/29 05:39:38

	clean up logging
	remove vestigial wrpt reference in pmap_clear_modify

Affected files ...

.. //depot/projects/xen31/sys/i386/xen/pmap.c#41 edit

Differences ...

==== //depot/projects/xen31/sys/i386/xen/pmap.c#41 (text+ko) ====

@@ -1038,8 +1038,8 @@
 		newpf = *pde & PG_FRAME;
 		if ((*PMAP1 & PG_FRAME) != newpf) {
 			PT_SET_MA(PADDR1, newpf | PG_V | PG_A | PG_M);
-			CTR3(KTR_PMAP, "pmap_pte_quick: pmap=%p va=0x%x newpte=0x%jx",
-			    pmap, va, *PMAP1);
+			CTR3(KTR_PMAP, "pmap_pte_quick: pmap=%p va=0x%x newpte=0x%08x",
+			    pmap, va, (u_long)*PMAP1);
 			
 #ifdef SMP
 			PMAP1cpu = PCPU_GET(cpuid);
@@ -2194,8 +2194,8 @@
 	pt_entry_t oldpte;
 	vm_page_t m;
 
-	CTR3(KTR_PMAP, "pmap_remove_pte: pmap=%p *ptq=0x%jx va=0x%x",
-	    pmap, *ptq, va);
+	CTR3(KTR_PMAP, "pmap_remove_pte: pmap=%p *ptq=0x%x va=0x%x",
+	    pmap, (u_long)*ptq, va);
 	
 	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
 	PMAP_LOCK_ASSERT(pmap, MA_OWNED);
@@ -2594,8 +2594,8 @@
 	vm_page_t mpte, om;
 	boolean_t invlva;
 
-	CTR6(KTR_PMAP, "pmap_enter: pmap=%08p va=0x%08x access=0x%x m=%p prot=0x%x wired=%d",
-	    pmap, va, access, m, prot, wired);
+	CTR6(KTR_PMAP, "pmap_enter: pmap=%08p va=0x%08x access=0x%x ma=0x%08x prot=0x%x wired=%d",
+	    pmap, va, access, xpmap_ptom(VM_PAGE_TO_PHYS(m)), prot, wired);
 	va = trunc_page(va);
 #ifdef PMAP_DIAGNOSTIC
 	if (va > VM_MAX_KERNEL_ADDRESS)
@@ -3158,8 +3158,6 @@
 	vm_offset_t end_addr = src_addr + len;
 	vm_offset_t pdnxt;
 
-	return;
-	
 	if (dst_addr != src_addr)
 		return;
 
@@ -3235,11 +3233,15 @@
 					 * accessed (referenced) bits
 					 * during the copy.
 					 */
-					PT_SET_VA_MA(dst_pte, ptetemp & ~(PG_W | PG_M | PG_A), FALSE);
+					KASSERT(ptetemp != 0, ("src_pte not set"));
+					PT_SET_VA_MA(dst_pte, ptetemp & ~(PG_W | PG_M | PG_A), TRUE /* XXX debug */);
+					KASSERT(*dst_pte == (ptetemp & ~(PG_W | PG_M | PG_A)),
+					    ("no pmap copy expected: 0x%jx saw: 0x%jx",
+						ptetemp &  ~(PG_W | PG_M | PG_A), *dst_pte));
 					dst_pmap->pm_stats.resident_count++;
 	 			} else {
 					free = NULL;
-					if (pmap_unwire_pte_hold( dst_pmap,
+					if (pmap_unwire_pte_hold(dst_pmap,
 					    dstmpte, &free)) {
 						pmap_invalidate_page(dst_pmap,
 						    addr);
@@ -3254,8 +3256,6 @@
 		}
 	}
 	PT_UPDATES_FLUSH();
-	if (*PMAP1)
-		PT_SET_VA_MA(PMAP1, 0, TRUE);
 	sched_unpin();
 	vm_page_unlock_queues();
 	PMAP_UNLOCK(src_pmap);
@@ -3742,7 +3742,7 @@
 			 * in size, PG_M is among the least significant
 			 * 32 bits. 
 			 */
-			atomic_clear_int((u_int *)pte, PG_M);
+			PT_SET_VA_MA(pte, *pte & ~PG_M, FALSE);
 			pmap_invalidate_page(pmap, pv->pv_va);
 		}
 		PMAP_UNLOCK(pmap);


More information about the p4-projects mailing list