Exploit r288122 to address a cosmetic issue. Since PV chunk pages don't
belong to a vm object, they can't be paged out. Since they can't be paged out, they are never enqueued in a paging queue. Nonetheless, passing PQ_INACTIVE to vm_page_unwire() creates the appearance that these pages are being enqueued in the inactive queue. As of r288122, we can avoid this false impression by passing PQ_NONE. Submitted by: kmacy (an earlier version) Differential Revision: https://reviews.freebsd.org/D1674
This commit is contained in:
parent
707f180e64
commit
57f2addb31
@ -2860,7 +2860,7 @@ free_pv_chunk(struct pv_chunk *pc)
|
||||
/* entire chunk is free, return it */
|
||||
m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc));
|
||||
dump_drop_page(m->phys_addr);
|
||||
vm_page_unwire(m, PQ_INACTIVE);
|
||||
vm_page_unwire(m, PQ_NONE);
|
||||
vm_page_free(m);
|
||||
}
|
||||
|
||||
|
@ -2866,7 +2866,7 @@ free_pv_chunk(struct pv_chunk *pc)
|
||||
/* entire chunk is free, return it */
|
||||
m = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)pc));
|
||||
pmap_qremove((vm_offset_t)pc, 1);
|
||||
vm_page_unwire(m, PQ_INACTIVE);
|
||||
vm_page_unwire(m, PQ_NONE);
|
||||
vm_page_free(m);
|
||||
pmap_pte2list_free(&pv_vafree, (vm_offset_t)pc);
|
||||
}
|
||||
|
@ -4292,7 +4292,7 @@ pmap_free_pv_chunk(struct pv_chunk *pc)
|
||||
/* entire chunk is free, return it */
|
||||
m = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)pc));
|
||||
pmap_qremove((vm_offset_t)pc, 1);
|
||||
vm_page_unwire(m, PQ_INACTIVE);
|
||||
vm_page_unwire(m, PQ_NONE);
|
||||
vm_page_free(m);
|
||||
pmap_ptelist_free(&pv_vafree, (vm_offset_t)pc);
|
||||
|
||||
|
@ -1517,7 +1517,7 @@ free_pv_chunk(struct pv_chunk *pc)
|
||||
/* entire chunk is free, return it */
|
||||
m = PHYS_TO_VM_PAGE(DMAP_TO_PHYS((vm_offset_t)pc));
|
||||
dump_drop_page(m->phys_addr);
|
||||
vm_page_unwire(m, PQ_INACTIVE);
|
||||
vm_page_unwire(m, PQ_NONE);
|
||||
vm_page_free(m);
|
||||
}
|
||||
|
||||
|
@ -2312,7 +2312,7 @@ free_pv_chunk(struct pv_chunk *pc)
|
||||
/* entire chunk is free, return it */
|
||||
m = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)pc));
|
||||
pmap_qremove((vm_offset_t)pc, 1);
|
||||
vm_page_unwire(m, PQ_INACTIVE);
|
||||
vm_page_unwire(m, PQ_NONE);
|
||||
vm_page_free(m);
|
||||
pmap_ptelist_free(&pv_vafree, (vm_offset_t)pc);
|
||||
}
|
||||
|
@ -1527,7 +1527,7 @@ free_pv_chunk(struct pv_chunk *pc)
|
||||
PV_STAT(pc_chunk_frees++);
|
||||
/* entire chunk is free, return it */
|
||||
m = PHYS_TO_VM_PAGE(MIPS_DIRECT_TO_PHYS((vm_offset_t)pc));
|
||||
vm_page_unwire(m, PQ_INACTIVE);
|
||||
vm_page_unwire(m, PQ_NONE);
|
||||
vm_page_free(m);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user