Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_fault.c
Show First 20 Lines • Show All 149 Lines • ▼ Show 20 Lines | SYSCTL_INT(_vm, OID_AUTO, pfault_oom_wait, CTLFLAG_RWTUN, | ||||
"Number of seconds to wait for free pages before retrying " | "Number of seconds to wait for free pages before retrying " | ||||
"the page fault handler"); | "the page fault handler"); | ||||
static inline void | static inline void | ||||
release_page(struct faultstate *fs) | release_page(struct faultstate *fs) | ||||
{ | { | ||||
if (fs->m != NULL) { | if (fs->m != NULL) { | ||||
vm_page_xunbusy(fs->m); | /* | ||||
* fs->m's object lock might not be held, so the page must be | |||||
* kept busy until we are done with it. | |||||
*/ | |||||
vm_page_lock(fs->m); | vm_page_lock(fs->m); | ||||
vm_page_deactivate(fs->m); | vm_page_deactivate(fs->m); | ||||
vm_page_unlock(fs->m); | vm_page_unlock(fs->m); | ||||
vm_page_xunbusy(fs->m); | |||||
fs->m = NULL; | fs->m = NULL; | ||||
} | } | ||||
} | } | ||||
static inline void | static inline void | ||||
unlock_map(struct faultstate *fs) | unlock_map(struct faultstate *fs) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 1,755 Lines • Show Last 20 Lines |