Commit a096b348 authored by Anas Nashif's avatar Anas Nashif Committed by Benjamin Cabé
Browse files

tracing: ctf: trace k_sleep()



Trace sleep events in CTF:

[19:00:00.181375400] (+0.000044700) k_sleep_enter: ...
..
[19:00:00.290203800] (+0.000031500) k_sleep_exit: ...

Signed-off-by: default avatarAnas Nashif <anas.nashif@intel.com>
parent 73127159
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -77,6 +77,21 @@ void sys_trace_k_thread_priority_set(struct k_thread *thread)
				    thread->base.prio, name);
}

void sys_trace_k_thread_sleep_enter(k_timeout_t timeout)
{
	ctf_top_thread_sleep_enter(
		k_ticks_to_us_floor32((uint32_t)timeout.ticks)
		);
}

void sys_trace_k_thread_sleep_exit(k_timeout_t timeout, int ret)
{
	ctf_top_thread_sleep_exit(
		k_ticks_to_us_floor32((uint32_t)timeout.ticks),
		(uint32_t)ret
		);
}

void sys_trace_k_thread_create(struct k_thread *thread, size_t stack_size, int prio)
{
	ctf_bounded_string_t name = { "unknown" };
+12 −0
Original line number Diff line number Diff line
@@ -186,6 +186,8 @@ typedef enum {
	CTF_EVENT_GPIO_GET_PENDING_INT_EXIT = 0x7C,
	CTF_EVENT_GPIO_FIRE_CALLBACKS_ENTER = 0x7D,
	CTF_EVENT_GPIO_FIRE_CALLBACK = 0x7E,
	CTF_EVENT_THREAD_SLEEP_ENTER = 0x7F,
	CTF_EVENT_THREAD_SLEEP_EXIT = 0x80,
} ctf_event_t;

typedef struct {
@@ -213,6 +215,16 @@ static inline void ctf_top_thread_priority_set(uint32_t thread_id, int8_t prio,
		  thread_id, name, prio);
}

static inline void ctf_top_thread_sleep_enter(uint32_t timeout)
{
	CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_THREAD_SLEEP_ENTER), timeout);
}

static inline void ctf_top_thread_sleep_exit(uint32_t timeout, int32_t ret)
{
	CTF_EVENT(CTF_LITERAL(uint8_t, CTF_EVENT_THREAD_SLEEP_EXIT), timeout, ret);
}

static inline void ctf_top_thread_create(uint32_t thread_id, int8_t prio,
					 ctf_bounded_string_t name)
{
+6 −2
Original line number Diff line number Diff line
@@ -31,8 +31,12 @@ extern "C" {
#define sys_port_trace_k_thread_join_enter(thread, timeout)
#define sys_port_trace_k_thread_join_blocking(thread, timeout)
#define sys_port_trace_k_thread_join_exit(thread, timeout, ret)
#define sys_port_trace_k_thread_sleep_enter(timeout)
#define sys_port_trace_k_thread_sleep_exit(timeout, ret)

#define sys_port_trace_k_thread_sleep_enter(timeout)                           \
	sys_trace_k_thread_sleep_enter(timeout)
#define sys_port_trace_k_thread_sleep_exit(timeout, ret)                       \
	sys_trace_k_thread_sleep_exit(timeout, ret)

#define sys_port_trace_k_thread_msleep_enter(ms)
#define sys_port_trace_k_thread_msleep_exit(ms, ret)
#define sys_port_trace_k_thread_usleep_enter(us)