[PATCH v9 01/10] btf: Add a new kfunc flag which allows to mark a function to be sleepable

Roberto Sassu roberto.sassu at huawei.com
Wed Aug 10 14:52:38 UTC 2022


> From: Daniel Borkmann [mailto:daniel at iogearbox.net]
> Sent: Wednesday, August 10, 2022 4:39 PM
> On 8/10/22 4:25 PM, Benjamin Tissoires wrote:
> > On Wed, Aug 10, 2022 at 3:44 PM Roberto Sassu
> <roberto.sassu at huawei.com> wrote:
> >>> From: Jarkko Sakkinen [mailto:jarkko at kernel.org]
> >>> Sent: Tuesday, August 9, 2022 6:55 PM
> >>> On Tue, Aug 09, 2022 at 03:45:54PM +0200, Roberto Sassu wrote:
> >>>> From: Benjamin Tissoires <benjamin.tissoires at redhat.com>
> >>>>
> >>>> From: Benjamin Tissoires <benjamin.tissoires at redhat.com>
> >>>>
> >>>> This allows to declare a kfunc as sleepable and prevents its use in
> >>>> a non sleepable program.
> >>>
> >>> Nit: "Declare a kfunc as sleepable and prevent its use in a
> >>> non-sleepable program."
> >>>
> >>> It's missing the part *how* the patch accomplishes its goals.
> >>
> >> I will add:
> >>
> >> If an eBPF program is going to call a kfunc declared as sleepable,
> >> eBPF will look at the eBPF program flags. If BPF_F_SLEEPABLE is
> >> not set, execution of that program is denied.
> >
> > All those changes are looking good to me.
> >
> > Thanks a lot for keeping pushing on this patch :)
> 
> This single one from the series got already applied here:
> 
>    https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-
> next.git/commit/?id=fa96b24204af42274ec13dfb2f2e6990d7510e55

Ok, now I understood the merge message better.

Roberto

> >>>> Signed-off-by: Benjamin Tissoires <benjamin.tissoires at redhat.com>
> >>>> Co-developed-by: Yosry Ahmed <yosryahmed at google.com>
> >>>> Signed-off-by: Yosry Ahmed <yosryahmed at google.com>
> >>>> Signed-off-by: Hao Luo <haoluo at google.com>
> >>>> ---
> >>>>   Documentation/bpf/kfuncs.rst | 6 ++++++
> >>>>   include/linux/btf.h          | 1 +
> >>>>   kernel/bpf/btf.c             | 9 +++++++++
> >>>>   3 files changed, 16 insertions(+)
> >>>>
> >>>> diff --git a/Documentation/bpf/kfuncs.rst b/Documentation/bpf/kfuncs.rst
> >>>> index c0b7dae6dbf5..c8b21de1c772 100644
> >>>> --- a/Documentation/bpf/kfuncs.rst
> >>>> +++ b/Documentation/bpf/kfuncs.rst
> >>>> @@ -146,6 +146,12 @@ that operate (change some property, perform
> some
> >>> operation) on an object that
> >>>>   was obtained using an acquire kfunc. Such kfuncs need an unchanged
> pointer
> >>> to
> >>>>   ensure the integrity of the operation being performed on the expected
> object.


More information about the Linux-security-module-archive mailing list