diff mbox series

Signed-off-by: giladreti <gilad.reti@gmail.com>

Message ID 20210111153123.GA423936@ubuntu (mailing list archive)
State Changes Requested
Delegated to: BPF
Headers show
Series Signed-off-by: giladreti <gilad.reti@gmail.com> | expand

Checks

Context Check Description
netdev/tree_selection success Not a local patch

Commit Message

Gilad Reti Jan. 11, 2021, 3:31 p.m. UTC
Added support for pointer to mem register spilling, to allow the verifier
to track pointer to valid memory addresses. Such pointers are returned
for example by a successful call of the bpf_ringbuf_reserve helper.

This patch was suggested as a solution by Yonghong Song.
---
 kernel/bpf/verifier.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Marek Behún Jan. 11, 2021, 3:51 p.m. UTC | #1
The Signed-off-by line should be last in the commit message, not first.
First line (which becomes e-mail subject) should describe what the
commit does (in a short one liner) and where it does it.

So for your patch it could be something like
  bpf: support pointer to mem register spilling in verifier

The commit message should be written in present simple tense, not past
simple, ie. not "Added support" but "Add support".

Also we need your name and surname in From: header and Signed-off-by:
tag. So instead of
  giladreti <gilad.reti@gmail.com>
it should be
  Gilad Reti <gilad.reti@gmail.com>
if that is your real time. If it is not, please provide your real name.

On Mon, 11 Jan 2021 17:31:23 +0200
giladreti <gilad.reti@gmail.com> wrote:

> Added support for pointer to mem register spilling, to allow the verifier
> to track pointer to valid memory addresses. Such pointers are returned
> for example by a successful call of the bpf_ringbuf_reserve helper.
> 
> This patch was suggested as a solution by Yonghong Song.
> ---
>  kernel/bpf/verifier.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
> index 17270b8404f1..36af69fac591 100644
> --- a/kernel/bpf/verifier.c
> +++ b/kernel/bpf/verifier.c
> @@ -2217,6 +2217,8 @@ static bool is_spillable_regtype(enum bpf_reg_type type)
>  	case PTR_TO_RDWR_BUF:
>  	case PTR_TO_RDWR_BUF_OR_NULL:
>  	case PTR_TO_PERCPU_BTF_ID:
> +	case PTR_TO_MEM:
> +	case PTR_TO_MEM_OR_NULL:
>  		return true;
>  	default:
>  		return false;
Daniel Borkmann Jan. 11, 2021, 3:55 p.m. UTC | #2
Hello Gilad,

On 1/11/21 4:31 PM, giladreti wrote:
> Added support for pointer to mem register spilling, to allow the verifier
> to track pointer to valid memory addresses. Such pointers are returned
> for example by a successful call of the bpf_ringbuf_reserve helper.
> 
> This patch was suggested as a solution by Yonghong Song.

The SoB should not be in subject line but as part of the commit message instead
and with proper name, e.g.

Signed-off-by: Gilad Reti <gilad.reti@gmail.com>

For subject line, please use a short summary that fits the patch prefixed with
the subsystem "bpf: [...]", see also [0] as an example. Thanks.

It would be good if you could also add a BPF selftest for this [1].

   [0] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=e22d7f05e445165e58feddb4e40cc9c0f94453bc
   [1] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/
       https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/verifier/spill_fill.c

> ---
>   kernel/bpf/verifier.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
> index 17270b8404f1..36af69fac591 100644
> --- a/kernel/bpf/verifier.c
> +++ b/kernel/bpf/verifier.c
> @@ -2217,6 +2217,8 @@ static bool is_spillable_regtype(enum bpf_reg_type type)
>   	case PTR_TO_RDWR_BUF:
>   	case PTR_TO_RDWR_BUF_OR_NULL:
>   	case PTR_TO_PERCPU_BTF_ID:
> +	case PTR_TO_MEM:
> +	case PTR_TO_MEM_OR_NULL:
>   		return true;
>   	default:
>   		return false;
>
Gilad Reti Jan. 11, 2021, 4:03 p.m. UTC | #3
On Mon, Jan 11, 2021, 17:55 Daniel Borkmann <daniel@iogearbox.net> wrote:
>
> Hello Gilad,
>
> On 1/11/21 4:31 PM, giladreti wrote:
> > Added support for pointer to mem register spilling, to allow the verifier
> > to track pointer to valid memory addresses. Such pointers are returned
> > for example by a successful call of the bpf_ringbuf_reserve helper.
> >
> > This patch was suggested as a solution by Yonghong Song.
>
> The SoB should not be in subject line but as part of the commit message instead
> and with proper name, e.g.
>
> Signed-off-by: Gilad Reti <gilad.reti@gmail.com>
>
> For subject line, please use a short summary that fits the patch prefixed with
> the subsystem "bpf: [...]", see also [0] as an example. Thanks.
>
> It would be good if you could also add a BPF selftest for this [1].
>
>    [0] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=e22d7f05e445165e58feddb4e40cc9c0f94453bc
>    [1] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/
>        https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/verifier/spill_fill.c
>

Sure. Thanks for your guidance. As you can probably tell, I am new to
kernel code contribution (in fact this is a first time for me).
Should I try to submit this patch again?

Sorry in advance for all the overhead I may be causing to you...

> > ---
> >   kernel/bpf/verifier.c | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
> > index 17270b8404f1..36af69fac591 100644
> > --- a/kernel/bpf/verifier.c
> > +++ b/kernel/bpf/verifier.c
> > @@ -2217,6 +2217,8 @@ static bool is_spillable_regtype(enum bpf_reg_type type)
> >       case PTR_TO_RDWR_BUF:
> >       case PTR_TO_RDWR_BUF_OR_NULL:
> >       case PTR_TO_PERCPU_BTF_ID:
> > +     case PTR_TO_MEM:
> > +     case PTR_TO_MEM_OR_NULL:
> >               return true;
> >       default:
> >               return false;
> >
>
Andrii Nakryiko Jan. 11, 2021, 8:39 p.m. UTC | #4
On Mon, Jan 11, 2021 at 8:06 AM Gilad Reti <gilad.reti@gmail.com> wrote:
>
> On Mon, Jan 11, 2021, 17:55 Daniel Borkmann <daniel@iogearbox.net> wrote:
> >
> > Hello Gilad,
> >
> > On 1/11/21 4:31 PM, giladreti wrote:
> > > Added support for pointer to mem register spilling, to allow the verifier
> > > to track pointer to valid memory addresses. Such pointers are returned
> > > for example by a successful call of the bpf_ringbuf_reserve helper.
> > >
> > > This patch was suggested as a solution by Yonghong Song.
> >
> > The SoB should not be in subject line but as part of the commit message instead
> > and with proper name, e.g.
> >
> > Signed-off-by: Gilad Reti <gilad.reti@gmail.com>
> >
> > For subject line, please use a short summary that fits the patch prefixed with
> > the subsystem "bpf: [...]", see also [0] as an example. Thanks.
> >
> > It would be good if you could also add a BPF selftest for this [1].
> >
> >    [0] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=e22d7f05e445165e58feddb4e40cc9c0f94453bc
> >    [1] https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/
> >        https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/verifier/spill_fill.c
> >
>
> Sure. Thanks for your guidance. As you can probably tell, I am new to
> kernel code contribution (in fact this is a first time for me).
> Should I try to submit this patch again?

In addition to all already mentioned things, also make sure you have
[PATCH bpf] prefix in the subject, to identify that this is a bug fix
for the bpf tree.

Also you missed adding Fixes tag, please add this:

Fixes: 457f44363a88 ("bpf: Implement BPF ring buffer and verifier
support for it")

And yes, please re-submit with all the feedback incorporated
(including the selftest).

>
> Sorry in advance for all the overhead I may be causing to you...
>
> > > ---
> > >   kernel/bpf/verifier.c | 2 ++
> > >   1 file changed, 2 insertions(+)
> > >
> > > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
> > > index 17270b8404f1..36af69fac591 100644
> > > --- a/kernel/bpf/verifier.c
> > > +++ b/kernel/bpf/verifier.c
> > > @@ -2217,6 +2217,8 @@ static bool is_spillable_regtype(enum bpf_reg_type type)
> > >       case PTR_TO_RDWR_BUF:
> > >       case PTR_TO_RDWR_BUF_OR_NULL:
> > >       case PTR_TO_PERCPU_BTF_ID:
> > > +     case PTR_TO_MEM:
> > > +     case PTR_TO_MEM_OR_NULL:
> > >               return true;
> > >       default:
> > >               return false;
> > >
> >
diff mbox series

Patch

diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 17270b8404f1..36af69fac591 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -2217,6 +2217,8 @@  static bool is_spillable_regtype(enum bpf_reg_type type)
 	case PTR_TO_RDWR_BUF:
 	case PTR_TO_RDWR_BUF_OR_NULL:
 	case PTR_TO_PERCPU_BTF_ID:
+	case PTR_TO_MEM:
+	case PTR_TO_MEM_OR_NULL:
 		return true;
 	default:
 		return false;