From: Artem Savkov <asavkov@redhat.com>
To: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Cc: Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Andrii Nakryiko <andrii@kernel.org>,
bpf@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
Andrea Arcangeli <aarcange@redhat.com>,
Daniel Vacek <dvacek@redhat.com>, Jiri Olsa <olsajiri@gmail.com>,
Song Liu <song@kernel.org>, Daniel Xu <dxu@dxuuu.xyz>
Subject: Re: [PATCH bpf-next v3 1/3] bpf: add destructive kfunc flag
Date: Mon, 8 Aug 2022 14:41:02 +0200 [thread overview]
Message-ID: <YvEEXsdo/fCnoEFY@samus.usersys.redhat.com> (raw)
In-Reply-To: <CAP01T76dELOx8p_iky_Py_VcqDbQtaL-4d=zrFiCbFhMdVEmNA@mail.gmail.com>
On Mon, Aug 08, 2022 at 02:14:33PM +0200, Kumar Kartikeya Dwivedi wrote:
> On Mon, 8 Aug 2022 at 11:48, Artem Savkov <asavkov@redhat.com> wrote:
> >
> > Add KF_DESTRUCTIVE flag for destructive functions. Functions with this
> > flag set will require CAP_SYS_BOOT capabilities.
> >
> > Signed-off-by: Artem Savkov <asavkov@redhat.com>
> > ---
> > include/linux/btf.h | 1 +
> > kernel/bpf/verifier.c | 5 +++++
> > 2 files changed, 6 insertions(+)
> >
> > diff --git a/include/linux/btf.h b/include/linux/btf.h
> > index cdb376d53238..51a0961c84e3 100644
> > --- a/include/linux/btf.h
> > +++ b/include/linux/btf.h
> > @@ -49,6 +49,7 @@
> > * for this case.
> > */
> > #define KF_TRUSTED_ARGS (1 << 4) /* kfunc only takes trusted pointer arguments */
> > +#define KF_DESTRUCTIVE (1 << 5) /* kfunc performs destructive actions */
> >
>
> Please also document this flag in Documentation/bpf/kfuncs.rst.
Ok, will do.
> And maybe instead of KF_DESTRUCTIVE, it might be more apt to call this
> KF_CAP_SYS_BOOT. While it is true you had a destructive flag for
> programs being loaded earlier, so there was a mapping between the two
> UAPI and kfunc flags, what it has boiled down to is that this flag
> just requires CAP_SYS_BOOT (in addition to other capabilities) during
> load. So that name might express the intent a bit better. We might
> soon have similar flags encoding requirements of other capabilities on
> load.
>
> The flag rename is just a suggestion, up to you.
This makes sense right now, but if going forward we'll add stricter
signing requirements or other prerequisites we'll either have to rename
the flag back, or add those as separate flags. I guess the decision here
depends on whether some of non-destructive bpf programs might ever require
CAP_SYS_BOOT capabilities or not.
--
Artem
next prev parent reply other threads:[~2022-08-08 12:41 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-08 9:46 [PATCH bpf-next v3 0/3] destructive bpf_kfuncs Artem Savkov
2022-08-08 9:46 ` [PATCH bpf-next v3 1/3] bpf: add destructive kfunc flag Artem Savkov
2022-08-08 12:14 ` Kumar Kartikeya Dwivedi
2022-08-08 12:41 ` Artem Savkov [this message]
2022-08-08 13:32 ` Kumar Kartikeya Dwivedi
2022-08-09 0:37 ` Andrii Nakryiko
2022-08-09 0:48 ` Kumar Kartikeya Dwivedi
2022-08-08 9:46 ` [PATCH bpf-next v3 2/3] bpf: export crash_kexec() as destructive kfunc Artem Savkov
2022-08-08 9:46 ` [PATCH bpf-next v3 3/3] selftests/bpf: add destructive kfunc test Artem Savkov
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=YvEEXsdo/fCnoEFY@samus.usersys.redhat.com \
--to=asavkov@redhat.com \
--cc=aarcange@redhat.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=dvacek@redhat.com \
--cc=dxu@dxuuu.xyz \
--cc=linux-kernel@vger.kernel.org \
--cc=memxor@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olsajiri@gmail.com \
--cc=song@kernel.org \
/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