From cd76999cd1cf590b95df3e22d2eb2a7dad333499 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Mon, 1 Dec 2014 16:16:04 +0100 Subject: 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. --- kern/counters.c | 3 +-- kern/counters.h | 3 +-- kern/ipc_sched.c | 4 ++-- kern/sched_prim.c | 8 ++++---- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/kern/counters.c b/kern/counters.c index a9d450e..74fd42d 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 474c6a2..bfa9b44 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 d5b9263..cc1672d 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 66eb9c9..89fb1dc 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); /* -- cgit v1.2.3