aa488cdf00
before returning the pages to the free pool. Otherwise, under Xen, a page which still has a writable mapping could be allocated for a PDP by another CPU and the hypervisor would refuse it (this is PR port-xen/45975). For this, move the pmap_kremove() calls inside uvm_km_pgremove_intrsafe(), and do pmap_kremove()/uvm_pagefree() in batch of (at most) 16 entries (as suggested by Chuck Silvers on tech-kern@, see also http://mail-index.netbsd.org/tech-kern/2012/02/17/msg012727.html and followups). |
||
---|---|---|
.. | ||
files.uvm | ||
Makefile | ||
uvm_amap.c | ||
uvm_amap.h | ||
uvm_anon.c | ||
uvm_anon.h | ||
uvm_aobj.c | ||
uvm_aobj.h | ||
uvm_bio.c | ||
uvm_coredump.c | ||
uvm_ddb.h | ||
uvm_device.c | ||
uvm_device.h | ||
uvm_emap.c | ||
uvm_extern.h | ||
uvm_fault_i.h | ||
uvm_fault.c | ||
uvm_fault.h | ||
uvm_glue.c | ||
uvm_glue.h | ||
uvm_init.c | ||
uvm_io.c | ||
uvm_km.c | ||
uvm_km.h | ||
uvm_kmguard.c | ||
uvm_kmguard.h | ||
uvm_loan.c | ||
uvm_loan.h | ||
uvm_map.c | ||
uvm_map.h | ||
uvm_meter.c | ||
uvm_mmap.c | ||
uvm_mremap.c | ||
uvm_object.c | ||
uvm_object.h | ||
uvm_page.c | ||
uvm_page.h | ||
uvm_pager.c | ||
uvm_pager.h | ||
uvm_param.h | ||
uvm_pdaemon.c | ||
uvm_pdaemon.h | ||
uvm_pdpolicy_clock.c | ||
uvm_pdpolicy_clockpro.c | ||
uvm_pdpolicy_impl.h | ||
uvm_pdpolicy.h | ||
uvm_pglist.c | ||
uvm_pglist.h | ||
uvm_pmap.h | ||
uvm_prot.h | ||
uvm_readahead.c | ||
uvm_readahead.h | ||
uvm_stat.c | ||
uvm_stat.h | ||
uvm_swap.c | ||
uvm_swap.h | ||
uvm_swapstub.c | ||
uvm_unix.c | ||
uvm_user.c | ||
uvm_vnode.c | ||
uvm.h |