Commit 1c5cc8c
committed
os/kernel: Update sysdbg availabe in current TizenRT
- Updated sysdbg structures to support multiple CPUs by adding arrays for scheduling and IRQ history.
- Modified sysdbg_print to display task and IRQ scheduling history per CPU.
- Updated sysdbg to use spin_lock_irqsave() instead of enter_critical_section(), because enter_critical_section makes recursive call.
- enter_critical_section() -> up_cpu_paused_restore() -> up_restoretask() -> save_task_scheduling_status() -> enter_critical_section()
- spin_lock_irqsave blocks interrupt and provides SMP-safe protection for sysdbg_struct without the enter_critical_section()
- This patch makes sysdbg available in current TizenRT system.
[Configuration Example]
```
CONFIG_DEBUG_SYSTEM=y
CONFIG_IRQ_SCHED_HISTORY=y
CONFIG_SEMAPHORE_HISTORY=y
CONFIG_TASK_SCHED_HISTORY=y
CONFIG_DEBUG_IRQ_MAX_COUNT=0x20
CONFIG_DEBUG_SEM_MAX_COUNT=0x20
CONFIG_DEBUG_TASK_MAX_COUNT=0x20
CONFIG_DEBUG_SYSTEM_APP=y
```
[Log Example]
```
TASH>>sysdbg help
TASH>>show_usage: USAGE:
show_usage: sysdbg enable_monitor /* Allocates memory and enables monitoring */
show_usage: sysdbg disable_monitor /* Frees the memory and disables monitoring */
show_usage: sysdbg read /* Reads /dev/sysdbg to view debug information*/
show_usage: sysdbg max_task_count <count> /* Enter max_task_count */
show_usage: sysdbg max_irq_count <count> /* Enter max_irq_count */
show_usage: sysdbg max_sem_count <count> /* Enter max_sem_count */
show_usage: sysdbg data_abort /* Simulate data abort */
show_usage: sysdbg prefetch_abort /* Simulate Prefetch abort */
show_usage: sysdbg undef_abort /* Simulate Undefined abort */
show_usage: sysdbg usr_assert /* Simulate User Assert */
show_usage: sysdbg dump_stack /* Dumps the current task stack */
show_usage: sysdbg dump_allstack /* Dumps the stack of all tasks */
show_usage: sysdbg help /* Display the help */
TASH>>sysdbg read
TASH>>sysdbg_print: Displaying the TASK SCHEDULING HISTORY for 16 count
sysdbg_print: *****************************************************************************
sysdbg_print: * CPU TASK_SCHEDTIME TASK_NAME PID PRIORITY TCB
sysdbg_print: *****************************************************************************
sysdbg_print: ******************************* CPU0 History *******************************
sysdbg_print: 0 8828 sysdbg 29 100 601356C0
sysdbg_print: 0 8828 sysdbg 29 100 601356C0
sysdbg_print: 0 8828 tash 20 125 601347D0
sysdbg_print: 0 8801 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8801 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8801 LWIP_TCP/IP 12 105 601D46F0
sysdbg_print: 0 8701 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8701 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8701 LWIP_TCP/IP 12 105 601D46F0
sysdbg_print: 0 8694 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8694 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8694 tash 20 125 601347D0
sysdbg_print: 0 8603 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8603 CPU0 IDLE 0 0 6010BF94
sysdbg_print: 0 8603 tash 20 125 601347D0
sysdbg_print: 0 8601 CPU0 IDLE 0 0 6010BF94
sysdbg_print: ******************************* CPU1 History *******************************
sysdbg_print: 1 1615 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1615 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1612 binary_manager 15 203 601DB550
sysdbg_print: 1 1612 LWIP_TCP/IP 12 105 601D46F0
sysdbg_print: 1 1612 LWIP_TCP/IP 12 105 601D46F0
sysdbg_print: 1 1611 log_dump 14 200 601D7E10
sysdbg_print: 1 1611 LWIP_TCP/IP 12 105 601D46F0
sysdbg_print: 1 1611 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1589 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1587 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1587 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1587 hpwork 2 201 60130550
sysdbg_print: 1 1587 hpwork 2 201 60130550
sysdbg_print: 1 1587 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1587 CPU1 IDLE 1 0 6010C098
sysdbg_print: 1 1587 NDP_health_chec 11 100 601C1E20
sysdbg_print: Displaying the IRQ SCHEDULING HISTORY for 16 count
sysdbg_print: *****************************************************************************
sysdbg_print: * CPU IRQ_TIME IRQ_NUMBER ISR_ADDRESS
sysdbg_print: *****************************************************************************
sysdbg_print: ******************************* CPU0 History *******************************
sysdbg_print: 0 8828 40 E00B0E9
sysdbg_print: 0 8828 40 E00B0E9
sysdbg_print: 0 8828 40 E00B0E9
sysdbg_print: 0 8827 27 E02F12D
sysdbg_print: 0 8826 27 E02F12D
sysdbg_print: 0 8825 27 E02F12D
sysdbg_print: 0 8824 27 E02F12D
sysdbg_print: 0 8823 27 E02F12D
sysdbg_print: 0 8822 27 E02F12D
sysdbg_print: 0 8821 27 E02F12D
sysdbg_print: 0 8820 27 E02F12D
sysdbg_print: 0 8819 27 E02F12D
sysdbg_print: 0 8818 27 E02F12D
sysdbg_print: 0 8817 27 E02F12D
sysdbg_print: 0 8816 27 E02F12D
sysdbg_print: 0 8815 27 E02F12D
sysdbg_print: *****************************************************************************
sysdbg_print: 1 1612 2 60102271
sysdbg_print: 1 1611 2 60102271
sysdbg_print: 1 1611 2 60102271
sysdbg_print: 1 1611 2 60102271
sysdbg_print: 1 1589 2 60102271
sysdbg_print: 1 1587 2 60102271
sysdbg_print: 1 1587 2 60102271
sysdbg_print: 1 1503 2 60102271
sysdbg_print: 1 1503 2 60102271
sysdbg_print: 1 1501 2 60102271
sysdbg_print: 1 1501 2 60102271
sysdbg_print: 1 1499 2 60102271
sysdbg_print: 1 1497 2 60102271
sysdbg_print: 1 1495 2 60102271
sysdbg_print: 1 1493 2 60102271
sysdbg_print: 1 1491 2 60102271
sysdbg_print: Displaying the SEMAPHORE HISTORY for 16 count
sysdbg_print: IN:INIT AQ:ACQUIRED RL:RELEASED WT:WAITING DR:DESTROY UN:UNKNOWN
sysdbg_print: PID : -1 indicates that, it's a ISR, for ISR, TCB field gives reference of ISR
sysdbg_print: *****************************************************************************
sysdbg_print: * SEMAPHORE_TIME STATUS TASK_NAME SEMAPHORE TCB PID
sysdbg_print: *****************************************************************************
sysdbg_print: 8828 RL sysdbg 601E3B60 601356C0 29
sysdbg_print: 8828 AQ sysdbg 601E3B60 601356C0 29
sysdbg_print: 8828 RL sysdbg 60121760 601356C0 29
sysdbg_print: 8828 AQ sysdbg 60121760 601356C0 29
sysdbg_print: 8828 WT tash 63A87B6C 601347D0 20
sysdbg_print: 8828 RL tash 60103218 601347D0 20
sysdbg_print: 8828 RL tash 6010323C 601347D0 20
sysdbg_print: 8828 AQ tash 6010323C 601347D0 20
sysdbg_print: 8828 RL tash 60103224 601347D0 20
sysdbg_print: 8828 AQ tash 60103224 601347D0 20
sysdbg_print: 8828 AQ tash 60103218 601347D0 20
sysdbg_print: 8828 IN tash 63A87B6C 601347D0 20
sysdbg_print: 8828 RL tash 601166E8 601347D0 20
sysdbg_print: 8828 AQ tash 601166E8 601347D0 20
sysdbg_print: 8828 RL tash 63A80020 601347D0 20
sysdbg_print: 8828 AQ tash 63A80020 601347D0 20
```
Signed-off-by: seokhun-eom <seokhun.eom@samsung.com>1 parent 965237a commit 1c5cc8c
2 files changed
+302
-85
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
105 | 109 | | |
106 | 110 | | |
107 | 111 | | |
| 112 | + | |
108 | 113 | | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
109 | 118 | | |
110 | 119 | | |
111 | 120 | | |
| 121 | + | |
112 | 122 | | |
113 | 123 | | |
114 | 124 | | |
| |||
0 commit comments