/* uvm_page.c */ /* * uvm_pagealloc_strat: allocate vm_page from a particular free list. * * => return null if no pages free * => wake up pagedaemon if number of free pages drops below low water mark * => if obj != NULL, obj must be locked (to put in obj's tree) * => if anon != NULL, anon must be locked (to put in anon) * => only one of obj or anon can be non-null * => caller must activate/deactivate page if it is not wired. * => free_list is ignored if strat == UVM_PGA_STRAT_NORMAL. * => policy decision: it is more important to pull a page off of the * appropriate priority free list than it is to get a zero'd or * unknown contents page. This is because we live with the * consequences of a bad free list decision for the entire * lifetime of the page, e.g. if the page comes from memory that * is slower to access. */