Skip to content

Commit dee7088

Browse files
committed
apps/system: Update to print waitsem info in ps
Add PROC_STAT_WAITSEM to get waitsem information from procfs. Update to print waitsem information in ps command. [Example] ``` TASH>>ps PID | PRIO | FLAG | TYPE | NP | STATUS | WAITSEM | CPU | IRQCOUNT | NAME ------|------|------|---------|----|----------|------------|-----|----------|----- 0 | 0 | FIFO | KTHREAD | N | RUNNING | 0 | 0 | 0 | CPU0 IDLE 1 | 0 | FIFO | KTHREAD | N | RUNNING | 0 | 1 | 0 | CPU1 IDLE 2 | 201 | RR | KTHREAD | | WAITSIG | 0 | 1 | 2 | hpwork 3 | 50 | RR | KTHREAD | | WAITSIG | 0 | 1 | 2 | lpwork 5 | 200 | RR | KTHREAD | | MQNEMPTY | 0 | 1 | 1 | km4_log_task 6 | 204 | RR | KTHREAD | | WAITSEM | 0x60191c58 | 1 | 1 | LCD Frame flusing 7 | 107 | RR | KTHREAD | | WAITSEM | 0x601babe0 | 1 | 1 | inic_msg_q_task 8 | 104 | RR | KTHREAD | | WAITSEM | 0x601bcb60 | 1 | 1 | inic_host_rx_tasklet 9 | 103 | RR | KTHREAD | | WAITSEM | 0x601beb20 | 1 | 1 | inic_ipc_api_host_task 11 | 100 | RR | KTHREAD | | WAITSIG | 0 | 0 | 2 | NDP_health_check 12 | 105 | RR | KTHREAD | | WAITSEM | 0x60119030 | 1 | 2 | LWIP_TCP/IP 13 | 100 | RR | KTHREAD | | WAITSEM | 0x60118498 | 0 | 1 | netmgr_event_handler 14 | 200 | RR | KTHREAD | | MQNEMPTY | 0 | 1 | 1 | log_dump 15 | 203 | RR | KTHREAD | | MQNEMPTY | 0 | 0 | 1 | binary_manager 18 | 180 | RR | TASK | | WAITSIG | 0 | 0 | 2 | app1 19 | 100 | RR | TASK | | WAITSIG | 0 | 0 | 1 | uwork 20 | 125 | RR | TASK | | WAITSEM | 0 | 0 | 1 | tash 21 | 100 | RR | PTHREAD | | WAITSEM | 0x63f831b0 | 0 | 1 | PlayerWorker 22 | 100 | RR | PTHREAD | | WAITSEM | 0x63f832c4 | 0 | 1 | RecorderWorker 23 | 100 | RR | PTHREAD | | WAITSEM | 0x63f8323c | 0 | 1 | PlayerObserverWorker 24 | 100 | RR | PTHREAD | | WAITSEM | 0x63f83344 | 0 | 1 | RecorderObserverWorker 25 | 199 | RR | PTHREAD | | WAITSEM | 0x63f83138 | 0 | 1 | FocusManagerWorker 26 | 100 | RR | TASK | | WAITSEM | 0x63a9009c | 0 | 1 | wifi msg handler 27 | 100 | RR | TASK | | WAITSEM | 0x63a917bc | 0 | 1 | ble msg handler ``` Signed-off-by: seokhun-eom <seokhun.eom@samsung.com>
1 parent c0882aa commit dee7088

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

apps/system/utils/utils_proc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ enum proc_stat_data_e {
3434
PROC_STAT_PEAKHEAP,
3535
PROC_STAT_CPU,
3636
PROC_STAT_IRQCOUNT,
37+
PROC_STAT_WAITSEM,
3738
#ifdef CONFIG_SCHED_CPULOAD
3839
#ifdef CONFIG_SCHED_MULTI_CPULOAD
3940
PROC_STAT_CPULOAD_SHORT,

apps/system/utils/utils_ps.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ static void ps_print_values(char *buf, void *arg)
127127
flags & TCB_FLAG_NONCANCELABLE ? 'N' : ' ', flags & TCB_FLAG_CANCEL_PENDING ? 'P' : ' ', \
128128
utils_statenames[state]);
129129

130-
printf(" | %3s | %8s", stat_info[PROC_STAT_CPU], stat_info[PROC_STAT_IRQCOUNT]);
130+
printf(" | %10s | %3s | %8s", stat_info[PROC_STAT_WAITSEM], stat_info[PROC_STAT_CPU], stat_info[PROC_STAT_IRQCOUNT]);
131131

132132
#if (CONFIG_TASK_NAME_SIZE > 0)
133133
printf(" | %s\n", stat_info[PROC_STAT_NAME]);
@@ -203,8 +203,8 @@ int utils_ps(int argc, char **args)
203203
}
204204

205205
printf("\n");
206-
printf(" PID | PRIO | FLAG | TYPE | NP | STATUS | CPU | IRQCOUNT | NAME\n");
207-
printf("------|------|------|---------|----|----------|-----|----------|-----\n");
206+
printf(" PID | PRIO | FLAG | TYPE | NP | STATUS | WAITSEM | CPU | IRQCOUNT | NAME\n");
207+
printf("------|------|------|---------|----|----------|------------|-----|----------|-----\n");
208208
/* Print information for each task/thread */
209209
utils_proc_pid_foreach(ps_read_proc, NULL);
210210

os/fs/procfs/fs_procfsproc.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,16 @@ static ssize_t proc_entry_stat(FAR struct proc_file_s *procfile, FAR struct tcb_
462462
copysize = procfs_memcpy(procfile->line, linesize, buffer, buflen, &offset);
463463
totalsize += copysize;
464464

465+
buffer += copysize;
466+
remaining -= copysize;
467+
if (totalsize >= buflen) {
468+
return totalsize;
469+
}
470+
471+
linesize = snprintf(procfile->line, STATUS_LINELEN, " %p", tcb->waitsem);
472+
copysize = procfs_memcpy(procfile->line, linesize, buffer, remaining, &offset);
473+
totalsize += copysize;
474+
465475
#ifdef CONFIG_SCHED_CPULOAD
466476
buffer += copysize;
467477
remaining -= copysize;

0 commit comments

Comments
 (0)