public inbox for bpf@vger.kernel.org
 help / color / mirror / Atom feed
From: Yonghong Song <yhs@fb.com>
To: Kui-Feng Lee <kuifeng@fb.com>,
	bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net,
	andrii@kernel.org, kernel-team@fb.com
Subject: Re: [PATCH bpf-next v8 3/5] bpf: Handle show_fdinfo for the parameterized task BPF iterators
Date: Tue, 30 Aug 2022 14:17:25 -0700	[thread overview]
Message-ID: <413f97df-c70a-9ce3-3a4a-90f93d8aa2a0@fb.com> (raw)
In-Reply-To: <20220829192317.486946-4-kuifeng@fb.com>



On 8/29/22 12:23 PM, Kui-Feng Lee wrote:
> Show information of iterators in the respective files under
> /proc/<pid>/fdinfo/.
> 
> For example, for a task file iterator with 1723 as the value of tid
> parameter, its fdinfo would look like the following lines.
> 
>      pos:    0
>      flags:  02000000
>      mnt_id: 14
>      ino:    38
>      link_type:      iter
>      link_id:        51
>      prog_tag:       a590ac96db22b825
>      prog_id:        299
>      target_name:    task_file
>      task_type:      TID
>      tid: 1723
> 
> This patch add the last three fields.  task_type is the type of the
> task parameter.  TID means the iterator visit only the thread
> specified by tid.  The value of tid in the above example is 1723.  For
> the case of PID task_type, it means the iterator visits only threads
> of a process and will show the pid value of the process instead of a
> tid.
> 
> Signed-off-by: Kui-Feng Lee <kuifeng@fb.com>

Ack with a nit below.

Acked-by: Yonghong Song <yhs@fb.com>

> ---
>   kernel/bpf/task_iter.c | 18 ++++++++++++++++++
>   1 file changed, 18 insertions(+)
> 
> diff --git a/kernel/bpf/task_iter.c b/kernel/bpf/task_iter.c
> index 5140117447e5..c10aeeffe1d6 100644
> --- a/kernel/bpf/task_iter.c
> +++ b/kernel/bpf/task_iter.c
> @@ -10,6 +10,12 @@
>   #include <linux/btf_ids.h>
>   #include "mmap_unlock_work.h"
>   
> +static const char * const iter_task_type_names[] = {
> +	"ALL",
> +	"TID",
> +	"PID",
> +};
> +
>   struct bpf_iter_seq_task_common {
>   	struct pid_namespace *ns;
>   	enum bpf_iter_task_type	type;
> @@ -683,6 +689,15 @@ static int bpf_iter_fill_link_info(const struct bpf_iter_aux_info *aux, struct b
>   	return 0;
>   }
>   
> +static void bpf_iter_task_show_fdinfo(const struct bpf_iter_aux_info *aux, struct seq_file *seq)
> +{
> +	seq_printf(seq, "task_type:\t%s\n", iter_task_type_names[aux->task.type]);
> +	if (aux->task.type == BPF_TASK_ITER_TID)
> +		seq_printf(seq, "tid:\t%d\n", aux->task.pid);
> +	else if (aux->task.type == BPF_TASK_ITER_TGID)
> +		seq_printf(seq, "pid:\t%d\n", aux->task.pid);
> +}

Let us use '%u' instead of '%d' for aux->type.pid since its type is u32.

> +
>   static struct bpf_iter_reg task_reg_info = {
>   	.target			= "task",
>   	.attach_target		= bpf_iter_attach_task,
> @@ -694,6 +709,7 @@ static struct bpf_iter_reg task_reg_info = {
>   	},
>   	.seq_info		= &task_seq_info,
>   	.fill_link_info		= bpf_iter_fill_link_info,
> +	.show_fdinfo		= bpf_iter_task_show_fdinfo,
>   };
>   
[...]

  parent reply	other threads:[~2022-08-30 21:17 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-29 19:23 [PATCH bpf-next v8 0/5] Parameterize task iterators Kui-Feng Lee
2022-08-29 19:23 ` [PATCH bpf-next v8 1/5] bpf: " Kui-Feng Lee
2022-08-30 23:54   ` Yonghong Song
2022-08-31  0:35     ` Kui-Feng Lee
2022-08-31  2:37       ` Yonghong Song
2022-08-31  3:59         ` Yonghong Song
2022-08-31 16:39         ` Kui-Feng Lee
2022-08-29 19:23 ` [PATCH bpf-next v8 2/5] bpf: Handle bpf_link_info for the parameterized task BPF iterators Kui-Feng Lee
2022-08-29 19:23 ` [PATCH bpf-next v8 3/5] bpf: Handle show_fdinfo " Kui-Feng Lee
2022-08-30  0:56   ` Kui-Feng Lee
2022-08-30  0:58     ` Kui-Feng Lee
2022-08-30 21:17   ` Yonghong Song [this message]
2022-08-29 19:23 ` [PATCH bpf-next v8 4/5] selftests/bpf: Test " Kui-Feng Lee
2022-08-30 22:54   ` Yonghong Song
2022-08-29 19:23 ` [PATCH bpf-next v8 5/5] bpftool: Show parameters of BPF task iterators Kui-Feng Lee
2022-08-30 16:52   ` Quentin Monnet
2022-08-31  1:10     ` Kui-Feng Lee
2022-08-30 23:56   ` Yonghong Song
2022-08-31  1:11     ` Kui-Feng Lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=413f97df-c70a-9ce3-3a4a-90f93d8aa2a0@fb.com \
    --to=yhs@fb.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=kernel-team@fb.com \
    --cc=kuifeng@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox