Skip to content

Commit 15af4dc

Browse files
committed
tracing: systemview: add tracing for message queues
Add missing hooks for message queues. Signed-off-by: Anas Nashif <[email protected]>
1 parent 7b21d1d commit 15af4dc

File tree

3 files changed

+52
-22
lines changed

3 files changed

+52
-22
lines changed

subsys/tracing/sysview/SYSVIEW_Zephyr.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ TaskState 0xBF 1=dummy, 2=Waiting, 4=New, 8=Terminated, 16=Suspended, 32=Termina
6767
62 k_msgq_cleanup msgq=%I | Returns %ErrCodePosix
6868
63 k_msgq_peek msgq=%I, data=%p | Returns %ErrCodeMsg
6969
64 k_msgq_purge msgq=%I
70+
134 k_msgq_put_front msgq=%I, data=%p, Timeout=%TimeOut | Returns %ErrCodeMsg
7071

7172
65 k_mbox_init mbox=%I
7273
66 k_mbox_put mbox=%I, tx_msg=%p, Timeout=%TimeOut | Returns %ErrCodeMsg

subsys/tracing/sysview/tracing_sysview.h

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -343,10 +343,10 @@ void sys_trace_thread_info(struct k_thread *thread);
343343
#define sys_port_trace_k_condvar_broadcast_exit(condvar, ret) \
344344
SEGGER_SYSVIEW_RecordEndCallU32(TID_CONDVAR_BROADCAST, (uint32_t)ret)
345345

346-
#define sys_port_trace_k_condvar_wait_enter(condvar) \
347-
SEGGER_SYSVIEW_RecordU32(TID_CONDVAR_WAIT, (uint32_t)(uintptr_t)condvar)
346+
#define sys_port_trace_k_condvar_wait_enter(condvar, timeout) \
347+
SEGGER_SYSVIEW_RecordU32x2(TID_CONDVAR_WAIT, (uint32_t)(uintptr_t)condvar, (uint32_t)timeout.ticks)
348348

349-
#define sys_port_trace_k_condvar_wait_exit(condvar, ret) \
349+
#define sys_port_trace_k_condvar_wait_exit(condvar, timeout, ret) \
350350
SEGGER_SYSVIEW_RecordEndCallU32(TID_CONDVAR_WAIT, (uint32_t)ret)
351351

352352
#define sys_port_trace_k_queue_init(queue) \
@@ -505,22 +505,50 @@ void sys_trace_thread_info(struct k_thread *thread);
505505
#define sys_port_trace_k_stack_pop_blocking(stack, timeout)
506506
#define sys_port_trace_k_stack_pop_exit(stack, timeout, ret)
507507

508-
#define sys_port_trace_k_msgq_init(msgq)
509-
#define sys_port_trace_k_msgq_alloc_init_enter(msgq)
510-
#define sys_port_trace_k_msgq_alloc_init_exit(msgq, ret)
511-
#define sys_port_trace_k_msgq_cleanup_enter(msgq)
512-
#define sys_port_trace_k_msgq_cleanup_exit(msgq, ret)
513-
#define sys_port_trace_k_msgq_put_enter(msgq, timeout)
508+
#define sys_port_trace_k_msgq_init(msgq) \
509+
SEGGER_SYSVIEW_RecordU32(TID_MSGQ_INIT, (uint32_t)(uintptr_t)msgq)
510+
511+
#define sys_port_trace_k_msgq_alloc_init_enter(msgq) \
512+
SEGGER_SYSVIEW_RecordU32(TID_MSGQ_INIT, (uint32_t)(uintptr_t)msgq)
513+
514+
#define sys_port_trace_k_msgq_alloc_init_exit(msgq, ret) \
515+
SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_INIT)
516+
517+
#define sys_port_trace_k_msgq_cleanup_enter(msgq) \
518+
SEGGER_SYSVIEW_RecordU32(TID_MSGQ_CLEANUP, (uint32_t)(uintptr_t)msgq)
519+
520+
#define sys_port_trace_k_msgq_cleanup_exit(msgq, ret) \
521+
SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_CLEANUP)
522+
523+
#define sys_port_trace_k_msgq_put_enter(msgq, timeout) \
524+
SEGGER_SYSVIEW_RecordU32x2(TID_MSGQ_PUT, (uint32_t)(uintptr_t)msgq, (uint32_t)timeout.ticks)
525+
514526
#define sys_port_trace_k_msgq_put_blocking(msgq, timeout)
515-
#define sys_port_trace_k_msgq_put_exit(msgq, timeout, ret)
516-
#define sys_port_trace_k_msgq_put_front_enter(msgq, timeout)
527+
528+
#define sys_port_trace_k_msgq_put_exit(msgq, timeout, ret) \
529+
SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_PUT)
530+
531+
#define sys_port_trace_k_msgq_put_front_enter(msgq, timeout) \
532+
SEGGER_SYSVIEW_RecordU32x2(TID_MSGQ_PUT_FRONT, (uint32_t)(uintptr_t)msgq, (uint32_t)timeout.ticks)
533+
517534
#define sys_port_trace_k_msgq_put_front_blocking(msgq, timeout)
518-
#define sys_port_trace_k_msgq_put_front_exit(msgq, timeout, ret)
519-
#define sys_port_trace_k_msgq_get_enter(msgq, timeout)
535+
536+
#define sys_port_trace_k_msgq_put_front_exit(msgq, timeout, ret) \
537+
SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_PUT_FRONT)
538+
539+
#define sys_port_trace_k_msgq_get_enter(msgq, timeout) \
540+
SEGGER_SYSVIEW_RecordU32x2(TID_MSGQ_GET, (uint32_t)(uintptr_t)msgq, (uint32_t)timeout.ticks)
541+
520542
#define sys_port_trace_k_msgq_get_blocking(msgq, timeout)
521-
#define sys_port_trace_k_msgq_get_exit(msgq, timeout, ret)
522-
#define sys_port_trace_k_msgq_peek(msgq, ret)
523-
#define sys_port_trace_k_msgq_purge(msgq)
543+
544+
#define sys_port_trace_k_msgq_get_exit(msgq, timeout, ret) \
545+
SEGGER_SYSVIEW_RecordEndCall(TID_MSGQ_GET)
546+
547+
#define sys_port_trace_k_msgq_peek(msgq, ret) \
548+
SEGGER_SYSVIEW_RecordU32(TID_MSGQ_PEEK, (uint32_t)(uintptr_t)msgq)
549+
550+
#define sys_port_trace_k_msgq_purge(msgq) \
551+
SEGGER_SYSVIEW_RecordU32(TID_MSGQ_PURGE, (uint32_t)(uintptr_t)msgq)
524552

525553
#define sys_port_trace_k_mbox_init(mbox)
526554
#define sys_port_trace_k_mbox_message_put_enter(mbox, timeout)

subsys/tracing/sysview/tracing_sysview_ids.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,13 @@ extern "C" {
4747
#define TID_STACK_POP (25u + TID_OFFSET)
4848
#define TID_QUEUE_STACK_CLEANUP (26u + TID_OFFSET)
4949

50-
#define TID_MSGQ_INIT (27u + TID_OFFSET)
51-
#define TID_MSGQ_PUT (28u + TID_OFFSET)
52-
#define TID_MSGQ_GET (29u + TID_OFFSET)
53-
#define TID_MSGQ_CLEANUP (30u + TID_OFFSET)
54-
#define TID_MSQG_PEEK (31u + TID_OFFSET)
55-
#define TID_MSGQ_PURGE (32u + TID_OFFSET)
50+
#define TID_MSGQ_INIT (27u + TID_OFFSET)
51+
#define TID_MSGQ_PUT (28u + TID_OFFSET)
52+
#define TID_MSGQ_GET (29u + TID_OFFSET)
53+
#define TID_MSGQ_CLEANUP (30u + TID_OFFSET)
54+
#define TID_MSGQ_PEEK (31u + TID_OFFSET)
55+
#define TID_MSGQ_PURGE (32u + TID_OFFSET)
56+
#define TID_MSGQ_PUT_FRONT (50u + TID_OFFSET)
5657

5758
#define TID_MBOX_INIT (33u + TID_OFFSET)
5859
#define TID_MBOX_PUT (34u + TID_OFFSET)

0 commit comments

Comments
 (0)