2023-04-12 21:21:00

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] fs/proc: add Kthread flag to /proc/$pid/status

On Wed, 12 Apr 2023 22:34:02 +0800 Chunguang Wu <[email protected]> wrote:

> user can know that a process is kernel thread or not.
>
> ...
>
> --- a/fs/proc/array.c
> +++ b/fs/proc/array.c
> @@ -434,6 +434,12 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
>
> task_state(m, ns, pid, task);
>
> + if ((mm == NULL) || (task->flags & PF_KTHREAD)) {
> + seq_puts(m, "Kthread:\tYes\n");
> + } else {
> + seq_puts(m, "Kthread:\tNo\n");
> + }
> +
> if (mm) {
> task_mem(m, mm);
> task_core_dumping(m, task);

Well.. Why is this information useful? What is the use case?

There are many ways of working this out from the existing output - why
is this change required?


2023-04-13 18:41:24

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH] fs/proc: add Kthread flag to /proc/$pid/status

On Wed, Apr 12, 2023 at 02:12:16PM -0700, Andrew Morton wrote:
> On Wed, 12 Apr 2023 22:34:02 +0800 Chunguang Wu <[email protected]> wrote:
>
> > user can know that a process is kernel thread or not.
> >
> > ...
> >
> > --- a/fs/proc/array.c
> > +++ b/fs/proc/array.c
> > @@ -434,6 +434,12 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
> >
> > task_state(m, ns, pid, task);
> >
> > + if ((mm == NULL) || (task->flags & PF_KTHREAD)) {
> > + seq_puts(m, "Kthread:\tYes\n");
> > + } else {
> > + seq_puts(m, "Kthread:\tNo\n");
> > + }

"mm" check is redundant. PF_KTHREAD should be enough.
If you're doing this, just print 0/1.

> > if (mm) {
> > task_mem(m, mm);
> > task_core_dumping(m, task);
>
> Well.. Why is this information useful?

I want to add: for a shell script.
Real programs can read /proc/*/stat .

> What is the use case?
>
> There are many ways of working this out from the existing output - why
> is this change required?