diff --git a/subsys/logging/log_core.c b/subsys/logging/log_core.c index 14f647fbcac..3693ca7152c 100644 --- a/subsys/logging/log_core.c +++ b/subsys/logging/log_core.c @@ -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_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_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 && + 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. + */ } - } else { - /* No action needed. Message processing will be triggered by the - * timeout or when number of upcoming messages exceeds the - * threshold. - */ - ; } } diff --git a/tests/subsys/logging/log_stack/src/main.c b/tests/subsys/logging/log_stack/src/main.c index a7ce850796c..a9c8349ac5f 100644 --- a/tests/subsys/logging/log_stack/src/main.c +++ b/tests/subsys/logging/log_stack/src/main.c @@ -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