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

From: Roberto Sassu
Date: Wed Aug 10 2022 - 10:52:49 EST


> From: Daniel Borkmann [mailto:daniel@xxxxxxxxxxxxx]
> 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@xxxxxxxxxx> wrote:
> >>> From: Jarkko Sakkinen [mailto:jarkko@xxxxxxxxxx]
> >>> 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@xxxxxxxxxx>
> >>>>
> >>>> From: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
> >>>>
> >>>> 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@xxxxxxxxxx>
> >>>> Co-developed-by: Yosry Ahmed <yosryahmed@xxxxxxxxxx>
> >>>> Signed-off-by: Yosry Ahmed <yosryahmed@xxxxxxxxxx>
> >>>> Signed-off-by: Hao Luo <haoluo@xxxxxxxxxx>
> >>>> ---
> >>>> 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.