PERFORCE change 136141 for review

Kip Macy kmacy at FreeBSD.org
Mon Feb 25 04:12:54 UTC 2008


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

Change 136141 by kmacy at pandemonium:kmacy:xen31 on 2008/02/25 04:12:29

	increase logging - log SIGSEGV as well

Affected files ...

.. //depot/projects/xen31/sys/i386/i386/trap.c#10 edit

Differences ...

==== //depot/projects/xen31/sys/i386/i386/trap.c#10 (text+ko) ====

@@ -745,7 +745,7 @@
 {
 	vm_offset_t va;
 	struct vmspace *vm = NULL;
-	vm_map_t map;
+	vm_map_t map = NULL;
 	int rv = 0;
 	vm_prot_t ftype = 0;
 	struct thread *td = curthread;
@@ -834,10 +834,30 @@
 		return (-1);
 	}
 #ifdef XEN
-	if (rv == KERN_PROTECTION_FAILURE)
-		log(LOG_ERR, "SIGBUS: p=%s va=0x%x ftype=0x%x eip=0x%x\n", p->p_comm, va, ftype, frame->tf_eip);
+	if (rv) {
+		pt_entry_t pteval = 0;
+
+		if (PTD[va >> PDRSHIFT])
+			pteval = *(vtopte(va));
+		if (rv == KERN_PROTECTION_FAILURE) {
+			
+			CTR5(KTR_PMAP, "SIGBUS: p=%s va=0x%08x ftype=0x%x eip=0x%08x tf_err=0x%x *pte=%08x",
+			    p->p_comm, va, ftype, frame->tf_eip, (u_long)(pteval & 0xffffffff));
+			CTR4(KTR_PMAP,"\t pte=0x%08x map=%p pmap=%p err=0x%x",
+			    vtopte(va), map, &p->p_vmspace->vm_pmap, frame->tf_err);
+			log(LOG_ERR, "SIGBUS: p=%s va=0x%x ftype=0x%x eip=0x%x err=%d *pte=0x%016jx\n",
+			    p->p_comm, va, ftype, frame->tf_eip, frame->tf_err, pteval);
+		} else {
+			CTR5(KTR_PMAP, "SIGSEGV: p=%s va=0x%08x ftype=0x%x eip=0x%08x tf_err=0x%x *pte=%08x",
+			    p->p_comm, va, ftype, frame->tf_eip, (u_long)(pteval & 0xffffffff));
+			CTR4(KTR_PMAP,"\t pte=0x%08x map=%p pmap=%p err=0x%x",
+			    vtopte(va), map, &p->p_vmspace->vm_pmap, frame->tf_err);
+			log(LOG_ERR, "SIGSEGV: p=%s va=0x%x ftype=0x%x eip=0x%x err=%d *pte=0x%016jx\n",
+			    p->p_comm, va, ftype, frame->tf_eip, frame->tf_err, pteval);
+		}
+		
+	}
 #endif
-	    
 	return((rv == KERN_PROTECTION_FAILURE) ? SIGBUS : SIGSEGV);
 }
 


More information about the p4-projects mailing list