fs/proc/array.c | 7 +++++++ 1 file changed, 7 insertions(+)
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`.
Signed-off-by: Chunguang Wu <fullspring2018@gmail.com>
---
fs/proc/array.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 9b0315d34c58..fde6a0b92728 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -434,6 +434,13 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
task_state(m, ns, pid, task);
+ seq_puts(m, "Kthread:\t");
+ if (task->flags & PF_KTHREAD) {
+ seq_puts(m, "1\n");
+ } else {
+ seq_puts(m, "0\n");
+ }
+
if (mm) {
task_mem(m, mm);
task_core_dumping(m, task);
--
2.39.1
Hi--
On 4/14/23 02:27, Chunguang Wu wrote:
> 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`.
>
Please update Documentation/filesystems/proc.rst:
(1) the example:
For example, to get the status information of a process, all you have to do is
read the file /proc/PID/status::
and (2): table 1-2
Thanks.
> Signed-off-by: Chunguang Wu <fullspring2018@gmail.com>
> ---
> fs/proc/array.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/fs/proc/array.c b/fs/proc/array.c
> index 9b0315d34c58..fde6a0b92728 100644
> --- a/fs/proc/array.c
> +++ b/fs/proc/array.c
> @@ -434,6 +434,13 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
>
> task_state(m, ns, pid, task);
>
> + seq_puts(m, "Kthread:\t");
> + if (task->flags & PF_KTHREAD) {
> + seq_puts(m, "1\n");
> + } else {
> + seq_puts(m, "0\n");
> + }
> +
> if (mm) {
> task_mem(m, mm);
> task_core_dumping(m, task);
--
~Randy
© 2016 - 2025 Red Hat, Inc.