Move to own directory to prepare for new related code. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
117 lines
3.5 KiB
Plaintext
117 lines
3.5 KiB
Plaintext
# Thread analyzer configuration options
|
|
|
|
# Copyright (c) 2015 Wind River Systems, Inc.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig THREAD_ANALYZER
|
|
bool "Thread analyzer"
|
|
depends on !ARCH_POSIX
|
|
select INIT_STACKS
|
|
select THREAD_MONITOR
|
|
select THREAD_STACK_INFO
|
|
select THREAD_RUNTIME_STATS
|
|
help
|
|
Enable thread analyzer functionality and all the required modules.
|
|
This module may be used to debug thread configuration issues, e.g.
|
|
stack size configuration to find stack overflow or to find stacks
|
|
which may be optimized.
|
|
|
|
if THREAD_ANALYZER
|
|
module = THREAD_ANALYZER
|
|
module-str = thread analyzer
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
choice
|
|
prompt "Thread analysis print mode"
|
|
default THREAD_ANALYZER_USE_PRINTK
|
|
|
|
config THREAD_ANALYZER_USE_LOG
|
|
bool "Use logger output"
|
|
select LOG
|
|
help
|
|
Use logger output to print thread information.
|
|
|
|
config THREAD_ANALYZER_USE_PRINTK
|
|
bool "Use printk function"
|
|
help
|
|
Use kernel printk function to print thread information.
|
|
|
|
endchoice
|
|
|
|
config THREAD_ANALYZER_ISR_STACK_USAGE
|
|
bool "Analyze interrupt stacks usage"
|
|
default y
|
|
|
|
config THREAD_ANALYZER_PRIV_STACK_USAGE
|
|
bool "Analyze privileged stacks usage"
|
|
depends on USERSPACE
|
|
depends on ARCH_HAS_THREAD_PRIV_STACK_SPACE_GET
|
|
help
|
|
Print privileged stack usage for user threads.
|
|
|
|
config THREAD_ANALYZER_RUN_UNLOCKED
|
|
bool "Run analysis with interrupts unlocked"
|
|
default y
|
|
help
|
|
The thread analysis takes quite a long time.
|
|
Every thread it finds is analyzed word by word to find any that
|
|
does not match the magic number.
|
|
Normally while thread are analyzed the k_thread_foreach function
|
|
is used.
|
|
While this is a safe run from the thread list perspective it may lock
|
|
the interrupts for a long time - long enough to disconnect when
|
|
Bluetooth communication is used.
|
|
Setting this flag will force thread analyzer to use
|
|
the k_thread_foreach_unlocked function.
|
|
This will allow the interrupts to be processed while the thread is
|
|
analyzed.
|
|
For the limitation of such configuration see the k_thread_foreach
|
|
documentation.
|
|
|
|
config THREAD_ANALYZER_AUTO
|
|
bool "Run periodic thread analysis in a thread"
|
|
help
|
|
Run the thread analyzer automatically, without the need to add
|
|
any code to the application.
|
|
Thread analysis would be called periodically.
|
|
|
|
if THREAD_ANALYZER_AUTO
|
|
|
|
config THREAD_ANALYZER_AUTO_SEPARATE_CORES
|
|
bool "Run thread analyzer separately on each core"
|
|
default y if KERNEL_COHERENCE
|
|
depends on SCHED_CPU_MASK
|
|
help
|
|
Run the thread analyzer auto thread on each core and report
|
|
cores separately. This feature is needed for platforms running
|
|
on cache-incoherent architectures.
|
|
|
|
config THREAD_ANALYZER_AUTO_INTERVAL
|
|
int "Thread analysis interval"
|
|
default 60
|
|
range 5 3600
|
|
help
|
|
The time in seconds to call thread analyzer periodic printing function.
|
|
|
|
config THREAD_ANALYZER_AUTO_STACK_SIZE
|
|
int "Stack size for the periodic thread analysis thread"
|
|
default 2048 if THREAD_ANALYZER_USE_LOG && LOG_MODE_IMMEDIATE && NO_OPTIMIZATIONS
|
|
default 1024
|
|
|
|
config THREAD_ANALYZER_AUTO_THREAD_PRIORITY_OVERRIDE
|
|
bool "Override default thread analysis thread priority"
|
|
help
|
|
Option to change the default value of thread analysis thread priority.
|
|
|
|
if THREAD_ANALYZER_AUTO_THREAD_PRIORITY_OVERRIDE
|
|
config THREAD_ANALYZER_AUTO_THREAD_PRIORITY
|
|
int "Thread analysis thread priority"
|
|
default 0
|
|
help
|
|
Set thread priority of the thread analysis
|
|
endif # THREAD_ANALYZER_AUTO_THREAD_PRIORITY_OVERRIDE
|
|
|
|
endif # THREAD_ANALYZER_AUTO
|
|
|
|
endif # THREAD_ANALYZER
|