Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/pmap.c
Show First 20 Lines • Show All 1,703 Lines • ▼ Show 20 Lines | if (pde & PG_PS) { | ||||
((pte & PG_RW) || (prot & VM_PROT_WRITE) == 0)) { | ((pte & PG_RW) || (prot & VM_PROT_WRITE) == 0)) { | ||||
if (vm_page_pa_tryrelock(pmap, pte & PG_FRAME, | if (vm_page_pa_tryrelock(pmap, pte & PG_FRAME, | ||||
&pa)) | &pa)) | ||||
goto retry; | goto retry; | ||||
m = PHYS_TO_VM_PAGE(pa); | m = PHYS_TO_VM_PAGE(pa); | ||||
} | } | ||||
} | } | ||||
if (m != NULL) | if (m != NULL) | ||||
vm_page_hold(m); | vm_page_wire(m); | ||||
} | } | ||||
PA_UNLOCK_COND(pa); | PA_UNLOCK_COND(pa); | ||||
PMAP_UNLOCK(pmap); | PMAP_UNLOCK(pmap); | ||||
return (m); | return (m); | ||||
} | } | ||||
/*************************************************** | /*************************************************** | ||||
* Low level mapping routines..... | * Low level mapping routines..... | ||||
▲ Show 20 Lines • Show All 4,187 Lines • ▼ Show 20 Lines | if (p->p_vmspace) { | ||||
pd_entry_t *pde; | pd_entry_t *pde; | ||||
pt_entry_t *pte; | pt_entry_t *pte; | ||||
vm_offset_t base = i << PDRSHIFT; | vm_offset_t base = i << PDRSHIFT; | ||||
pde = &pmap->pm_pdir[i]; | pde = &pmap->pm_pdir[i]; | ||||
if (pde && pmap_pde_v(pde)) { | if (pde && pmap_pde_v(pde)) { | ||||
for (j = 0; j < NPTEPG; j++) { | for (j = 0; j < NPTEPG; j++) { | ||||
vm_offset_t va = base + (j << PAGE_SHIFT); | vm_offset_t va = base + (j << PAGE_SHIFT); | ||||
if (va >= (vm_offset_t) VM_MIN_KERNEL_ADDRESS) { | if (va >= (vm_offset_t) VM_MIN_KERNEL_ADDRESS) { | ||||
kib: I think this is dead code. Remove it as pre-cleanup ? | |||||
Done Inline ActionsI think the whole routine is effectively dead code. It does not declare a return value. It certainly does not compile after the 4/4 split. Do you think it is worth preserving at all? If so I will remove the dead code, fix style and compilation issues. markj: I think the whole routine is effectively dead code. It does not declare a return value. It… | |||||
Not Done Inline ActionsYes, exactly, I mean pmap_pid_dump() as a whole. It is covered by PMAP_DEBUG which does not appear anywhere else. kib: Yes, exactly, I mean pmap_pid_dump() as a whole. It is covered by PMAP_DEBUG which does not… | |||||
Done Inline ActionsAh, I thought you were referring only to the VM_MIN_KERNEL_ADDRESS fragment. I will simply remove this function, then. markj: Ah, I thought you were referring only to the VM_MIN_KERNEL_ADDRESS fragment. I will simply… | |||||
if (index) { | if (index) { | ||||
index = 0; | index = 0; | ||||
printf("\n"); | printf("\n"); | ||||
} | } | ||||
sx_sunlock(&allproc_lock); | sx_sunlock(&allproc_lock); | ||||
return (npte); | return (npte); | ||||
} | } | ||||
pte = pmap_pte(pmap, va); | pte = pmap_pte(pmap, va); | ||||
if (pte && pmap_pte_v(pte)) { | if (pte && pmap_pte_v(pte)) { | ||||
pt_entry_t pa; | pt_entry_t pa; | ||||
vm_page_t m; | vm_page_t m; | ||||
pa = *pte; | pa = *pte; | ||||
m = PHYS_TO_VM_PAGE(pa & PG_FRAME); | m = PHYS_TO_VM_PAGE(pa & PG_FRAME); | ||||
printf("va: 0x%x, pt: 0x%x, h: %d, w: %d, f: 0x%x", | printf("va: 0x%x, pt: 0x%x, w: %d, f: 0x%x", | ||||
va, pa, m->hold_count, m->wire_count, m->flags); | va, pa, m->wire_count, m->flags); | ||||
npte++; | npte++; | ||||
index++; | index++; | ||||
if (index >= 2) { | if (index >= 2) { | ||||
index = 0; | index = 0; | ||||
printf("\n"); | printf("\n"); | ||||
} else { | } else { | ||||
printf(" "); | printf(" "); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 261 Lines • Show Last 20 Lines |
I think this is dead code. Remove it as pre-cleanup ?