profcs task status will now show CPU is SMP is enabled
This commit is contained in:
parent
3994b094c5
commit
050b3ee06a
@ -11496,3 +11496,6 @@
|
|||||||
actions from the TCB to the group structure. Signal handlers are not
|
actions from the TCB to the group structure. Signal handlers are not
|
||||||
per thread but, rather, per task group. I know, I preferred it the
|
per thread but, rather, per task group. I know, I preferred it the
|
||||||
other way too, but this is more compliant with POSIX (2016-02-18).
|
other way too, but this is more compliant with POSIX (2016-02-18).
|
||||||
|
* fs/ procfs/fs_procfsproc.c: Add support for showing CPU if SMP is
|
||||||
|
is enabled (2016-02-19).
|
||||||
|
|
||||||
|
8
TODO
8
TODO
@ -1,4 +1,5 @@
|
|||||||
NuttX TODO List (Last updated February 18, 2016)
|
NuttX TODO List (Last updated February 18, 2016)
|
||||||
|
NuttX TODO List (Last updated February 18, 2016)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
This file summarizes known NuttX bugs, limitations, inconsistencies with
|
This file summarizes known NuttX bugs, limitations, inconsistencies with
|
||||||
@ -1621,7 +1622,12 @@ o Linux/Cywgin simulation (arch/sim)
|
|||||||
not an issue with the NuttX SMP logic but more likely some chaos
|
not an issue with the NuttX SMP logic but more likely some chaos
|
||||||
in the pthread controls. I have seen similar such strange behavior
|
in the pthread controls. I have seen similar such strange behavior
|
||||||
other times that I have tried to use setjmp/longmp from a signal
|
other times that I have tried to use setjmp/longmp from a signal
|
||||||
handler!
|
handler! Like when I tried to implement simulated interrupts
|
||||||
|
using signals.
|
||||||
|
|
||||||
|
Apparently, if longjmp is invoked from the context of a signal
|
||||||
|
handler, the result is undefined:
|
||||||
|
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1318.htm
|
||||||
|
|
||||||
You can enable SMP for ostest configuration by enabling:
|
You can enable SMP for ostest configuration by enabling:
|
||||||
|
|
||||||
|
@ -375,6 +375,7 @@ static FAR const struct proc_node_s *proc_findnode(FAR const char *relpath)
|
|||||||
* Type: xxxxxxx {Task, pthread, Kthread, Invalid}
|
* Type: xxxxxxx {Task, pthread, Kthread, Invalid}
|
||||||
* PPID: xxxxx Parent thread ID
|
* PPID: xxxxx Parent thread ID
|
||||||
* Group: xxxxx Group ID
|
* Group: xxxxx Group ID
|
||||||
|
* CPU: xxx CPU (CONFIG_SMP only)
|
||||||
* State: xxxxxxxx,xxxxxxxxx {Invalid, Waiting, Ready, Running, Inactive},
|
* State: xxxxxxxx,xxxxxxxxx {Invalid, Waiting, Ready, Running, Inactive},
|
||||||
* {Unlock, Semaphore, Signal, MQ empty, MQ full}
|
* {Unlock, Semaphore, Signal, MQ empty, MQ full}
|
||||||
* Flags: xxx N,P,X
|
* Flags: xxx N,P,X
|
||||||
@ -461,6 +462,30 @@ static ssize_t proc_status(FAR struct proc_file_s *procfile,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
|
if (tcb->task_state >= FIRST_ASSIGNED_STATE &&
|
||||||
|
tcb->task_state <= LAST_ASSIGNED_STATE)
|
||||||
|
{
|
||||||
|
linesize = snprintf(procfile->line, STATUS_LINELEN, "%-12s%d\n", "CPU:",
|
||||||
|
tcb->cpu);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
linesize = snprintf(procfile->line, STATUS_LINELEN, "%-12s---\n", "CPU:");
|
||||||
|
}
|
||||||
|
|
||||||
|
copysize = procfs_memcpy(procfile->line, linesize, buffer, remaining, &offset);
|
||||||
|
|
||||||
|
totalsize += copysize;
|
||||||
|
buffer += copysize;
|
||||||
|
remaining -= copysize;
|
||||||
|
|
||||||
|
if (totalsize >= buflen)
|
||||||
|
{
|
||||||
|
return totalsize;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Show the thread state */
|
/* Show the thread state */
|
||||||
|
|
||||||
linesize = snprintf(procfile->line, STATUS_LINELEN, "%-12s%s\n", "State:",
|
linesize = snprintf(procfile->line, STATUS_LINELEN, "%-12s%s\n", "State:",
|
||||||
|
@ -222,6 +222,8 @@ typedef enum tstate_e tstate_t;
|
|||||||
|
|
||||||
#define FIRST_READY_TO_RUN_STATE TSTATE_TASK_READYTORUN
|
#define FIRST_READY_TO_RUN_STATE TSTATE_TASK_READYTORUN
|
||||||
#define LAST_READY_TO_RUN_STATE TSTATE_TASK_RUNNING
|
#define LAST_READY_TO_RUN_STATE TSTATE_TASK_RUNNING
|
||||||
|
#define FIRST_ASSIGNED_STATE TSTATE_TASK_ASSIGNED
|
||||||
|
#define LAST_ASSIGNED_STATE TSTATE_TASK_RUNNING
|
||||||
#define FIRST_BLOCKED_STATE TSTATE_TASK_INACTIVE
|
#define FIRST_BLOCKED_STATE TSTATE_TASK_INACTIVE
|
||||||
#define LAST_BLOCKED_STATE (NUM_TASK_STATES-1)
|
#define LAST_BLOCKED_STATE (NUM_TASK_STATES-1)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user