|  | # Copyright (c) 2021 Nordic Semiconductor ASA | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | menu "Processing" | 
|  |  | 
|  | if !LOG_MODE_MINIMAL | 
|  |  | 
|  | config LOG_PRINTK | 
|  | bool "Process printk messages" | 
|  | default y if PRINTK | 
|  | help | 
|  | If enabled, printk messages are redirected to the logging subsystem. | 
|  | The messages are formatted in place and logged unconditionally. | 
|  |  | 
|  | if LOG_MODE_DEFERRED && !LOG_FRONTEND_ONLY | 
|  |  | 
|  | config LOG_MODE_OVERFLOW | 
|  | bool "Drop oldest message when full" | 
|  | default y | 
|  | help | 
|  | If enabled, then if there is no space to log a new message, the | 
|  | oldest one is dropped. If disabled, current message is dropped. | 
|  |  | 
|  | config LOG_BLOCK_IN_THREAD | 
|  | bool "Block in thread context on full" | 
|  | depends on MULTITHREADING | 
|  | help | 
|  | When enabled logger will block (if in the thread context) when | 
|  | internal logger buffer is full and new message cannot be allocated. | 
|  |  | 
|  | config LOG_BLOCK_IN_THREAD_TIMEOUT_MS | 
|  | int "Maximum time (in milliseconds) thread can be blocked" | 
|  | default 1000 | 
|  | range -1 10000 | 
|  | depends on LOG_BLOCK_IN_THREAD | 
|  | help | 
|  | If new buffer for a log message cannot be allocated in that time, log | 
|  | message is dropped. Forever blocking (-1) is possible however may lead | 
|  | to the logger deadlock if logging is enabled in threads used for | 
|  | logging (e.g. logger or shell thread). | 
|  |  | 
|  | config LOG_PROCESS_TRIGGER_THRESHOLD | 
|  | int "Number of buffered log messages before flushing" | 
|  | default 10 | 
|  | depends on MULTITHREADING | 
|  | help | 
|  | When number of buffered messages reaches the threshold thread is waken | 
|  | up. Log processing thread ID is provided during log initialization. | 
|  | Set 0 to disable the feature. If LOG_PROCESS_THREAD is enabled then | 
|  | this threshold is used by the internal thread. | 
|  |  | 
|  | config LOG_PROCESS_THREAD | 
|  | bool "Use internal thread for log processing" | 
|  | depends on MULTITHREADING | 
|  | default y | 
|  | help | 
|  | When enabled thread is created by the logger subsystem. Thread is | 
|  | waken up periodically (see LOG_PROCESS_THREAD_SLEEP_MS) and whenever | 
|  | number of buffered messages exceeds the threshold (see | 
|  | LOG_PROCESS_TRIGGER_THR). | 
|  |  | 
|  | if LOG_PROCESS_THREAD | 
|  |  | 
|  | config LOG_PROCESS_THREAD_STARTUP_DELAY_MS | 
|  | int "Set log processing thread startup delay" | 
|  | default 0 | 
|  | help | 
|  | Log processing thread starts after requested delay given in | 
|  | milliseconds. When started, thread process any buffered messages. | 
|  |  | 
|  | config LOG_PROCESS_THREAD_SLEEP_MS | 
|  | int "Set internal log processing thread sleep period" | 
|  | default 1000 | 
|  | help | 
|  | Log processing thread sleeps for requested period given in | 
|  | milliseconds. When waken up, thread process any buffered messages. | 
|  |  | 
|  | config LOG_PROCESS_THREAD_STACK_SIZE | 
|  | int "Stack size for the internal log processing thread" | 
|  | default 4096 if (X86 && X86_64) | 
|  | default 4096 if ARM64 | 
|  | default 4096 if (ARC && 64BIT) | 
|  | default 4096 if SPARC | 
|  | default 2048 if COVERAGE_GCOV | 
|  | default 2048 if (RISCV && 64BIT) | 
|  | default 2048 if LOG_BACKEND_FS | 
|  | default 1152 if LOG_BACKEND_NET | 
|  | default 4096 if NO_OPTIMIZATIONS | 
|  | default 1024 if XTENSA | 
|  | default 2048 if ASSERT || SPIN_VALIDATE | 
|  | default 768 | 
|  | help | 
|  | Set the internal stack size for log processing thread. | 
|  |  | 
|  | config LOG_PROCESSING_LATENCY_US | 
|  | int "Maximum remote message latency (in microseconds)" | 
|  | default 100000 | 
|  | depends on LOG_MULTIDOMAIN | 
|  | help | 
|  | Arbitrary time between log message creation in the remote domain and | 
|  | processing in the local domain. Higher value increases message processing | 
|  | latency but increases chances of maintaining correct ordering of the | 
|  | messages. Option is used only if links are using dedicated buffers | 
|  | for remote messages. | 
|  |  | 
|  | config LOG_PROCESS_THREAD_CUSTOM_PRIORITY | 
|  | bool "Custom log thread priority" | 
|  | help | 
|  | Set a custom value for the log processing thread. | 
|  |  | 
|  | config LOG_PROCESS_THREAD_PRIORITY | 
|  | int "Priority of the log processing thread" | 
|  | default 0 | 
|  | depends on LOG_PROCESS_THREAD_CUSTOM_PRIORITY | 
|  | help | 
|  | The priority of the log processing thread. | 
|  | When not set the priority is set to K_LOWEST_APPLICATION_THREAD_PRIO. | 
|  |  | 
|  | endif # LOG_PROCESS_THREAD | 
|  |  | 
|  | config LOG_BUFFER_SIZE | 
|  | int "Number of bytes dedicated for the logger internal buffer" | 
|  | default 1024 | 
|  | range 128 1048576 | 
|  | help | 
|  | Number of bytes dedicated for the logger internal buffer. | 
|  |  | 
|  | endif # LOG_MODE_DEFERRED && !LOG_FRONTEND_ONLY | 
|  |  | 
|  | if LOG_MULTIDOMAIN | 
|  |  | 
|  | config LOG_DOMAIN_NAME_CACHE_ENTRY_SIZE | 
|  | int "Cache slot size of domain name" | 
|  | default 8 | 
|  |  | 
|  | config LOG_DOMAIN_NAME_CACHE_ENTRY_COUNT | 
|  | int "Number of entries in domain name cache" | 
|  | default 2 | 
|  |  | 
|  | config LOG_SOURCE_NAME_CACHE_ENTRY_SIZE | 
|  | int "Cache slot size of source name" | 
|  | default 16 | 
|  |  | 
|  | config LOG_SOURCE_NAME_CACHE_ENTRY_COUNT | 
|  | int "Number of entries in source name cache" | 
|  | default 8 | 
|  |  | 
|  | endif # LOG_MULTIDOMAIN | 
|  |  | 
|  | config LOG_TRACE_SHORT_TIMESTAMP | 
|  | bool "Use 24 bit timestamp for tracing" | 
|  | default y | 
|  | help | 
|  | When enabled, shorter timestamp is used and trace message is | 
|  | compressed. | 
|  |  | 
|  | config LOG_TIMESTAMP_64BIT | 
|  | bool "Use 64 bit timestamp" | 
|  |  | 
|  | config LOG_TIMESTAMP_USE_REALTIME | 
|  | bool "Use real time clock for timestamp" | 
|  | select LOG_TIMESTAMP_64BIT | 
|  | help | 
|  | When enabled, real time clock is used for timestamping. | 
|  |  | 
|  | config LOG_SPEED | 
|  | bool "Prefer performance over size" | 
|  | depends on LOG_MODE_DEFERRED | 
|  | depends on !LOG_FRONTEND | 
|  | help | 
|  | If enabled, logging may take more code size to get faster logging. | 
|  |  | 
|  | endif # !LOG_MODE_MINIMAL | 
|  |  | 
|  | endmenu |