summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorRbb666 <[email protected]>2025-08-28 19:10:16 +0800
committerR b b666 <[email protected]>2025-08-30 13:10:14 +0800
commitbc4c0369420be58a8b0d5378f3238a14df7ff57e (patch)
tree090c9b813e86a8187ebfc47f6161a817baf39c71 /components
parent1e34830f6d24346239ee9426e0f404d8afd6fc98 (diff)
[Add][kservice]Add thread usage support.
Diffstat (limited to 'components')
-rw-r--r--components/finsh/cmd.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/components/finsh/cmd.c b/components/finsh/cmd.c
index 9251ce4cb0..14086b83d6 100644
--- a/components/finsh/cmd.c
+++ b/components/finsh/cmd.c
@@ -165,6 +165,7 @@ long list_thread(void)
rt_list_t *next = (rt_list_t *)RT_NULL;
const char *item_title = "thread";
const size_t tcb_strlen = sizeof(void *) * 2 + 2;
+ const size_t usage_strlen = sizeof(void *) + 1;
int maxlen;
list_find_init(&find_arg, RT_Object_Class_Thread, obj_list, sizeof(obj_list) / sizeof(obj_list[0]));
@@ -173,18 +174,22 @@ long list_thread(void)
maxlen = RT_NAME_MAX;
#ifdef RT_USING_SMP
- rt_kprintf("%-*.*s cpu bind pri status sp stack size max used left tick error tcb addr\n", maxlen, maxlen, item_title);
+ rt_kprintf("%-*.*s cpu bind pri status sp stack size max used left tick error tcb addr usage\n", maxlen, maxlen, item_title);
object_split(maxlen);
rt_kprintf(" --- ---- --- ------- ---------- ---------- ------ ---------- -------");
rt_kprintf(" ");
object_split(tcb_strlen);
+ rt_kprintf(" ");
+ object_split(usage_strlen);
rt_kprintf("\n");
#else
- rt_kprintf("%-*.*s pri status sp stack size max used left tick error tcb addr\n", maxlen, maxlen, item_title);
+ rt_kprintf("%-*.*s pri status sp stack size max used left tick error tcb addr usage\n", maxlen, maxlen, item_title);
object_split(maxlen);
rt_kprintf(" --- ------- ---------- ---------- ------ ---------- -------");
rt_kprintf(" ");
object_split(tcb_strlen);
+ rt_kprintf(" ");
+ object_split(usage_strlen);
rt_kprintf("\n");
#endif /*RT_USING_SMP*/
@@ -243,17 +248,22 @@ long list_thread(void)
ptr = (rt_uint8_t *)thread->stack_addr + thread->stack_size - 1;
while (*ptr == '#')ptr --;
- rt_kprintf(" 0x%08x 0x%08x %02d%% 0x%08x %s %p\n",
+ rt_kprintf(" 0x%08x 0x%08x %02d%% 0x%08x %s %p",
((rt_ubase_t)thread->sp - (rt_ubase_t)thread->stack_addr),
thread->stack_size,
((rt_ubase_t)ptr - (rt_ubase_t)thread->stack_addr) * 100 / thread->stack_size,
thread->remaining_tick,
rt_strerror(thread->error),
thread);
+#ifdef RT_USING_CPU_USAGE_TRACER
+ rt_kprintf(" %3d%%\n", rt_thread_get_usage(thread));
+#else
+ rt_kprintf(" N/A\n");
+#endif
#else
ptr = (rt_uint8_t *)thread->stack_addr;
while (*ptr == '#') ptr ++;
- rt_kprintf(" 0x%08x 0x%08x %02d%% 0x%08x %s %p\n",
+ rt_kprintf(" 0x%08x 0x%08x %02d%% 0x%08x %s %p",
thread->stack_size + ((rt_ubase_t)thread->stack_addr - (rt_ubase_t)thread->sp),
thread->stack_size,
(thread->stack_size - ((rt_ubase_t) ptr - (rt_ubase_t) thread->stack_addr)) * 100
@@ -261,6 +271,11 @@ long list_thread(void)
RT_SCHED_PRIV(thread).remaining_tick,
rt_strerror(thread->error),
thread);
+#ifdef RT_USING_CPU_USAGE_TRACER
+ rt_kprintf(" %3d%%\n", rt_thread_get_usage(thread));
+#else
+ rt_kprintf(" N/A\n");
+#endif
#endif
}
}