tracing: move tracing under subsys/
Tracing subsystem is growing and although related to debugging, it does deserve to belong into its own subsystem. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
707858eed1
commit
41abcc57c1
|
@ -19,5 +19,6 @@ add_subdirectory(fb)
|
|||
add_subdirectory(power)
|
||||
add_subdirectory(stats)
|
||||
add_subdirectory(testsuite)
|
||||
add_subdirectory(tracing)
|
||||
add_subdirectory_if_kconfig(jwt)
|
||||
add_subdirectory(canbus)
|
||||
|
|
|
@ -35,6 +35,8 @@ source "subsys/settings/Kconfig"
|
|||
|
||||
source "subsys/testsuite/Kconfig"
|
||||
|
||||
source "subsys/tracing/Kconfig"
|
||||
|
||||
source "subsys/fb/Kconfig"
|
||||
|
||||
source "subsys/jwt/Kconfig"
|
||||
|
|
|
@ -9,5 +9,3 @@ zephyr_sources_ifdef(
|
|||
CONFIG_ASAN
|
||||
asan_hacks.c
|
||||
)
|
||||
|
||||
add_subdirectory(tracing)
|
||||
|
|
|
@ -39,133 +39,6 @@ config DEBUG
|
|||
only disables optimization, more debugging variants can be selected
|
||||
from here to allow more debugging.
|
||||
|
||||
config TRACING
|
||||
bool "Enabling Tracing"
|
||||
help
|
||||
Enable system tracing. This requires a backend such as SEGGER
|
||||
Systemview to be enabled as well.
|
||||
|
||||
if TRACING
|
||||
|
||||
choice
|
||||
prompt "Tracing Method"
|
||||
default TRACING_ASYNC
|
||||
|
||||
config TRACING_SYNC
|
||||
bool "Synchronous Tracing"
|
||||
select RING_BUFFER
|
||||
help
|
||||
Enable synchronous tracing. This requires the backend to be
|
||||
very low-latency.
|
||||
|
||||
config TRACING_ASYNC
|
||||
bool "Asynchronous Tracing"
|
||||
select RING_BUFFER
|
||||
help
|
||||
Enable asynchronous tracing. This will buffer all the tracing
|
||||
packets to the ring buffer first, tracing thread will try to
|
||||
output as much data in ring buffer as possible when tracing
|
||||
thread get scheduled.
|
||||
|
||||
endchoice
|
||||
|
||||
config TRACING_THREAD_STACK_SIZE
|
||||
int "Stack size of tracing thread"
|
||||
default 1024
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
Stack size of tracing thread.
|
||||
|
||||
config TRACING_THREAD_WAIT_THRESHOLD
|
||||
int "Tracing thread waiting threshold"
|
||||
default 100
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
Tracing thread waiting period given in milliseconds after
|
||||
every first packet put to tracing buffer.
|
||||
|
||||
config TRACING_BUFFER_SIZE
|
||||
int "Size of tracing buffer"
|
||||
default 2048 if TRACING_ASYNC
|
||||
default TRACING_PACKET_MAX_SIZE if TRACING_SYNC
|
||||
range 32 65536
|
||||
help
|
||||
Size of tracing buffer. If TRACING_ASYNC is enabled, tracing buffer
|
||||
is used as ring_buffer to buffer data packet and string packet. If
|
||||
TRACING_SYNC is enabled, it's used to hold the formated data.
|
||||
|
||||
config TRACING_PACKET_MAX_SIZE
|
||||
int "Max size of one tracing packet"
|
||||
default 32
|
||||
help
|
||||
Max size of one tracing packet.
|
||||
|
||||
choice
|
||||
prompt "Tracing Backend"
|
||||
default TRACING_BACKEND_UART
|
||||
|
||||
config TRACING_BACKEND_UART
|
||||
bool "Enable UART backend"
|
||||
depends on UART_CONSOLE
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
When enabled backend is using UART to output tracing data.
|
||||
|
||||
config TRACING_BACKEND_USB
|
||||
bool "Enable USB backend"
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
When enabled backend is using USB to output tracing data.
|
||||
|
||||
config TRACING_BACKEND_POSIX
|
||||
bool "Enable POSIX backend"
|
||||
depends on TRACING_SYNC
|
||||
depends on ARCH_POSIX
|
||||
help
|
||||
When enabled backend is using posix API to output tracing
|
||||
data to file system.
|
||||
|
||||
endchoice
|
||||
|
||||
config TRACING_BACKEND_UART_NAME
|
||||
string "Device Name of UART Device for UART backend"
|
||||
default "$(dt_chosen_label,$(DT_CHOSEN_Z_CONSOLE))" if HAS_DTS
|
||||
default "UART_0"
|
||||
depends on TRACING_BACKEND_UART
|
||||
help
|
||||
This option specifies the name of UART device to be used for
|
||||
tracing backend.
|
||||
|
||||
config TRACING_USB_MPS
|
||||
int "USB backend max packet size"
|
||||
default 64
|
||||
depends on TRACING_BACKEND_USB
|
||||
help
|
||||
USB tracing backend max packet size(endpoint MPS).
|
||||
|
||||
config TRACING_HANDLE_HOST_CMD
|
||||
bool "Enable host cmd handle"
|
||||
select UART_INTERRUPT_DRIVEN if TRACING_BACKEND_UART
|
||||
help
|
||||
When enabled tracing will handle cmd from host to dynamically
|
||||
enable and disable tracing to have host capture tracing stream
|
||||
data conveniently.
|
||||
|
||||
config TRACING_CMD_BUFFER_SIZE
|
||||
int "Size of tracing cmd buffer"
|
||||
default 32
|
||||
range 32 128
|
||||
help
|
||||
Size of tracing command buffer.
|
||||
|
||||
config TRACING_ISR
|
||||
bool "Enabling Tracing ISR"
|
||||
help
|
||||
Enable tracing ISR. This requires the backend to be
|
||||
very low-latency.
|
||||
|
||||
endif
|
||||
|
||||
config ASAN
|
||||
bool "Build with address sanitizer"
|
||||
depends on ARCH_POSIX
|
||||
|
@ -409,53 +282,5 @@ config OPENOCD_SUPPORT
|
|||
OpenOCD to determine the state of running threads. (This option
|
||||
selects CONFIG_THREAD_MONITOR, so all of its caveats are implied.)
|
||||
|
||||
config TRACING_CPU_STATS
|
||||
bool "Enable CPU usage tracing"
|
||||
select THREAD_MONITOR
|
||||
select THREAD_STACK_INFO
|
||||
select TRACING
|
||||
help
|
||||
Module provides information about percent of CPU usage based on
|
||||
tracing hooks for threads switching in and out, interrupts enters
|
||||
and exits (only distinguishes between idle thread, non idle thread
|
||||
and scheduler). Use provided API or enable automatic logging to
|
||||
get values.
|
||||
|
||||
config TRACING_CPU_STATS_LOG
|
||||
bool "Enable current CPU usage logging"
|
||||
depends on TRACING_CPU_STATS
|
||||
help
|
||||
Periodically displays information about CPU usage.
|
||||
|
||||
config TRACING_CPU_STATS_INTERVAL
|
||||
int "Logging interval for CPU measurements [ms]"
|
||||
default 2000
|
||||
depends on TRACING_CPU_STATS_LOG
|
||||
help
|
||||
Time period of displaying information about CPU usage.
|
||||
|
||||
config TRACING_CTF
|
||||
bool "Tracing via Common Trace Format support"
|
||||
select THREAD_MONITOR
|
||||
select TRACING
|
||||
help
|
||||
Enable tracing to a Common Trace Format stream.
|
||||
|
||||
config TRACING_CTF_TIMESTAMP
|
||||
bool "Enable CTF internal timestamp"
|
||||
default y
|
||||
help
|
||||
Timestamp prefix will be added to the beginning of CTF
|
||||
event internally.
|
||||
|
||||
config TRACING_TEST
|
||||
bool "Tracing for test usage"
|
||||
depends on TRACING
|
||||
help
|
||||
Enable tracing for testing kinds of format purpose. It must
|
||||
implement the tracing hooks defined in tracing_test.h
|
||||
|
||||
|
||||
source "subsys/debug/Kconfig.segger"
|
||||
|
||||
endmenu
|
||||
|
|
182
subsys/tracing/Kconfig
Normal file
182
subsys/tracing/Kconfig
Normal file
|
@ -0,0 +1,182 @@
|
|||
# Debug configuration options
|
||||
|
||||
# Copyright (c) 2015 Wind River Systems, Inc.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
DT_CHOSEN_Z_CONSOLE := zephyr,console
|
||||
|
||||
config TRACING
|
||||
bool "Enabling Tracing"
|
||||
help
|
||||
Enable system tracing. This requires a backend such as SEGGER
|
||||
Systemview to be enabled as well.
|
||||
|
||||
if TRACING
|
||||
|
||||
choice
|
||||
prompt "Tracing Method"
|
||||
default TRACING_ASYNC
|
||||
|
||||
config TRACING_SYNC
|
||||
bool "Synchronous Tracing"
|
||||
select RING_BUFFER
|
||||
help
|
||||
Enable synchronous tracing. This requires the backend to be
|
||||
very low-latency.
|
||||
|
||||
config TRACING_ASYNC
|
||||
bool "Asynchronous Tracing"
|
||||
select RING_BUFFER
|
||||
help
|
||||
Enable asynchronous tracing. This will buffer all the tracing
|
||||
packets to the ring buffer first, tracing thread will try to
|
||||
output as much data in ring buffer as possible when tracing
|
||||
thread get scheduled.
|
||||
|
||||
endchoice
|
||||
|
||||
config TRACING_THREAD_STACK_SIZE
|
||||
int "Stack size of tracing thread"
|
||||
default 1024
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
Stack size of tracing thread.
|
||||
|
||||
config TRACING_THREAD_WAIT_THRESHOLD
|
||||
int "Tracing thread waiting threshold"
|
||||
default 100
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
Tracing thread waiting period given in milliseconds after
|
||||
every first packet put to tracing buffer.
|
||||
|
||||
config TRACING_BUFFER_SIZE
|
||||
int "Size of tracing buffer"
|
||||
default 2048 if TRACING_ASYNC
|
||||
default TRACING_PACKET_MAX_SIZE if TRACING_SYNC
|
||||
range 32 65536
|
||||
help
|
||||
Size of tracing buffer. If TRACING_ASYNC is enabled, tracing buffer
|
||||
is used as ring_buffer to buffer data packet and string packet. If
|
||||
TRACING_SYNC is enabled, it's used to hold the formated data.
|
||||
|
||||
config TRACING_PACKET_MAX_SIZE
|
||||
int "Max size of one tracing packet"
|
||||
default 32
|
||||
help
|
||||
Max size of one tracing packet.
|
||||
|
||||
choice
|
||||
prompt "Tracing Backend"
|
||||
default TRACING_BACKEND_UART
|
||||
|
||||
config TRACING_BACKEND_UART
|
||||
bool "Enable UART backend"
|
||||
depends on UART_CONSOLE
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
When enabled backend is using UART to output tracing data.
|
||||
|
||||
config TRACING_BACKEND_USB
|
||||
bool "Enable USB backend"
|
||||
depends on TRACING_ASYNC
|
||||
help
|
||||
When enabled backend is using USB to output tracing data.
|
||||
|
||||
config TRACING_BACKEND_POSIX
|
||||
bool "Enable POSIX backend"
|
||||
depends on TRACING_SYNC
|
||||
depends on ARCH_POSIX
|
||||
help
|
||||
When enabled backend is using posix API to output tracing
|
||||
data to file system.
|
||||
|
||||
endchoice
|
||||
|
||||
config TRACING_BACKEND_UART_NAME
|
||||
string "Device Name of UART Device for UART backend"
|
||||
default "$(dt_chosen_label,$(DT_CHOSEN_Z_CONSOLE))" if HAS_DTS
|
||||
default "UART_0"
|
||||
depends on TRACING_BACKEND_UART
|
||||
help
|
||||
This option specifies the name of UART device to be used for
|
||||
tracing backend.
|
||||
|
||||
config TRACING_USB_MPS
|
||||
int "USB backend max packet size"
|
||||
default 64
|
||||
depends on TRACING_BACKEND_USB
|
||||
help
|
||||
USB tracing backend max packet size(endpoint MPS).
|
||||
|
||||
config TRACING_HANDLE_HOST_CMD
|
||||
bool "Enable host cmd handle"
|
||||
select UART_INTERRUPT_DRIVEN if TRACING_BACKEND_UART
|
||||
help
|
||||
When enabled tracing will handle cmd from host to dynamically
|
||||
enable and disable tracing to have host capture tracing stream
|
||||
data conveniently.
|
||||
|
||||
config TRACING_CMD_BUFFER_SIZE
|
||||
int "Size of tracing cmd buffer"
|
||||
default 32
|
||||
range 32 128
|
||||
help
|
||||
Size of tracing command buffer.
|
||||
|
||||
config TRACING_ISR
|
||||
bool "Enabling Tracing ISR"
|
||||
help
|
||||
Enable tracing ISR. This requires the backend to be
|
||||
very low-latency.
|
||||
|
||||
endif
|
||||
|
||||
config TRACING_CPU_STATS
|
||||
bool "Enable CPU usage tracing"
|
||||
select THREAD_MONITOR
|
||||
select THREAD_STACK_INFO
|
||||
select TRACING
|
||||
help
|
||||
Module provides information about percent of CPU usage based on
|
||||
tracing hooks for threads switching in and out, interrupts enters
|
||||
and exits (only distinguishes between idle thread, non idle thread
|
||||
and scheduler). Use provided API or enable automatic logging to
|
||||
get values.
|
||||
|
||||
config TRACING_CPU_STATS_LOG
|
||||
bool "Enable current CPU usage logging"
|
||||
depends on TRACING_CPU_STATS
|
||||
help
|
||||
Periodically displays information about CPU usage.
|
||||
|
||||
config TRACING_CPU_STATS_INTERVAL
|
||||
int "Logging interval for CPU measurements [ms]"
|
||||
default 2000
|
||||
depends on TRACING_CPU_STATS_LOG
|
||||
help
|
||||
Time period of displaying information about CPU usage.
|
||||
|
||||
config TRACING_CTF
|
||||
bool "Tracing via Common Trace Format support"
|
||||
select THREAD_MONITOR
|
||||
select TRACING
|
||||
help
|
||||
Enable tracing to a Common Trace Format stream.
|
||||
|
||||
config TRACING_CTF_TIMESTAMP
|
||||
bool "Enable CTF internal timestamp"
|
||||
default y
|
||||
help
|
||||
Timestamp prefix will be added to the beginning of CTF
|
||||
event internally.
|
||||
|
||||
config TRACING_TEST
|
||||
bool "Tracing for test usage"
|
||||
depends on TRACING
|
||||
help
|
||||
Enable tracing for testing kinds of format purpose. It must
|
||||
implement the tracing hooks defined in tracing_test.h
|
||||
|
||||
|
||||
source "subsys/tracing/Kconfig.segger"
|
Loading…
Reference in a new issue