summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-12-01 16:16:04 +0100
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-12-01 16:16:04 +0100
commitcd76999cd1cf590b95df3e22d2eb2a7dad333499 (patch)
treeea0b5671e3f5376e62f17b8799120a3ca96b0b98
parent51ebaeb376521c0dbd0020d3515a4b5dfe01a12d (diff)
kern: disable all counters by default
Make all five non-conditional counters conditional ones. Casual checking revealed that the hits-to-miss ratio is excellent. * kern/counters.c: Make all counters conditional. * kern/counters.h: Likewise. * kern/ipc_sched.c: Likewise. * kern/sched_prim.c: Likewise.
-rw-r--r--kern/counters.c3
-rw-r--r--kern/counters.h3
-rw-r--r--kern/ipc_sched.c4
-rw-r--r--kern/sched_prim.c8
4 files changed, 8 insertions, 10 deletions
diff --git a/kern/counters.c b/kern/counters.c
index a9d450e1..74fd42d1 100644
--- a/kern/counters.c
+++ b/kern/counters.c
@@ -32,13 +32,12 @@
* This makes them easier to examine with ddb.
*/
+#if MACH_COUNTERS
mach_counter_t c_thread_invoke_hits = 0;
mach_counter_t c_thread_invoke_misses = 0;
mach_counter_t c_thread_invoke_csw = 0;
mach_counter_t c_thread_handoff_hits = 0;
mach_counter_t c_thread_handoff_misses = 0;
-
-#if MACH_COUNTERS
mach_counter_t c_threads_current = 0;
mach_counter_t c_threads_max = 0;
mach_counter_t c_threads_min = 0;
diff --git a/kern/counters.h b/kern/counters.h
index 474c6a29..bfa9b44e 100644
--- a/kern/counters.h
+++ b/kern/counters.h
@@ -55,13 +55,12 @@
typedef unsigned int mach_counter_t;
+#if MACH_COUNTERS
extern mach_counter_t c_thread_invoke_hits;
extern mach_counter_t c_thread_invoke_misses;
extern mach_counter_t c_thread_invoke_csw;
extern mach_counter_t c_thread_handoff_hits;
extern mach_counter_t c_thread_handoff_misses;
-
-#if MACH_COUNTERS
extern mach_counter_t c_threads_current;
extern mach_counter_t c_threads_max;
extern mach_counter_t c_threads_min;
diff --git a/kern/ipc_sched.c b/kern/ipc_sched.c
index d5b9263c..cc1672d6 100644
--- a/kern/ipc_sched.c
+++ b/kern/ipc_sched.c
@@ -214,7 +214,7 @@ thread_handoff(
thread_unlock(new);
(void) splx(s);
- counter_always(c_thread_handoff_misses++);
+ counter(c_thread_handoff_misses++);
return FALSE;
}
@@ -278,6 +278,6 @@ thread_handoff(
after_old_thread:
(void) splx(s);
- counter_always(c_thread_handoff_hits++);
+ counter(c_thread_handoff_hits++);
return TRUE;
}
diff --git a/kern/sched_prim.c b/kern/sched_prim.c
index 66eb9c95..89fb1dc8 100644
--- a/kern/sched_prim.c
+++ b/kern/sched_prim.c
@@ -726,7 +726,7 @@ boolean_t thread_invoke(
* running out of stack.
*/
- counter_always(c_thread_invoke_hits++);
+ counter(c_thread_invoke_hits++);
(void) spl0();
call_continuation(new_thread->swap_func);
/*NOTREACHED*/
@@ -738,7 +738,7 @@ boolean_t thread_invoke(
*/
thread_swapin(new_thread);
thread_unlock(new_thread);
- counter_always(c_thread_invoke_misses++);
+ counter(c_thread_invoke_misses++);
return FALSE;
case 0:
@@ -759,7 +759,7 @@ boolean_t thread_invoke(
{
thread_swapin(new_thread);
thread_unlock(new_thread);
- counter_always(c_thread_invoke_misses++);
+ counter(c_thread_invoke_misses++);
return FALSE;
}
}
@@ -788,7 +788,7 @@ boolean_t thread_invoke(
* changing address spaces. It updates active_threads.
* It returns only if a continuation is not supplied.
*/
- counter_always(c_thread_invoke_csw++);
+ counter(c_thread_invoke_csw++);
old_thread = switch_context(old_thread, continuation, new_thread);
/*