FreeBSD/Linux Kernel Cross Reference
sys/kern/counters.h
1 /*
2 * Mach Operating System
3 * Copyright (c) 1993,1991,1990,1989,1988,1987 Carnegie Mellon University
4 * All Rights Reserved.
5 *
6 * Permission to use, copy, modify and distribute this software and its
7 * documentation is hereby granted, provided that both the copyright
8 * notice and this permission notice appear in all copies of the
9 * software, derivative works or modified versions, and any portions
10 * thereof, and that both notices appear in supporting documentation.
11 *
12 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
13 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15 *
16 * Carnegie Mellon requests users of this software to return to
17 *
18 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
19 * School of Computer Science
20 * Carnegie Mellon University
21 * Pittsburgh PA 15213-3890
22 *
23 * any improvements or extensions that they make and grant Carnegie Mellon
24 * the rights to redistribute these changes.
25 */
26 /*
27 * HISTORY
28 * $Log: counters.h,v $
29 * Revision 2.4 93/11/17 17:07:48 dbg
30 * ANSI-fied.
31 * [93/06/16 dbg]
32 *
33 * Revision 2.3 91/05/14 16:40:30 mrt
34 * Correcting copyright
35 *
36 * Revision 2.2 91/03/16 15:16:06 rpd
37 * Created.
38 * [91/03/13 rpd]
39 *
40 */
41
42 #ifndef _KERN_COUNTERS_
43 #define _KERN_COUNTERS_
44
45 #include <mach_counters.h>
46
47 /*
48 * We can count various interesting events and paths.
49 *
50 * Use counter() to change the counters, eg:
51 * counter(c_idle_thread_block++);
52 * Use counter_always() for non-conditional counters.
53 */
54
55 #define counter_always(code) code
56
57 #if MACH_COUNTERS
58
59 #define counter(code) counter_always(code)
60
61 #else /* MACH_COUNTERS */
62
63 #define counter(code)
64
65 #endif /* MACH_COUNTERS */
66
67 /*
68 * We define the counters with individual integers,
69 * instead of a big structure, so that ddb
70 * will know the addresses of the counters.
71 */
72
73 typedef unsigned int mach_counter_t;
74
75 extern mach_counter_t c_thread_invoke_hits;
76 extern mach_counter_t c_thread_invoke_misses;
77 extern mach_counter_t c_thread_invoke_csw;
78 extern mach_counter_t c_thread_handoff_hits;
79 extern mach_counter_t c_thread_handoff_misses;
80
81 #if MACH_COUNTERS
82 extern mach_counter_t c_threads_current;
83 extern mach_counter_t c_threads_max;
84 extern mach_counter_t c_threads_min;
85 extern mach_counter_t c_threads_total;
86 extern mach_counter_t c_stacks_current;
87 extern mach_counter_t c_stacks_max;
88 extern mach_counter_t c_stacks_min;
89 extern mach_counter_t c_stacks_total;
90 extern mach_counter_t c_clock_ticks;
91 extern mach_counter_t c_ipc_mqueue_send_block;
92 extern mach_counter_t c_ipc_mqueue_receive_block_user;
93 extern mach_counter_t c_ipc_mqueue_receive_block_kernel;
94 extern mach_counter_t c_mach_msg_trap_block_fast;
95 extern mach_counter_t c_mach_msg_trap_block_slow;
96 extern mach_counter_t c_mach_msg_trap_block_exc;
97 extern mach_counter_t c_exception_raise_block;
98 extern mach_counter_t c_swtch_block;
99 extern mach_counter_t c_swtch_pri_block;
100 extern mach_counter_t c_thread_switch_block;
101 extern mach_counter_t c_thread_switch_handoff;
102 extern mach_counter_t c_ast_taken_block;
103 extern mach_counter_t c_thread_halt_self_block;
104 extern mach_counter_t c_vm_fault_page_block_busy_user;
105 extern mach_counter_t c_vm_fault_page_block_busy_kernel;
106 extern mach_counter_t c_vm_fault_page_block_backoff_user;
107 extern mach_counter_t c_vm_fault_page_block_backoff_kernel;
108 extern mach_counter_t c_vm_page_wait_block_user;
109 extern mach_counter_t c_vm_page_wait_block_kernel;
110 extern mach_counter_t c_vm_pageout_block;
111 extern mach_counter_t c_vm_pageout_scan_block;
112 extern mach_counter_t c_idle_thread_block;
113 extern mach_counter_t c_idle_thread_handoff;
114 extern mach_counter_t c_sched_thread_block;
115 extern mach_counter_t c_io_done_thread_block;
116 extern mach_counter_t c_net_thread_block;
117 extern mach_counter_t c_reaper_thread_block;
118 extern mach_counter_t c_swapin_thread_block;
119 extern mach_counter_t c_action_thread_block;
120 #endif /* MACH_COUNTERS */
121
122 #endif /* _KERN_COUNTERS_ */
Cache object: 6d09b73d449d624a5896423c0cf6e62e
|