Justus Winter, le Mon 01 Dec 2014 18:51:53 +0100, a écrit : > Make all five non-conditional counters conditional ones. Casual > checking revealed that the hits-to-miss ratio is excellent.
Ack. > * 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); > > /* > -- > 2.1.3 > -- Samuel mdiym42: note to self mdiym42: make sure your cat is not sleeping in the bass drum before you start playing them