linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hao Luo <haoluo@google.com>
To: Tejun Heo <tj@kernel.org>
Cc: "Yosry Ahmed" <yosryahmed@google.com>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Martin KaFai Lau" <kafai@fb.com>,
	"Song Liu" <songliubraving@fb.com>, "Yonghong Song" <yhs@fb.com>,
	"Zefan Li" <lizefan.x@bytedance.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Shuah Khan" <shuah@kernel.org>,
	"Michal Hocko" <mhocko@kernel.org>,
	"KP Singh" <kpsingh@kernel.org>,
	"Benjamin Tissoires" <benjamin.tissoires@redhat.com>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"Michal Koutný" <mkoutny@suse.com>,
	"Roman Gushchin" <roman.gushchin@linux.dev>,
	"David Rientjes" <rientjes@google.com>,
	"Stanislav Fomichev" <sdf@google.com>,
	"Greg Thelen" <gthelen@google.com>,
	"Shakeel Butt" <shakeelb@google.com>,
	linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	bpf@vger.kernel.org, cgroups@vger.kernel.org
Subject: Re: [PATCH bpf-next v5 4/8] bpf: Introduce cgroup iter
Date: Thu, 28 Jul 2022 10:20:46 -0700	[thread overview]
Message-ID: <CA+khW7gfzoeHVd5coTSWXuYVfqiVMwoSjXkWsP-CeVdmOm0FqA@mail.gmail.com> (raw)
In-Reply-To: <YuK+eg3lgwJ2CJnJ@slm.duckdns.org>

Hi Tejun,

On Thu, Jul 28, 2022 at 9:51 AM Tejun Heo <tj@kernel.org> wrote:
>
> Hello,
>
> On Fri, Jul 22, 2022 at 05:48:25PM +0000, Yosry Ahmed wrote:
> > +
> > +     /* cgroup_iter walks either the live descendants of a cgroup subtree, or the
> > +      * ancestors of a given cgroup.
> > +      */
> > +     struct {
> > +             /* Cgroup file descriptor. This is root of the subtree if walking
> > +              * descendants; it's the starting cgroup if walking the ancestors.
> > +              * If it is left 0, the traversal starts from the default cgroup v2
> > +              * root. For walking v1 hierarchy, one should always explicitly
> > +              * specify the cgroup_fd.
> > +              */
> > +             __u32   cgroup_fd;
>
> So, we're identifying the starting point with an fd.
>
> > +             __u32   traversal_order;
> > +     } cgroup;
> >  };
> >
> >  /* BPF syscall commands, see bpf(2) man-page for more details. */
> > @@ -6136,6 +6156,16 @@ struct bpf_link_info {
> >                                       __u32 map_id;
> >                               } map;
> >                       };
> > +                     union {
> > +                             struct {
> > +                                     __u64 cgroup_id;
> > +                                     __u32 traversal_order;
> > +                             } cgroup;
>
> but iterating the IDs. IDs are the better choice for cgroup2 as there's
> nothing specific to the calling program or the fds it has, but I guess this
> is because you want to use it for cgroup1, right? Oh well, that's okay I
> guess.
>

Yes, we are identifying the starting point with FD. The cgroup_id here
is the information reported from kernel to userspace for identifying
the cgroup.

We use FD because it is a convention in BPF. Compatibility of cgroup1
is a good feature of this convention. My thoughts: It seems that ID
may be better, for two reasons. First, because ID is stateless, the
userspace doesn't have to remember closing the FD. Second, using
different identifications in two directions (userspace specifies
cgroup using FD, while kernel reports cgroup using ID) introduces a
little complexity when connecting them together.

Hao

> Acked-by: Tejun Heo <tj@kernel.org>
>
> Thanks.
>
> --
> tejun

  reply	other threads:[~2022-07-28 17:21 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-22 17:48 [PATCH bpf-next v5 0/8] bpf: rstat: cgroup hierarchical stats Yosry Ahmed
2022-07-22 17:48 ` [PATCH bpf-next v5 1/8] btf: Add a new kfunc flag which allows to mark a function to be sleepable Yosry Ahmed
2022-07-22 17:48 ` [PATCH bpf-next v5 2/8] cgroup: enable cgroup_get_from_file() on cgroup1 Yosry Ahmed
2022-07-28 16:51   ` Tejun Heo
2022-07-22 17:48 ` [PATCH bpf-next v5 3/8] bpf, iter: Fix the condition on p when calling stop Yosry Ahmed
2022-07-22 17:48 ` [PATCH bpf-next v5 4/8] bpf: Introduce cgroup iter Yosry Ahmed
2022-07-22 18:35   ` Kumar Kartikeya Dwivedi
2022-07-22 20:33     ` Hao Luo
2022-07-28  6:55       ` Yonghong Song
2022-07-28 17:26         ` Hao Luo
2022-07-28  5:49   ` Yonghong Song
2022-07-28 17:25     ` Hao Luo
2022-07-28 18:08       ` Yonghong Song
2022-07-28 16:51   ` Tejun Heo
2022-07-28 17:20     ` Hao Luo [this message]
2022-07-28 17:35       ` Tejun Heo
2022-08-02  3:42   ` Andrii Nakryiko
2022-08-02 22:27     ` Hao Luo
2022-08-02 22:49       ` Andrii Nakryiko
2022-08-03 20:29         ` Hao Luo
2022-08-03 20:39           ` Andrii Nakryiko
2022-08-04  0:29             ` Hao Luo
2022-07-22 17:48 ` [PATCH bpf-next v5 5/8] selftests/bpf: Test cgroup_iter Yosry Ahmed
2022-07-22 17:48 ` [PATCH bpf-next v5 6/8] cgroup: bpf: enable bpf programs to integrate with rstat Yosry Ahmed
2022-07-28 16:51   ` Tejun Heo
2022-07-22 17:48 ` [PATCH bpf-next v5 7/8] selftests/bpf: extend cgroup helpers Yosry Ahmed
2022-07-22 17:48 ` [PATCH bpf-next v5 8/8] bpf: add a selftest for cgroup hierarchical stats collection Yosry Ahmed
2022-07-28  5:51   ` Yonghong Song
2022-07-28 22:40   ` Andrii Nakryiko
2022-07-29 17:36     ` Hao Luo
2022-07-28  5:53 ` [PATCH bpf-next v5 0/8] bpf: rstat: cgroup hierarchical stats Yonghong Song

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=CA+khW7gfzoeHVd5coTSWXuYVfqiVMwoSjXkWsP-CeVdmOm0FqA@mail.gmail.com \
    --to=haoluo@google.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=benjamin.tissoires@redhat.com \
    --cc=bpf@vger.kernel.org \
    --cc=cgroups@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=gthelen@google.com \
    --cc=hannes@cmpxchg.org \
    --cc=john.fastabend@gmail.com \
    --cc=kafai@fb.com \
    --cc=kpsingh@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan.x@bytedance.com \
    --cc=mhocko@kernel.org \
    --cc=mkoutny@suse.com \
    --cc=netdev@vger.kernel.org \
    --cc=rientjes@google.com \
    --cc=roman.gushchin@linux.dev \
    --cc=sdf@google.com \
    --cc=shakeelb@google.com \
    --cc=shuah@kernel.org \
    --cc=songliubraving@fb.com \
    --cc=tj@kernel.org \
    --cc=yhs@fb.com \
    --cc=yosryahmed@google.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;
as well as URLs for NNTP newsgroup(s).