| # Copyright (c) 2021 Nordic Semiconductor ASA |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menu "Processing" |
| |
| if !LOG_MINIMAL |
| |
| config LOG_PRINTK |
| bool "Process printk messages" |
| help |
| LOG_PRINTK messages are formatted in place and logged unconditionally. |
| |
| config LOG_PRINTK_MAX_STRING_LENGTH |
| int "Maximum string length supported by LOG_PRINTK" |
| depends on LOG_PRINTK |
| depends on (!LOG_IMMEDIATE || USERSPACE) |
| default 128 |
| help |
| Array is allocated on the stack. |
| |
| if !LOG_IMMEDIATE |
| |
| 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 1024 if NO_OPTIMIZATIONS |
| default 1024 if XTENSA |
| default 768 |
| help |
| Set the internal stack size for log processing thread. |
| |
| endif # LOG_PROCESS_THREAD |
| |
| config LOG_BUFFER_SIZE |
| int "Number of bytes dedicated for the logger internal buffer" |
| default 1024 |
| range 128 65536 |
| help |
| Number of bytes dedicated for the logger internal buffer. |
| |
| endif # !LOG_IMMEDIATE |
| |
| if LOG_MODE_DEFERRED |
| |
| config LOG_DETECT_MISSED_STRDUP |
| bool "Detect missed handling of transient strings" |
| default y if !LOG_IMMEDIATE |
| help |
| If enabled, logger will assert and log error message is it detects |
| that string format specifier (%s) and string address which is not from |
| read only memory section and not from pool used for string duplicates. |
| String argument must be duplicated in that case using log_strdup(). |
| Detection is performed during log processing thus it does not impact |
| logging timing. |
| |
| config LOG_STRDUP_MAX_STRING |
| int "Longest string that can be duplicated using log_strdup()" |
| range 1 8192 |
| default 66 if BT |
| default 46 if NETWORKING |
| default 32 |
| help |
| Longer strings are truncated. |
| |
| config LOG_STRDUP_BUF_COUNT |
| int "Number of buffers in the pool used by log_strdup()" |
| default 8 if BT |
| default 4 |
| help |
| Number of calls to log_strdup() which can be pending before flushed |
| to output. If "<log_strdup alloc failed>" message is seen in the log |
| output, it means this value is too small and should be increased. |
| Each entry takes CONFIG_LOG_STRDUP_MAX_STRING bytes of memory plus |
| some additional fixed overhead. |
| |
| config LOG_STRDUP_POOL_PROFILING |
| bool "Enable profiling of pool used for log_strdup()" |
| help |
| When enabled, maximal utilization of the pool is tracked. It can |
| be read out using shell command. |
| |
| endif # LOG_MODE_DEFERRED |
| |
| if LOG2 |
| |
| 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_SPEED |
| bool "Prefer performance over size" |
| help |
| If enabled, logging may take more code size to get faster logging. |
| endif # LOG2 |
| |
| endif # !LOG_MINIMAL |
| |
| endmenu |