Patch from chuq for uvm r/w map oscillation bug.
Fixes the XalphaNetBSD slowdown.
This commit is contained in:
parent
ef0cc9a3f4
commit
0f2e70dfa4
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: uvm_device.c,v 1.16 1999/04/08 10:26:21 drochner Exp $ */
|
||||
/* $NetBSD: uvm_device.c,v 1.17 1999/10/24 16:29:23 ross Exp $ */
|
||||
|
||||
/*
|
||||
*
|
||||
@ -415,6 +415,7 @@ udv_fault(ufi, vaddr, pps, npages, centeridx, fault_type, access_type, flags)
|
||||
int lcv, retval, mdpgno;
|
||||
dev_t device;
|
||||
int (*mapfn) __P((dev_t, int, int));
|
||||
vm_prot_t mapprot;
|
||||
UVMHIST_FUNC("udv_fault"); UVMHIST_CALLED(maphist);
|
||||
UVMHIST_LOG(maphist," flags=%d", flags,0,0,0);
|
||||
|
||||
@ -473,11 +474,12 @@ udv_fault(ufi, vaddr, pps, npages, centeridx, fault_type, access_type, flags)
|
||||
break;
|
||||
}
|
||||
paddr = pmap_phys_address(mdpgno);
|
||||
mapprot = ufi->entry->protection;
|
||||
UVMHIST_LOG(maphist,
|
||||
" MAPPING: device: pm=0x%x, va=0x%x, pa=0x%x, at=%d",
|
||||
ufi->orig_map->pmap, curr_va, (int)paddr, access_type);
|
||||
pmap_enter(ufi->orig_map->pmap, curr_va, paddr, access_type, 0,
|
||||
access_type);
|
||||
ufi->orig_map->pmap, curr_va, (int)paddr, mapprot);
|
||||
pmap_enter(ufi->orig_map->pmap, curr_va, paddr, mapprot, 0,
|
||||
mapprot);
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user