123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- # 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
|