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:
parent
de4b564754
commit
e4bfec8100
2 changed files with 36 additions and 34 deletions
|
@ -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.
|
|
||||||
*/
|
|
||||||
;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue