Deleted Added
full compact
vm_meter.c (62573) vm_meter.c (62622)
1/*
2 * Copyright (c) 1982, 1986, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)vm_meter.c 8.4 (Berkeley) 1/4/94
1/*
2 * Copyright (c) 1982, 1986, 1989, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 17 unchanged lines hidden (view full) ---

26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * @(#)vm_meter.c 8.4 (Berkeley) 1/4/94
34 * $FreeBSD: head/sys/vm/vm_meter.c 62573 2000-07-04 11:25:35Z phk $
34 * $FreeBSD: head/sys/vm/vm_meter.c 62622 2000-07-05 07:46:41Z jhb $
35 */
36
37#include <sys/param.h>
38#include <sys/proc.h>
39#include <sys/systm.h>
40#include <sys/kernel.h>
41#include <sys/resource.h>
42#include <sys/vmmeter.h>

--- 56 unchanged lines hidden (view full) ---

99{
100
101 if (time_second % 5 == 0)
102 loadav(&averunnable);
103 if (proc0.p_slptime > maxslp / 2)
104 wakeup(&proc0);
105}
106
35 */
36
37#include <sys/param.h>
38#include <sys/proc.h>
39#include <sys/systm.h>
40#include <sys/kernel.h>
41#include <sys/resource.h>
42#include <sys/vmmeter.h>

--- 56 unchanged lines hidden (view full) ---

99{
100
101 if (time_second % 5 == 0)
102 loadav(&averunnable);
103 if (proc0.p_slptime > maxslp / 2)
104 wakeup(&proc0);
105}
106
107SYSCTL_INT(_vm, VM_V_FREE_MIN, v_free_min,
107SYSCTL_UINT(_vm, VM_V_FREE_MIN, v_free_min,
108 CTLFLAG_RW, &cnt.v_free_min, 0, "");
108 CTLFLAG_RW, &cnt.v_free_min, 0, "");
109SYSCTL_INT(_vm, VM_V_FREE_TARGET, v_free_target,
109SYSCTL_UINT(_vm, VM_V_FREE_TARGET, v_free_target,
110 CTLFLAG_RW, &cnt.v_free_target, 0, "");
110 CTLFLAG_RW, &cnt.v_free_target, 0, "");
111SYSCTL_INT(_vm, VM_V_FREE_RESERVED, v_free_reserved,
111SYSCTL_UINT(_vm, VM_V_FREE_RESERVED, v_free_reserved,
112 CTLFLAG_RW, &cnt.v_free_reserved, 0, "");
112 CTLFLAG_RW, &cnt.v_free_reserved, 0, "");
113SYSCTL_INT(_vm, VM_V_INACTIVE_TARGET, v_inactive_target,
113SYSCTL_UINT(_vm, VM_V_INACTIVE_TARGET, v_inactive_target,
114 CTLFLAG_RW, &cnt.v_inactive_target, 0, "");
114 CTLFLAG_RW, &cnt.v_inactive_target, 0, "");
115SYSCTL_INT(_vm, VM_V_CACHE_MIN, v_cache_min,
115SYSCTL_UINT(_vm, VM_V_CACHE_MIN, v_cache_min,
116 CTLFLAG_RW, &cnt.v_cache_min, 0, "");
116 CTLFLAG_RW, &cnt.v_cache_min, 0, "");
117SYSCTL_INT(_vm, VM_V_CACHE_MAX, v_cache_max,
117SYSCTL_UINT(_vm, VM_V_CACHE_MAX, v_cache_max,
118 CTLFLAG_RW, &cnt.v_cache_max, 0, "");
118 CTLFLAG_RW, &cnt.v_cache_max, 0, "");
119SYSCTL_INT(_vm, VM_V_PAGEOUT_FREE_MIN, v_pageout_free_min,
119SYSCTL_UINT(_vm, VM_V_PAGEOUT_FREE_MIN, v_pageout_free_min,
120 CTLFLAG_RW, &cnt.v_pageout_free_min, 0, "");
120 CTLFLAG_RW, &cnt.v_pageout_free_min, 0, "");
121SYSCTL_INT(_vm, OID_AUTO, v_free_severe,
121SYSCTL_UINT(_vm, OID_AUTO, v_free_severe,
122 CTLFLAG_RW, &cnt.v_free_severe, 0, "");
123
124SYSCTL_STRUCT(_vm, VM_LOADAVG, loadavg, CTLFLAG_RD,
125 &averunnable, loadavg, "Machine loadaverage history");
126
127static int
128vmtotal(SYSCTL_HANDLER_ARGS)
129{

--- 94 unchanged lines hidden (view full) ---

224
225SYSCTL_PROC(_vm, VM_METER, vmmeter, CTLTYPE_OPAQUE|CTLFLAG_RD,
226 0, sizeof(struct vmtotal), vmtotal, "S,vmtotal",
227 "System virtual memory statistics");
228SYSCTL_NODE(_vm, OID_AUTO, stats, CTLFLAG_RW, 0, "VM meter stats");
229SYSCTL_NODE(_vm_stats, OID_AUTO, sys, CTLFLAG_RW, 0, "VM meter sys stats");
230SYSCTL_NODE(_vm_stats, OID_AUTO, vm, CTLFLAG_RW, 0, "VM meter vm stats");
231SYSCTL_NODE(_vm_stats, OID_AUTO, misc, CTLFLAG_RW, 0, "VM meter misc stats");
122 CTLFLAG_RW, &cnt.v_free_severe, 0, "");
123
124SYSCTL_STRUCT(_vm, VM_LOADAVG, loadavg, CTLFLAG_RD,
125 &averunnable, loadavg, "Machine loadaverage history");
126
127static int
128vmtotal(SYSCTL_HANDLER_ARGS)
129{

--- 94 unchanged lines hidden (view full) ---

224
225SYSCTL_PROC(_vm, VM_METER, vmmeter, CTLTYPE_OPAQUE|CTLFLAG_RD,
226 0, sizeof(struct vmtotal), vmtotal, "S,vmtotal",
227 "System virtual memory statistics");
228SYSCTL_NODE(_vm, OID_AUTO, stats, CTLFLAG_RW, 0, "VM meter stats");
229SYSCTL_NODE(_vm_stats, OID_AUTO, sys, CTLFLAG_RW, 0, "VM meter sys stats");
230SYSCTL_NODE(_vm_stats, OID_AUTO, vm, CTLFLAG_RW, 0, "VM meter vm stats");
231SYSCTL_NODE(_vm_stats, OID_AUTO, misc, CTLFLAG_RW, 0, "VM meter misc stats");
232SYSCTL_INT(_vm_stats_sys, OID_AUTO,
232SYSCTL_UINT(_vm_stats_sys, OID_AUTO,
233 v_swtch, CTLFLAG_RD, &cnt.v_swtch, 0, "Context switches");
233 v_swtch, CTLFLAG_RD, &cnt.v_swtch, 0, "Context switches");
234SYSCTL_INT(_vm_stats_sys, OID_AUTO,
234SYSCTL_UINT(_vm_stats_sys, OID_AUTO,
235 v_trap, CTLFLAG_RD, &cnt.v_trap, 0, "Traps");
235 v_trap, CTLFLAG_RD, &cnt.v_trap, 0, "Traps");
236SYSCTL_INT(_vm_stats_sys, OID_AUTO,
236SYSCTL_UINT(_vm_stats_sys, OID_AUTO,
237 v_syscall, CTLFLAG_RD, &cnt.v_syscall, 0, "Syscalls");
237 v_syscall, CTLFLAG_RD, &cnt.v_syscall, 0, "Syscalls");
238SYSCTL_INT(_vm_stats_sys, OID_AUTO, v_intr, CTLFLAG_RD,
238SYSCTL_UINT(_vm_stats_sys, OID_AUTO, v_intr, CTLFLAG_RD,
239 &cnt.v_intr, 0, "Hardware interrupts");
239 &cnt.v_intr, 0, "Hardware interrupts");
240SYSCTL_INT(_vm_stats_sys, OID_AUTO, v_soft, CTLFLAG_RD,
240SYSCTL_UINT(_vm_stats_sys, OID_AUTO, v_soft, CTLFLAG_RD,
241 &cnt.v_soft, 0, "Software interrupts");
241 &cnt.v_soft, 0, "Software interrupts");
242SYSCTL_INT(_vm_stats_vm, OID_AUTO,
242SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
243 v_vm_faults, CTLFLAG_RD, &cnt.v_vm_faults, 0, "VM faults");
243 v_vm_faults, CTLFLAG_RD, &cnt.v_vm_faults, 0, "VM faults");
244SYSCTL_INT(_vm_stats_vm, OID_AUTO,
244SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
245 v_cow_faults, CTLFLAG_RD, &cnt.v_cow_faults, 0, "COW faults");
245 v_cow_faults, CTLFLAG_RD, &cnt.v_cow_faults, 0, "COW faults");
246SYSCTL_INT(_vm_stats_vm, OID_AUTO,
246SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
247 v_cow_optim, CTLFLAG_RD, &cnt.v_cow_optim, 0, "Optimized COW faults");
247 v_cow_optim, CTLFLAG_RD, &cnt.v_cow_optim, 0, "Optimized COW faults");
248SYSCTL_INT(_vm_stats_vm, OID_AUTO,
248SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
249 v_zfod, CTLFLAG_RD, &cnt.v_zfod, 0, "Zero fill");
249 v_zfod, CTLFLAG_RD, &cnt.v_zfod, 0, "Zero fill");
250SYSCTL_INT(_vm_stats_vm, OID_AUTO,
250SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
251 v_ozfod, CTLFLAG_RD, &cnt.v_ozfod, 0, "Optimized zero fill");
251 v_ozfod, CTLFLAG_RD, &cnt.v_ozfod, 0, "Optimized zero fill");
252SYSCTL_INT(_vm_stats_vm, OID_AUTO,
252SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
253 v_swapin, CTLFLAG_RD, &cnt.v_swapin, 0, "Swapin operations");
253 v_swapin, CTLFLAG_RD, &cnt.v_swapin, 0, "Swapin operations");
254SYSCTL_INT(_vm_stats_vm, OID_AUTO,
254SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
255 v_swapout, CTLFLAG_RD, &cnt.v_swapout, 0, "Swapout operations");
255 v_swapout, CTLFLAG_RD, &cnt.v_swapout, 0, "Swapout operations");
256SYSCTL_INT(_vm_stats_vm, OID_AUTO,
256SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
257 v_swappgsin, CTLFLAG_RD, &cnt.v_swappgsin, 0, "Swapin pages");
257 v_swappgsin, CTLFLAG_RD, &cnt.v_swappgsin, 0, "Swapin pages");
258SYSCTL_INT(_vm_stats_vm, OID_AUTO,
258SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
259 v_swappgsout, CTLFLAG_RD, &cnt.v_swappgsout, 0, "Swapout pages");
259 v_swappgsout, CTLFLAG_RD, &cnt.v_swappgsout, 0, "Swapout pages");
260SYSCTL_INT(_vm_stats_vm, OID_AUTO,
260SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
261 v_vnodein, CTLFLAG_RD, &cnt.v_vnodein, 0, "Vnodein operations");
261 v_vnodein, CTLFLAG_RD, &cnt.v_vnodein, 0, "Vnodein operations");
262SYSCTL_INT(_vm_stats_vm, OID_AUTO,
262SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
263 v_vnodeout, CTLFLAG_RD, &cnt.v_vnodeout, 0, "Vnodeout operations");
263 v_vnodeout, CTLFLAG_RD, &cnt.v_vnodeout, 0, "Vnodeout operations");
264SYSCTL_INT(_vm_stats_vm, OID_AUTO,
264SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
265 v_vnodepgsin, CTLFLAG_RD, &cnt.v_vnodepgsin, 0, "Vnodein pages");
265 v_vnodepgsin, CTLFLAG_RD, &cnt.v_vnodepgsin, 0, "Vnodein pages");
266SYSCTL_INT(_vm_stats_vm, OID_AUTO,
266SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
267 v_vnodepgsout, CTLFLAG_RD, &cnt.v_vnodepgsout, 0, "Vnodeout pages");
267 v_vnodepgsout, CTLFLAG_RD, &cnt.v_vnodepgsout, 0, "Vnodeout pages");
268SYSCTL_INT(_vm_stats_vm, OID_AUTO,
268SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
269 v_intrans, CTLFLAG_RD, &cnt.v_intrans, 0, "In transit page blocking");
269 v_intrans, CTLFLAG_RD, &cnt.v_intrans, 0, "In transit page blocking");
270SYSCTL_INT(_vm_stats_vm, OID_AUTO,
270SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
271 v_reactivated, CTLFLAG_RD, &cnt.v_reactivated, 0, "Reactivated pages");
271 v_reactivated, CTLFLAG_RD, &cnt.v_reactivated, 0, "Reactivated pages");
272SYSCTL_INT(_vm_stats_vm, OID_AUTO,
272SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
273 v_pdwakeups, CTLFLAG_RD, &cnt.v_pdwakeups, 0, "Pagedaemon wakeups");
273 v_pdwakeups, CTLFLAG_RD, &cnt.v_pdwakeups, 0, "Pagedaemon wakeups");
274SYSCTL_INT(_vm_stats_vm, OID_AUTO,
274SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
275 v_pdpages, CTLFLAG_RD, &cnt.v_pdpages, 0, "Pagedaemon page scans");
275 v_pdpages, CTLFLAG_RD, &cnt.v_pdpages, 0, "Pagedaemon page scans");
276SYSCTL_INT(_vm_stats_vm, OID_AUTO,
276SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
277 v_dfree, CTLFLAG_RD, &cnt.v_dfree, 0, "");
277 v_dfree, CTLFLAG_RD, &cnt.v_dfree, 0, "");
278SYSCTL_INT(_vm_stats_vm, OID_AUTO,
278SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
279 v_pfree, CTLFLAG_RD, &cnt.v_pfree, 0, "");
279 v_pfree, CTLFLAG_RD, &cnt.v_pfree, 0, "");
280SYSCTL_INT(_vm_stats_vm, OID_AUTO,
280SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
281 v_tfree, CTLFLAG_RD, &cnt.v_tfree, 0, "");
281 v_tfree, CTLFLAG_RD, &cnt.v_tfree, 0, "");
282SYSCTL_INT(_vm_stats_vm, OID_AUTO,
282SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
283 v_page_size, CTLFLAG_RD, &cnt.v_page_size, 0, "");
283 v_page_size, CTLFLAG_RD, &cnt.v_page_size, 0, "");
284SYSCTL_INT(_vm_stats_vm, OID_AUTO,
284SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
285 v_page_count, CTLFLAG_RD, &cnt.v_page_count, 0, "");
285 v_page_count, CTLFLAG_RD, &cnt.v_page_count, 0, "");
286SYSCTL_INT(_vm_stats_vm, OID_AUTO,
286SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
287 v_free_reserved, CTLFLAG_RD, &cnt.v_free_reserved, 0, "");
287 v_free_reserved, CTLFLAG_RD, &cnt.v_free_reserved, 0, "");
288SYSCTL_INT(_vm_stats_vm, OID_AUTO,
288SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
289 v_free_target, CTLFLAG_RD, &cnt.v_free_target, 0, "");
289 v_free_target, CTLFLAG_RD, &cnt.v_free_target, 0, "");
290SYSCTL_INT(_vm_stats_vm, OID_AUTO,
290SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
291 v_free_min, CTLFLAG_RD, &cnt.v_free_min, 0, "");
291 v_free_min, CTLFLAG_RD, &cnt.v_free_min, 0, "");
292SYSCTL_INT(_vm_stats_vm, OID_AUTO,
292SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
293 v_free_count, CTLFLAG_RD, &cnt.v_free_count, 0, "");
293 v_free_count, CTLFLAG_RD, &cnt.v_free_count, 0, "");
294SYSCTL_INT(_vm_stats_vm, OID_AUTO,
294SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
295 v_wire_count, CTLFLAG_RD, &cnt.v_wire_count, 0, "");
295 v_wire_count, CTLFLAG_RD, &cnt.v_wire_count, 0, "");
296SYSCTL_INT(_vm_stats_vm, OID_AUTO,
296SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
297 v_active_count, CTLFLAG_RD, &cnt.v_active_count, 0, "");
297 v_active_count, CTLFLAG_RD, &cnt.v_active_count, 0, "");
298SYSCTL_INT(_vm_stats_vm, OID_AUTO,
298SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
299 v_inactive_target, CTLFLAG_RD, &cnt.v_inactive_target, 0, "");
299 v_inactive_target, CTLFLAG_RD, &cnt.v_inactive_target, 0, "");
300SYSCTL_INT(_vm_stats_vm, OID_AUTO,
300SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
301 v_inactive_count, CTLFLAG_RD, &cnt.v_inactive_count, 0, "");
301 v_inactive_count, CTLFLAG_RD, &cnt.v_inactive_count, 0, "");
302SYSCTL_INT(_vm_stats_vm, OID_AUTO,
302SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
303 v_cache_count, CTLFLAG_RD, &cnt.v_cache_count, 0, "");
303 v_cache_count, CTLFLAG_RD, &cnt.v_cache_count, 0, "");
304SYSCTL_INT(_vm_stats_vm, OID_AUTO,
304SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
305 v_cache_min, CTLFLAG_RD, &cnt.v_cache_min, 0, "");
305 v_cache_min, CTLFLAG_RD, &cnt.v_cache_min, 0, "");
306SYSCTL_INT(_vm_stats_vm, OID_AUTO,
306SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
307 v_cache_max, CTLFLAG_RD, &cnt.v_cache_max, 0, "");
307 v_cache_max, CTLFLAG_RD, &cnt.v_cache_max, 0, "");
308SYSCTL_INT(_vm_stats_vm, OID_AUTO,
308SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
309 v_pageout_free_min, CTLFLAG_RD, &cnt.v_pageout_free_min, 0, "");
309 v_pageout_free_min, CTLFLAG_RD, &cnt.v_pageout_free_min, 0, "");
310SYSCTL_INT(_vm_stats_vm, OID_AUTO,
310SYSCTL_UINT(_vm_stats_vm, OID_AUTO,
311 v_interrupt_free_min, CTLFLAG_RD, &cnt.v_interrupt_free_min, 0, "");
312SYSCTL_INT(_vm_stats_misc, OID_AUTO,
313 zero_page_count, CTLFLAG_RD, &vm_page_zero_count, 0, "");
314#if 0
315SYSCTL_INT(_vm_stats_misc, OID_AUTO,
316 page_mask, CTLFLAG_RD, &page_mask, 0, "");
317SYSCTL_INT(_vm_stats_misc, OID_AUTO,
318 page_shift, CTLFLAG_RD, &page_shift, 0, "");
319SYSCTL_INT(_vm_stats_misc, OID_AUTO,
320 first_page, CTLFLAG_RD, &first_page, 0, "");
321SYSCTL_INT(_vm_stats_misc, OID_AUTO,
322 last_page, CTLFLAG_RD, &last_page, 0, "");
323SYSCTL_INT(_vm_stats_misc, OID_AUTO,
324 vm_page_bucket_count, CTLFLAG_RD, &vm_page_bucket_count, 0, "");
325SYSCTL_INT(_vm_stats_misc, OID_AUTO,
326 vm_page_hash_mask, CTLFLAG_RD, &vm_page_hash_mask, 0, "");
327#endif
311 v_interrupt_free_min, CTLFLAG_RD, &cnt.v_interrupt_free_min, 0, "");
312SYSCTL_INT(_vm_stats_misc, OID_AUTO,
313 zero_page_count, CTLFLAG_RD, &vm_page_zero_count, 0, "");
314#if 0
315SYSCTL_INT(_vm_stats_misc, OID_AUTO,
316 page_mask, CTLFLAG_RD, &page_mask, 0, "");
317SYSCTL_INT(_vm_stats_misc, OID_AUTO,
318 page_shift, CTLFLAG_RD, &page_shift, 0, "");
319SYSCTL_INT(_vm_stats_misc, OID_AUTO,
320 first_page, CTLFLAG_RD, &first_page, 0, "");
321SYSCTL_INT(_vm_stats_misc, OID_AUTO,
322 last_page, CTLFLAG_RD, &last_page, 0, "");
323SYSCTL_INT(_vm_stats_misc, OID_AUTO,
324 vm_page_bucket_count, CTLFLAG_RD, &vm_page_bucket_count, 0, "");
325SYSCTL_INT(_vm_stats_misc, OID_AUTO,
326 vm_page_hash_mask, CTLFLAG_RD, &vm_page_hash_mask, 0, "");
327#endif