tracing: update pm device runtime

Update the tracing definitions used by the device runtime API.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This commit is contained in:
Gerard Marull-Paretas 2021-11-02 11:54:08 +01:00 committed by Christopher Friedt
commit 866b88fd2c
6 changed files with 129 additions and 50 deletions

View file

@ -1987,18 +1987,78 @@
#define sys_port_trace_pm_system_suspend_exit(ticks, ret) #define sys_port_trace_pm_system_suspend_exit(ticks, ret)
#define sys_port_trace_pm_device_request_enter(dev, target_state) /**
* @brief PM Device Runtime Tracing APIs
* @defgroup pm_device_runtime_tracing_apis PM Device Runtime Tracing APIs
* @ingroup tracing_apis
* @{
*/
#define sys_port_trace_pm_device_request_exit(dev, ret) /**
* @brief Trace getting a device call entry.
* @param dev Device instance.
*/
#define sys_port_trace_pm_device_runtime_get_enter(dev)
#define sys_port_trace_pm_device_enable_enter(dev) /**
* @brief Trace getting a device call exit.
* @param dev Device instance.
* @param ret Return value.
*/
#define sys_port_trace_pm_device_runtime_get_exit(dev, ret)
#define sys_port_trace_pm_device_enable_exit(dev) /**
* @brief Trace putting a device call entry.
* @param dev Device instance.
*/
#define sys_port_trace_pm_device_runtime_put_enter(dev)
#define sys_port_trace_pm_device_disable_enter(dev) /**
* @brief Trace putting a device call exit.
* @param dev Device instance.
* @param ret Return value.
*/
#define sys_port_trace_pm_device_runtime_put_exit(dev, ret)
#define sys_port_trace_pm_device_disable_exit(dev) /**
* @brief Trace putting a device (asynchronously) call entry.
* @param dev Device instance.
*/
#define sys_port_trace_pm_device_runtime_put_async_enter(dev)
/**
* @brief Trace putting a device (asynchronously) call exit.
* @param dev Device instance.
* @param ret Return value.
*/
#define sys_port_trace_pm_device_runtime_put_async_exit(dev, ret)
/**
* @brief Trace enabling device runtime PM call entry.
* @param dev Device instance.
*/
#define sys_port_trace_pm_device_runtime_enable_enter(dev)
/**
* @brief Trace enabling device runtime PM call exit.
* @param dev Device instance.
*/
#define sys_port_trace_pm_device_runtime_enable_exit(dev)
/**
* @brief Trace disabling device runtime PM call entry.
* @param dev Device instance.
*/
#define sys_port_trace_pm_device_runtime_disable_enter(dev)
/**
* @brief Trace disabling device runtime PM call exit.
* @param dev Device instance.
* @param ret Return value.
*/
#define sys_port_trace_pm_device_runtime_disable_exit(dev, ret)
/** @} */ /* end of pm_device_runtime_tracing_apis */
#if defined CONFIG_PERCEPIO_TRACERECORDER #if defined CONFIG_PERCEPIO_TRACERECORDER
#include "tracing_tracerecorder.h" #include "tracing_tracerecorder.h"

View file

@ -323,13 +323,17 @@ extern "C" {
#define sys_port_trace_pm_system_suspend_enter(ticks) #define sys_port_trace_pm_system_suspend_enter(ticks)
#define sys_port_trace_pm_system_suspend_exit(ticks, ret) #define sys_port_trace_pm_system_suspend_exit(ticks, ret)
#define sys_port_trace_pm_device_request_enter(dev, target_state)
#define sys_port_trace_pm_device_request_exit(dev, ret)
#define sys_port_trace_pm_device_enable_enter(dev) #define sys_port_trace_pm_device_runtime_get_enter(dev)
#define sys_port_trace_pm_device_enable_exit(dev) #define sys_port_trace_pm_device_runtime_get_exit(dev, ret)
#define sys_port_trace_pm_device_disable_enter(dev) #define sys_port_trace_pm_device_runtime_put_enter(dev)
#define sys_port_trace_pm_device_disable_exit(dev) #define sys_port_trace_pm_device_runtime_put_exit(dev, ret)
#define sys_port_trace_pm_device_runtime_put_async_enter(dev)
#define sys_port_trace_pm_device_runtime_put_async_exit(dev, ret)
#define sys_port_trace_pm_device_runtime_enable_enter(dev)
#define sys_port_trace_pm_device_runtime_enable_exit(dev)
#define sys_port_trace_pm_device_runtime_disable_enter(dev)
#define sys_port_trace_pm_device_runtime_disable_exit(dev, ret)
void sys_trace_idle(void); void sys_trace_idle(void);
void sys_trace_isr_enter(void); void sys_trace_isr_enter(void);

View file

@ -18,7 +18,6 @@ NamedType ErrCodeStream *=%i 0=ESUCCESS -74=ENOSR -75=ENOSTR -76=EPRO
NamedType ErrCodeMsg *=%i 0=ESUCCESS -11=EAGAIN -80=ENOMSG NamedType ErrCodeMsg *=%i 0=ESUCCESS -11=EAGAIN -80=ENOMSG
NamedType PowerState *=%i 0=ACTIVE 1=RUNTIME_IDLE 2=SUSPEND_TO_IDLE 3=STANDBY 4=SUSPEND_TO_RAM 5=SUSPEND_TO_DISK 6=SOFT_OFF NamedType PowerState *=%i 0=ACTIVE 1=RUNTIME_IDLE 2=SUSPEND_TO_IDLE 3=STANDBY 4=SUSPEND_TO_RAM 5=SUSPEND_TO_DISK 6=SOFT_OFF
NamedType DevicePowerState *=%i 1=ACTIVE 2=LOW_POWER 3=SUSPEND 4=FORCE_SUSPEND 5=OFF 6=RESUMING 7=SUSPENDING
# #
# Task States # Task States
@ -163,7 +162,9 @@ TaskState 0xBF 1=dummy, 2=Waiting, 4=New, 8=Terminated, 16=Suspended, 32=Termina
154 k_lifo_alloc_put lifo=%I, data=%I 154 k_lifo_alloc_put lifo=%I, data=%I
156 pm_system_suspend ticks=%u | Returns %PowerState 155 pm_system_suspend ticks=%u | Returns %PowerState
157 pm_device_request dev=%I target_state=%DevicePowerState | Returns %u 156 pm_device_runtime_get dev=%I | Returns %u
158 pm_device_enable dev=%I 157 pm_device_runtime_put dev=%I | Returns %u
159 pm_device_disable dev=%I 158 pm_device_runtime_put_async dev=%I | Returns %u
159 pm_device_runtime_enable dev=%I
160 pm_device_runtime_disable dev=%I | Returns %u

View file

@ -614,27 +614,35 @@ void sys_trace_k_thread_pend(struct k_thread *thread);
void sys_trace_k_thread_info(struct k_thread *thread); void sys_trace_k_thread_info(struct k_thread *thread);
#define sys_port_trace_pm_device_runtime_get_enter(dev) \
#define sys_port_trace_pm_system_suspend_enter(ticks) \ SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_RUNTIME_GET, \
SEGGER_SYSVIEW_RecordU32(TID_PM_SUSPEND, (uint32_t)ticks) (uint32_t)(uintptr_t)dev)
#define sys_port_trace_pm_system_suspend_exit(ticks, ret) \ #define sys_port_trace_pm_device_runtime_get_exit(dev, ret) \
SEGGER_SYSVIEW_RecordEndCallU32(TID_PM_SUSPEND, (uint32_t)ret) SEGGER_SYSVIEW_RecordEndCallU32(TID_PM_DEVICE_RUNTIME_GET, \
(uint32_t)ret)
#define sys_port_trace_pm_device_request_enter(dev, target_state) \ #define sys_port_trace_pm_device_runtime_put_enter(dev) \
SEGGER_SYSVIEW_RecordU32x2(TID_PM_DEVICE_REQUEST, (uint32_t)(uintptr_t)dev, target_state) SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_RUNTIME_PUT, \
#define sys_port_trace_pm_device_request_exit(dev, ret) \ (uint32_t)(uintptr_t)dev)
SEGGER_SYSVIEW_RecordEndCallU32(TID_PM_DEVICE_REQUEST, (uint32_t)ret) #define sys_port_trace_pm_device_runtime_put_exit(dev, ret) \
SEGGER_SYSVIEW_RecordEndCallU32(TID_PM_DEVICE_RUNTIME_PUT, \
#define sys_port_trace_pm_device_enable_enter(dev) \ (uint32_t)ret)
SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_ENABLE, (uint32_t)(uintptr_t)dev) #define sys_port_trace_pm_device_runtime_put_async_enter(dev) \
#define sys_port_trace_pm_device_enable_exit(dev) \ SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_RUNTIME_PUT_ASYNC, \
SEGGER_SYSVIEW_RecordEndCall(TID_PM_DEVICE_ENABLE) (uint32_t)(uintptr_t)dev)
#define sys_port_trace_pm_device_runtime_put_async_exit(dev, ret) \
#define sys_port_trace_pm_device_disable_enter(dev) \ SEGGER_SYSVIEW_RecordEndCallU32(TID_PM_DEVICE_RUNTIME_PUT_ASYNC, \
SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_DISABLE, (uint32_t)(uintptr_t)dev) (uint32_t)ret)
#define sys_port_trace_pm_device_disable_exit(dev) \ #define sys_port_trace_pm_device_runtime_enable_enter(dev) \
SEGGER_SYSVIEW_RecordEndCall(TID_PM_DEVICE_DISABLE) SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_RUNTIME_ENABLE, \
(uint32_t)(uintptr_t)dev)
#define sys_port_trace_pm_device_runtime_enable_exit(dev) \
SEGGER_SYSVIEW_RecordEndCall(TID_PM_DEVICE_RUNTIME_ENABLE)
#define sys_port_trace_pm_device_runtime_disable_enter(dev) \
SEGGER_SYSVIEW_RecordU32(TID_PM_DEVICE_RUNTIME_DISABLE, \
(uint32_t)(uintptr_t)dev)
#define sys_port_trace_pm_device_runtime_disable_exit(dev, ret) \
SEGGER_SYSVIEW_RecordEndCallU32(TID_PM_DEVICE_RUNTIME_DISABLE, \
(uint32_t)ret)
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -146,14 +146,16 @@ extern "C" {
#define TID_LIFO_ALLOC_PUT (122u + TID_OFFSET) #define TID_LIFO_ALLOC_PUT (122u + TID_OFFSET)
#define TID_PM_SUSPEND (124u + TID_OFFSET) #define TID_PM_SUSPEND (123u + TID_OFFSET)
#define TID_PM_DEVICE_REQUEST (125u + TID_OFFSET) #define TID_PM_DEVICE_RUNTIME_GET (124u + TID_OFFSET)
#define TID_PM_DEVICE_ENABLE (126u + TID_OFFSET) #define TID_PM_DEVICE_RUNTIME_PUT (125u + TID_OFFSET)
#define TID_PM_DEVICE_DISABLE (127u + TID_OFFSET) #define TID_PM_DEVICE_RUNTIME_PUT_ASYNC (126u + TID_OFFSET)
#define TID_PM_DEVICE_RUNTIME_ENABLE (127u + TID_OFFSET)
#define TID_PM_DEVICE_RUNTIME_DISABLE (128u + TID_OFFSET)
#define TID_SYSCALL (128u + TID_OFFSET) #define TID_SYSCALL (129u + TID_OFFSET)
/* latest ID is 128 */ /* latest ID is 129 */
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -429,13 +429,17 @@
#define sys_port_trace_pm_system_suspend_enter(ticks) #define sys_port_trace_pm_system_suspend_enter(ticks)
#define sys_port_trace_pm_system_suspend_exit(ticks, ret) #define sys_port_trace_pm_system_suspend_exit(ticks, ret)
#define sys_port_trace_pm_device_request_enter(dev, target_state)
#define sys_port_trace_pm_device_request_exit(dev, ret)
#define sys_port_trace_pm_device_enable_enter(dev) #define sys_port_trace_pm_device_runtime_get_enter(dev)
#define sys_port_trace_pm_device_enable_exit(dev) #define sys_port_trace_pm_device_runtime_get_exit(dev, ret)
#define sys_port_trace_pm_device_disable_enter(dev) #define sys_port_trace_pm_device_runtime_put_enter(dev)
#define sys_port_trace_pm_device_disable_exit(dev) #define sys_port_trace_pm_device_runtime_put_exit(dev, ret)
#define sys_port_trace_pm_device_runtime_put_async_enter(dev)
#define sys_port_trace_pm_device_runtime_put_async_exit(dev, ret)
#define sys_port_trace_pm_device_runtime_enable_enter(dev)
#define sys_port_trace_pm_device_runtime_enable_exit(dev)
#define sys_port_trace_pm_device_runtime_disable_enter(dev)
#define sys_port_trace_pm_device_runtime_disable_exit(dev, ret)
void sys_trace_idle(void); void sys_trace_idle(void);
void sys_trace_isr_enter(void); void sys_trace_isr_enter(void);