diff options
author | Richard Braun <rbraun@sceen.net> | 2018-01-07 00:35:46 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2018-01-07 00:35:46 +0100 |
commit | 2396ae7dc601c9159ce1a86274133a7f90bf3aca (patch) | |
tree | d352cb9978e4c43693972235cb4c1a9dd8c5ebe9 | |
parent | a97a2bc6f1c24851ef19600a7bd15b211137abfe (diff) |
kern/Kconfig: new MUTEX_DEBUG option
-rw-r--r-- | kern/Kconfig | 10 | ||||
-rw-r--r-- | kern/mutex/mutex_adaptive.c | 14 | ||||
-rw-r--r-- | kern/mutex/mutex_plain.c | 14 | ||||
-rw-r--r-- | kern/rtmutex.c | 14 | ||||
-rw-r--r-- | test/Kconfig | 1 | ||||
-rw-r--r-- | test/test_mutex.c | 3 |
6 files changed, 26 insertions, 30 deletions
diff --git a/kern/Kconfig b/kern/Kconfig index 7c718d4c..26f5e5d9 100644 --- a/kern/Kconfig +++ b/kern/Kconfig @@ -81,3 +81,13 @@ config THREAD_STACK_GUARD If unsure, disable. endmenu + +menu "Debugging" + +config MUTEX_DEBUG + bool "Mutex debugging" + default n + ---help--- + Enable mutex debugging and instrumentation. + +endmenu diff --git a/kern/mutex/mutex_adaptive.c b/kern/mutex/mutex_adaptive.c index 68b006ad..3e6b610b 100644 --- a/kern/mutex/mutex_adaptive.c +++ b/kern/mutex/mutex_adaptive.c @@ -31,11 +31,7 @@ #include <kern/thread.h> #include <machine/cpu.h> -#ifndef MUTEX_ADAPTIVE_DEBUG -#define MUTEX_ADAPTIVE_DEBUG 0 -#endif /* MUTEX_ADAPTIVE_DEBUG */ - -#if MUTEX_ADAPTIVE_DEBUG +#ifdef CONFIG_MUTEX_DEBUG enum { MUTEX_ADAPTIVE_SC_SPINS, @@ -95,10 +91,10 @@ mutex_adaptive_inc_sc(unsigned int index) syscnt_inc(&mutex_adaptive_sc_array[index]); } -#else /* MUTEX_ADAPTIVE_DEBUG */ +#else /* CONFIG_MUTEX_DEBUG */ #define mutex_adaptive_setup_debug() #define mutex_adaptive_inc_sc(x) -#endif /* MUTEX_ADAPTIVE_DEBUG */ +#endif /* CONFIG_MUTEX_DEBUG */ static struct thread * @@ -329,7 +325,7 @@ mutex_adaptive_setup(void) } INIT_OP_DEFINE(mutex_adaptive_setup, -#if MUTEX_ADAPTIVE_DEBUG +#ifdef CONFIG_MUTEX_DEBUG INIT_OP_DEP(syscnt_setup, true), -#endif /* MUTEX_ADAPTIVE_DEBUG */ +#endif /* CONFIG_MUTEX_DEBUG */ ); diff --git a/kern/mutex/mutex_plain.c b/kern/mutex/mutex_plain.c index 2c655940..8945014f 100644 --- a/kern/mutex/mutex_plain.c +++ b/kern/mutex/mutex_plain.c @@ -27,11 +27,7 @@ #include <kern/sleepq.h> #include <kern/syscnt.h> -#ifndef MUTEX_PLAIN_DEBUG -#define MUTEX_PLAIN_DEBUG 0 -#endif /* MUTEX_PLAIN_DEBUG */ - -#if MUTEX_PLAIN_DEBUG +#ifdef CONFIG_MUTEX_DEBUG enum { MUTEX_PLAIN_SC_WAIT_SUCCESSES, @@ -70,10 +66,10 @@ mutex_plain_inc_sc(unsigned int index) syscnt_inc(&mutex_plain_sc_array[index]); } -#else /* MUTEX_PLAIN_DEBUG */ +#else /* CONFIG_MUTEX_DEBUG */ #define mutex_plain_setup_debug() #define mutex_plain_inc_sc(x) -#endif /* MUTEX_PLAIN_DEBUG */ +#endif /* CONFIG_MUTEX_DEBUG */ static int mutex_plain_lock_slow_common(struct mutex *mutex, bool timed, uint64_t ticks) @@ -170,7 +166,7 @@ mutex_plain_setup(void) } INIT_OP_DEFINE(mutex_plain_setup, -#if MUTEX_PLAIN_DEBUG +#ifdef CONFIG_MUTEX_DEBUG INIT_OP_DEP(syscnt_setup, true), -#endif /* MUTEX_PLAIN_DEBUG */ +#endif /* CONFIG_MUTEX_DEBUG */ ); diff --git a/kern/rtmutex.c b/kern/rtmutex.c index 00d87dfe..36c72a37 100644 --- a/kern/rtmutex.c +++ b/kern/rtmutex.c @@ -29,11 +29,7 @@ #include <kern/thread.h> #include <kern/turnstile.h> -#ifndef RTMUTEX_DEBUG -#define RTMUTEX_DEBUG 0 -#endif /* RTMUTEX_DEBUG */ - -#if RTMUTEX_DEBUG +#ifdef CONFIG_MUTEX_DEBUG enum { RTMUTEX_SC_WAIT_SUCCESSES, @@ -75,10 +71,10 @@ rtmutex_inc_sc(unsigned int index) syscnt_inc(&rtmutex_sc_array[index]); } -#else /* RTMUTEX_DEBUG */ +#else /* CONFIG_MUTEX_DEBUG */ #define rtmutex_setup_debug() #define rtmutex_inc_sc(x) -#endif /* RTMUTEX_DEBUG */ +#endif /* CONFIG_MUTEX_DEBUG */ static struct thread * rtmutex_get_thread(uintptr_t owner) @@ -236,7 +232,7 @@ rtmutex_setup(void) } INIT_OP_DEFINE(rtmutex_setup, -#if RTMUTEX_DEBUG +#ifdef CONFIG_MUTEX_DEBUG INIT_OP_DEP(syscnt_setup, true), -#endif /* RTMUTEX_DEBUG */ +#endif /* CONFIG_MUTEX_DEBUG */ ); diff --git a/test/Kconfig b/test/Kconfig index 7a71f4fb..8f3ae8ba 100644 --- a/test/Kconfig +++ b/test/Kconfig @@ -14,6 +14,7 @@ config TEST_MODULE_LLSYNC_DEFER config TEST_MODULE_MUTEX bool "mutex" + select MUTEX_DEBUG config TEST_MODULE_MUTEX_PI bool "mutex_pi" diff --git a/test/test_mutex.c b/test/test_mutex.c index d5cc5d13..029e2fee 100644 --- a/test/test_mutex.c +++ b/test/test_mutex.c @@ -178,7 +178,4 @@ test_setup(void) timer_init(&test_timer, test_report_syscnt, TIMER_DETACHED); time = clock_get_time() + clock_ticks_from_ms(TEST_REPORT_INTERVAL); timer_schedule(&test_timer, time); - - log_info("test: enable mutex debugging for the selected implementation"); - log_info("test: and check the relevant system counters"); } |