[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH gnumach] kern: disable all counters by default
From: |
Samuel Thibault |
Subject: |
Re: [PATCH gnumach] kern: disable all counters by default |
Date: |
Mon, 1 Dec 2014 19:00:18 +0100 |
User-agent: |
Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30) |
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