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:
alc 2015-09-26 07:18:05 +00:00
parent 707f180e64
commit 57f2addb31
6 changed files with 6 additions and 6 deletions

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);
}