logging: Use spin lock

Updated log_core to use spin lock instead of irq_lock.
Refactored z_log_msg_post_finalize function.

Update thresholds in the log_stack test.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
Krzysztof Chruscinski 2022-01-10 14:51:10 +01:00 committed by Carles Cufí
commit e4bfec8100
2 changed files with 36 additions and 34 deletions

View file

@ -127,24 +127,26 @@ static void z_log_msg_post_finalize(void)
atomic_val_t cnt = atomic_inc(&buffered_cnt); atomic_val_t cnt = atomic_inc(&buffered_cnt);
if (panic_mode) { if (panic_mode) {
unsigned int key = irq_lock(); static struct k_spinlock process_lock;
k_spinlock_key_t key = k_spin_lock(&process_lock);
(void)log_process(); (void)log_process();
irq_unlock(key);
} else if (proc_tid != NULL && cnt == 0) { k_spin_unlock(&process_lock, key);
k_timer_start(&log_process_thread_timer, } else if (proc_tid != NULL) {
K_MSEC(CONFIG_LOG_PROCESS_THREAD_SLEEP_MS), K_NO_WAIT); if (cnt == 0) {
} else if (CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD) { k_timer_start(&log_process_thread_timer,
if ((cnt == CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD) && K_MSEC(CONFIG_LOG_PROCESS_THREAD_SLEEP_MS),
(proc_tid != NULL)) { K_NO_WAIT);
} else if (CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD &&
cnt == CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD) {
k_timer_stop(&log_process_thread_timer); k_timer_stop(&log_process_thread_timer);
k_sem_give(&log_process_thread_sem); k_sem_give(&log_process_thread_sem);
} else {
/* No action needed. Message processing will be triggered by the
* timeout or when number of upcoming messages exceeds the
* threshold.
*/
} }
} else {
/* No action needed. Message processing will be triggered by the
* timeout or when number of upcoming messages exceeds the
* threshold.
*/
;
} }
} }

View file

@ -73,9 +73,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 436 #define HEXDUMP_USAGE 436
#define MORE_ARGS_USAGE 452 #define MORE_ARGS_USAGE 452
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 152 #define SIMPLE_USAGE 168
#define HEXDUMP_USAGE 152 #define HEXDUMP_USAGE 168
#define MORE_ARGS_USAGE 152 #define MORE_ARGS_USAGE 171
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 823 #define SIMPLE_USAGE 823
#define HEXDUMP_USAGE 823 #define HEXDUMP_USAGE 823
@ -113,9 +113,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 416 #define HEXDUMP_USAGE 416
#define MORE_ARGS_USAGE 456 #define MORE_ARGS_USAGE 456
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 224 #define SIMPLE_USAGE 256
#define HEXDUMP_USAGE 224 #define HEXDUMP_USAGE 240
#define MORE_ARGS_USAGE 240 #define MORE_ARGS_USAGE 272
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 876 #define SIMPLE_USAGE 876
#define HEXDUMP_USAGE 860 #define HEXDUMP_USAGE 860
@ -133,9 +133,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 1088 #define HEXDUMP_USAGE 1088
#define MORE_ARGS_USAGE 1152 #define MORE_ARGS_USAGE 1152
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 528 #define SIMPLE_USAGE 576
#define HEXDUMP_USAGE 528 #define HEXDUMP_USAGE 576
#define MORE_ARGS_USAGE 560 #define MORE_ARGS_USAGE 608
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 1552 #define SIMPLE_USAGE 1552
#define HEXDUMP_USAGE 1536 #define HEXDUMP_USAGE 1536
@ -153,9 +153,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 456 #define HEXDUMP_USAGE 456
#define MORE_ARGS_USAGE 472 #define MORE_ARGS_USAGE 472
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 208 #define SIMPLE_USAGE 240
#define HEXDUMP_USAGE 208 #define HEXDUMP_USAGE 240
#define MORE_ARGS_USAGE 208 #define MORE_ARGS_USAGE 240
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 880 #define SIMPLE_USAGE 880
#define HEXDUMP_USAGE 880 #define HEXDUMP_USAGE 880
@ -174,8 +174,8 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define MORE_ARGS_USAGE 472 #define MORE_ARGS_USAGE 472
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 304 #define SIMPLE_USAGE 304
#define HEXDUMP_USAGE 112 #define HEXDUMP_USAGE 240
#define MORE_ARGS_USAGE 208 #define MORE_ARGS_USAGE 240
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 896 #define SIMPLE_USAGE 896
#define HEXDUMP_USAGE 896 #define HEXDUMP_USAGE 896
@ -193,9 +193,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 768 #define HEXDUMP_USAGE 768
#define MORE_ARGS_USAGE 736 #define MORE_ARGS_USAGE 736
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 272 #define SIMPLE_USAGE 320
#define HEXDUMP_USAGE 272 #define HEXDUMP_USAGE 320
#define MORE_ARGS_USAGE 272 #define MORE_ARGS_USAGE 320
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 1104 #define SIMPLE_USAGE 1104
#define HEXDUMP_USAGE 1104 #define HEXDUMP_USAGE 1104
@ -213,9 +213,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 704 #define HEXDUMP_USAGE 704
#define MORE_ARGS_USAGE 736 #define MORE_ARGS_USAGE 736
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 272 #define SIMPLE_USAGE 320
#define HEXDUMP_USAGE 272 #define HEXDUMP_USAGE 320
#define MORE_ARGS_USAGE 272 #define MORE_ARGS_USAGE 320
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS) #elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 1104 #define SIMPLE_USAGE 1104
#define HEXDUMP_USAGE 1104 #define HEXDUMP_USAGE 1104