Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sys/vmmeter.h
Show First 20 Lines • Show All 125 Lines • ▼ Show 20 Lines | #define VM_METER_NCOUNTERS \ | ||||
/* | /* | ||||
* Distribution of page usages. | * Distribution of page usages. | ||||
*/ | */ | ||||
u_int v_page_size; /* (c) page size in bytes */ | u_int v_page_size; /* (c) page size in bytes */ | ||||
u_int v_page_count; /* (c) total number of pages in system */ | u_int v_page_count; /* (c) total number of pages in system */ | ||||
u_int v_free_reserved; /* (c) pages reserved for deadlock */ | u_int v_free_reserved; /* (c) pages reserved for deadlock */ | ||||
u_int v_free_target; /* (c) pages desired free */ | u_int v_free_target; /* (c) pages desired free */ | ||||
u_int v_free_min; /* (c) pages desired free */ | u_int v_free_min; /* (c) pages desired free */ | ||||
u_int v_free_count; /* (f) pages free */ | |||||
u_int v_inactive_target; /* (c) pages desired inactive */ | u_int v_inactive_target; /* (c) pages desired inactive */ | ||||
u_int v_pageout_free_min; /* (c) min pages reserved for kernel */ | u_int v_pageout_free_min; /* (c) min pages reserved for kernel */ | ||||
u_int v_interrupt_free_min; /* (c) reserved pages for int code */ | u_int v_interrupt_free_min; /* (c) reserved pages for int code */ | ||||
u_int v_free_severe; /* (c) severe page depletion point */ | u_int v_free_severe; /* (c) severe page depletion point */ | ||||
u_int v_wire_count VMMETER_ALIGNED; /* (a) pages wired down */ | u_int v_wire_count VMMETER_ALIGNED; /* (a) pages wired down */ | ||||
u_int v_active_count VMMETER_ALIGNED; /* (a) pages active */ | u_int v_active_count VMMETER_ALIGNED; /* (a) pages active */ | ||||
u_int v_inactive_count VMMETER_ALIGNED; /* (a) pages inactive */ | u_int v_inactive_count VMMETER_ALIGNED; /* (a) pages inactive */ | ||||
u_int v_laundry_count VMMETER_ALIGNED; /* (a) pages eligible for | u_int v_laundry_count VMMETER_ALIGNED; /* (a) pages eligible for | ||||
laundering */ | laundering */ | ||||
u_int v_free_count VMMETER_ALIGNED; /* (a) pages free */ | |||||
alc: The lock annotation should still be "(f)".
| |||||
}; | }; | ||||
#endif /* _KERNEL || _WANT_VMMETER */ | #endif /* _KERNEL || _WANT_VMMETER */ | ||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
extern struct vmmeter vm_cnt; | extern struct vmmeter vm_cnt; | ||||
extern u_int vm_pageout_wakeup_thresh; | extern u_int vm_pageout_wakeup_thresh; | ||||
▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | vm_paging_target(void) | ||||
return (vm_cnt.v_free_target - vm_cnt.v_free_count); | return (vm_cnt.v_free_target - vm_cnt.v_free_count); | ||||
} | } | ||||
/* | /* | ||||
* Returns TRUE if the pagedaemon needs to be woken up. | * Returns TRUE if the pagedaemon needs to be woken up. | ||||
*/ | */ | ||||
static inline int | static inline int | ||||
vm_paging_needed(void) | vm_paging_needed(u_int free_count) | ||||
{ | { | ||||
return (vm_cnt.v_free_count < vm_pageout_wakeup_thresh); | return (free_count < vm_pageout_wakeup_thresh); | ||||
} | } | ||||
/* | /* | ||||
* Return the number of pages we need to launder. | * Return the number of pages we need to launder. | ||||
* A positive number indicates that we have a shortfall of clean pages. | * A positive number indicates that we have a shortfall of clean pages. | ||||
*/ | */ | ||||
static inline int | static inline int | ||||
vm_laundry_target(void) | vm_laundry_target(void) | ||||
{ | { | ||||
return (vm_paging_target()); | return (vm_paging_target()); | ||||
} | } | ||||
#endif /* _KERNEL */ | #endif /* _KERNEL */ | ||||
#endif /* _SYS_VMMETER_H_ */ | #endif /* _SYS_VMMETER_H_ */ |
The lock annotation should still be "(f)".