Commit 522dc4e5 authored by Chunguang Wu's avatar Chunguang Wu Committed by Andrew Morton

fs/proc: add Kthread flag to /proc/$pid/status

The command `ps -ef ` and `top -c` mark kernel thread by '[' and ']', but
sometimes the result is not correct.  The task->flags in /proc/$pid/stat
is good, but we need remember the value of PF_KTHREAD is 0x00200000 and
convert dec to hex.  If we have no binary program and shell script which
read /proc/$pid/stat, we can know it directly by `cat /proc/$pid/status`.

Link: https://lkml.kernel.org/r/20230416052404.2920-1-fullspring2018@gmail.comSigned-off-by: default avatarChunguang Wu <fullspring2018@gmail.com>
Reviewed-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 3647ebcf
...@@ -179,6 +179,7 @@ read the file /proc/PID/status:: ...@@ -179,6 +179,7 @@ read the file /proc/PID/status::
Gid: 100 100 100 100 Gid: 100 100 100 100
FDSize: 256 FDSize: 256
Groups: 100 14 16 Groups: 100 14 16
Kthread: 0
VmPeak: 5004 kB VmPeak: 5004 kB
VmSize: 5004 kB VmSize: 5004 kB
VmLck: 0 kB VmLck: 0 kB
...@@ -256,6 +257,7 @@ It's slow but very precise. ...@@ -256,6 +257,7 @@ It's slow but very precise.
NSpid descendant namespace process ID hierarchy NSpid descendant namespace process ID hierarchy
NSpgid descendant namespace process group ID hierarchy NSpgid descendant namespace process group ID hierarchy
NSsid descendant namespace session ID hierarchy NSsid descendant namespace session ID hierarchy
Kthread kernel thread flag, 1 is yes, 0 is no
VmPeak peak virtual memory size VmPeak peak virtual memory size
VmSize total program size VmSize total program size
VmLck locked memory size VmLck locked memory size
......
...@@ -219,6 +219,8 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns, ...@@ -219,6 +219,8 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
seq_put_decimal_ull(m, "\t", task_session_nr_ns(p, pid->numbers[g].ns)); seq_put_decimal_ull(m, "\t", task_session_nr_ns(p, pid->numbers[g].ns));
#endif #endif
seq_putc(m, '\n'); seq_putc(m, '\n');
seq_printf(m, "Kthread:\t%c\n", p->flags & PF_KTHREAD ? '1' : '0');
} }
void render_sigset_t(struct seq_file *m, const char *header, void render_sigset_t(struct seq_file *m, const char *header,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment