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);
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();
irq_unlock(key);
} else if (proc_tid != NULL && cnt == 0) {
k_spin_unlock(&process_lock, key);
} else if (proc_tid != NULL) {
if (cnt == 0) {
k_timer_start(&log_process_thread_timer,
K_MSEC(CONFIG_LOG_PROCESS_THREAD_SLEEP_MS), K_NO_WAIT);
} else if (CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD) {
if ((cnt == CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD) &&
(proc_tid != NULL)) {
K_MSEC(CONFIG_LOG_PROCESS_THREAD_SLEEP_MS),
K_NO_WAIT);
} else if (CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD &&
cnt == CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD) {
k_timer_stop(&log_process_thread_timer);
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.
*/
;
}
}
}

View file

@ -73,9 +73,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 436
#define MORE_ARGS_USAGE 452
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 152
#define HEXDUMP_USAGE 152
#define MORE_ARGS_USAGE 152
#define SIMPLE_USAGE 168
#define HEXDUMP_USAGE 168
#define MORE_ARGS_USAGE 171
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_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 MORE_ARGS_USAGE 456
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 224
#define HEXDUMP_USAGE 224
#define MORE_ARGS_USAGE 240
#define SIMPLE_USAGE 256
#define HEXDUMP_USAGE 240
#define MORE_ARGS_USAGE 272
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 876
#define HEXDUMP_USAGE 860
@ -133,9 +133,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 1088
#define MORE_ARGS_USAGE 1152
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 528
#define HEXDUMP_USAGE 528
#define MORE_ARGS_USAGE 560
#define SIMPLE_USAGE 576
#define HEXDUMP_USAGE 576
#define MORE_ARGS_USAGE 608
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 1552
#define HEXDUMP_USAGE 1536
@ -153,9 +153,9 @@ ZTEST_SUITE(test_log_stack, NULL, NULL, NULL, NULL, after);
#define HEXDUMP_USAGE 456
#define MORE_ARGS_USAGE 472
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 208
#define HEXDUMP_USAGE 208
#define MORE_ARGS_USAGE 208
#define SIMPLE_USAGE 240
#define HEXDUMP_USAGE 240
#define MORE_ARGS_USAGE 240
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_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
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 304
#define HEXDUMP_USAGE 112
#define MORE_ARGS_USAGE 208
#define HEXDUMP_USAGE 240
#define MORE_ARGS_USAGE 240
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_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 MORE_ARGS_USAGE 736
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 272
#define HEXDUMP_USAGE 272
#define MORE_ARGS_USAGE 272
#define SIMPLE_USAGE 320
#define HEXDUMP_USAGE 320
#define MORE_ARGS_USAGE 320
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_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 MORE_ARGS_USAGE 736
#elif !defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 272
#define HEXDUMP_USAGE 272
#define MORE_ARGS_USAGE 272
#define SIMPLE_USAGE 320
#define HEXDUMP_USAGE 320
#define MORE_ARGS_USAGE 320
#elif defined(CONFIG_LOG_MODE_IMMEDIATE) && defined(CONFIG_NO_OPTIMIZATIONS)
#define SIMPLE_USAGE 1104
#define HEXDUMP_USAGE 1104