Module Name: src Committed By: mlelstv Date: Sun Feb 7 23:25:07 UTC 2010
Modified Files: src/sys/uvm: uvm_fault.c Log Message: Make UVMHIST build again. To generate a diff of this commit: cvs rdiff -u -r1.163 -r1.164 src/sys/uvm/uvm_fault.c 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_fault.c diff -u src/sys/uvm/uvm_fault.c:1.163 src/sys/uvm/uvm_fault.c:1.164 --- src/sys/uvm/uvm_fault.c:1.163 Fri Feb 5 02:27:15 2010 +++ src/sys/uvm/uvm_fault.c Sun Feb 7 23:25:07 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_fault.c,v 1.163 2010/02/05 02:27:15 uebayasi Exp $ */ +/* $NetBSD: uvm_fault.c,v 1.164 2010/02/07 23:25:07 mlelstv Exp $ */ /* * @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.163 2010/02/05 02:27:15 uebayasi Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.164 2010/02/07 23:25:07 mlelstv Exp $"); #include "opt_uvmhist.h" @@ -848,13 +848,14 @@ struct uvm_object *uobj; vm_prot_t check_prot; int nback, nforw; + UVMHIST_FUNC("uvm_fault_check"); UVMHIST_CALLED(maphist); /* * lookup and lock the maps */ if (uvmfault_lookup(ufi, false) == false) { - UVMHIST_LOG(maphist, "<- no mapping @ 0x%x", vaddr, 0,0,0); + UVMHIST_LOG(maphist, "<- no mapping @ 0x%x", ufi->orig_rvaddr, 0,0,0); return EFAULT; } /* locked: maps(read) */ @@ -1059,6 +1060,7 @@ int lcv; vaddr_t currva; bool shadowed; + UVMHIST_FUNC("uvm_fault_upper_lookup"); UVMHIST_CALLED(maphist); /* locked: maps(read), amap(if there) */ KASSERT(amap == NULL || mutex_owned(&amap->am_l)); @@ -1111,7 +1113,7 @@ KASSERT(amap == NULL || mutex_owned(&amap->am_l)); /* (shadowed == true) if there is an anon at the faulting address */ UVMHIST_LOG(maphist, " shadowed=%d, will_get=%d", shadowed, - (uobj && shadowed != false),0,0); + (ufi->entry->object.uvm_obj && shadowed != false),0,0); /* * note that if we are really short of RAM we could sleep in the above @@ -1129,6 +1131,7 @@ struct uvm_faultinfo *ufi, struct uvm_faultctx *flt, vaddr_t currva, struct vm_page *pg, bool readonly) { + UVMHIST_FUNC("uvm_fault_upper_neighbor"); UVMHIST_CALLED(maphist); /* ignore loaned and busy pages */ if (pg == NULL || pg->loan_count != 0 || @@ -1269,6 +1272,7 @@ struct uvm_object *uobj = ufi->entry->object.uvm_obj; int lcv, gotpages; vaddr_t currva; + UVMHIST_FUNC("uvm_fault_lower_lookup"); UVMHIST_CALLED(maphist); mutex_enter(&uobj->vmobjlock); /* locked (!shadowed): maps(read), amap (if there), uobj */ @@ -1330,6 +1334,7 @@ struct uvm_faultinfo *ufi, struct uvm_faultctx *flt, vaddr_t currva, struct vm_page *pg, bool readonly) { + UVMHIST_FUNC("uvm_fault_lower_neighor"); UVMHIST_CALLED(maphist); /* * calling pgo_get with PGO_LOCKED returns us pages which @@ -1381,6 +1386,7 @@ struct vm_anon * const anon = anons[flt->centeridx]; struct uvm_object *uobj; int error; + UVMHIST_FUNC("uvm_fault_upper"); UVMHIST_CALLED(maphist); /* locked: maps(read), amap */ KASSERT(mutex_owned(&amap->am_l)); @@ -1523,6 +1529,7 @@ struct vm_anon * const oanon = anon; struct vm_page *pg; int error; + UVMHIST_FUNC("uvm_fault_upper_promote"); UVMHIST_CALLED(maphist); UVMHIST_LOG(maphist, " case 1B: COW fault",0,0,0,0); uvmexp.flt_acow++; @@ -1580,6 +1587,7 @@ struct vm_anon *oanon) { struct vm_amap * const amap = ufi->entry->aref.ar_amap; + UVMHIST_FUNC("uvm_fault_upper_enter"); UVMHIST_CALLED(maphist); /* locked: maps(read), amap, oanon, anon (if different from oanon) */ KASSERT(mutex_owned(&amap->am_l)); @@ -1672,6 +1680,7 @@ #endif bool promote; int error; + UVMHIST_FUNC("uvm_fault_lower1"); UVMHIST_CALLED(maphist); /* * handle case 2: faulting on backing object or zero fill @@ -1760,6 +1769,7 @@ int gotpages; int error; voff_t uoff; + UVMHIST_FUNC("uvm_fault_lower_io"); UVMHIST_CALLED(maphist); /* update rusage counters */ curlwp->l_ru.ru_majflt++; @@ -1775,7 +1785,12 @@ 0, flt->access_type & MASK(ufi->entry), ufi->entry->advice, PGO_SYNCIO); /* locked: pg(if no error) */ +#if 0 KASSERT(error != 0 || (pg->flags & PG_BUSY) != 0); +#else + if (error == 0) + KASSERT((pg->flags & PG_BUSY) != 0); +#endif /* * recover from I/O @@ -1920,6 +1935,7 @@ struct vm_amap * const amap = ufi->entry->aref.ar_amap; struct vm_page *pg; struct vm_page *uobjpage = *ruobjpage; + UVMHIST_FUNC("uvm_fault_lower_direct_loan"); UVMHIST_CALLED(maphist); if (!flt->cow_now) { /* read fault: cap the protection at readonly */ @@ -1963,6 +1979,7 @@ struct vm_anon *anon; struct vm_page *pg; int error; + UVMHIST_FUNC("uvm_fault_lower_promote"); UVMHIST_CALLED(maphist); /* * if we are going to promote the data to an anon we @@ -2045,6 +2062,7 @@ { struct vm_amap * const amap = ufi->entry->aref.ar_amap; int error; + UVMHIST_FUNC("uvm_fault_lower_enter"); UVMHIST_CALLED(maphist); /* * locked: @@ -2065,8 +2083,8 @@ */ UVMHIST_LOG(maphist, - " MAPPING: case2: pm=0x%x, va=0x%x, pg=0x%x, promote=%d", - ufi->orig_map->pmap, ufi->orig_rvaddr, pg, promote); + " MAPPING: case2: pm=0x%x, va=0x%x, pg=0x%x, promote=XXX", + ufi->orig_map->pmap, ufi->orig_rvaddr, pg, 0); KASSERT((flt->access_type & VM_PROT_WRITE) == 0 || (pg->flags & PG_RDONLY) == 0); if (pmap_enter(ufi->orig_map->pmap, ufi->orig_rvaddr, VM_PAGE_TO_PHYS(pg), @@ -2114,6 +2132,7 @@ struct uvm_object *uobj, struct vm_anon *anon, struct vm_page *pg) { struct vm_amap * const amap = ufi->entry->aref.ar_amap; + UVMHIST_FUNC("uvm_fault_lower_done"); UVMHIST_CALLED(maphist); mutex_enter(&uvm_pageqlock); if (flt->wire_paging) {