All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next v1] bpf: add map helper functions push,pop,peek in more BPF programs
@ 2019-04-14 16:58 Alban Crequy
  2019-04-15  6:06 ` Song Liu
  2019-04-16  8:30 ` Daniel Borkmann
  0 siblings, 2 replies; 3+ messages in thread
From: Alban Crequy @ 2019-04-14 16:58 UTC (permalink / raw)
  To: ast, daniel; +Cc: bpf, netdev, linux-kernel, alban, iago, Mauricio Vasquez B

From: Alban Crequy <alban@kinvolk.io>

commit f1a2e44a3aec ("bpf: add queue and stack maps") introduced new BPF
helper functions:
- BPF_FUNC_map_push_elem
- BPF_FUNC_map_pop_elem
- BPF_FUNC_map_peek_elem

but they were made available only for network BPF programs. This patch
makes them available for tracepoint, cgroup and lirc programs.

Signed-off-by: Alban Crequy <alban@kinvolk.io>
Cc: Mauricio Vasquez B <mauricio.vasquez@polito.it>
---
 drivers/media/rc/bpf-lirc.c | 6 ++++++
 kernel/bpf/cgroup.c         | 6 ++++++
 kernel/trace/bpf_trace.c    | 6 ++++++
 3 files changed, 18 insertions(+)

diff --git a/drivers/media/rc/bpf-lirc.c b/drivers/media/rc/bpf-lirc.c
index 390a722e6211..ee657003c1a1 100644
--- a/drivers/media/rc/bpf-lirc.c
+++ b/drivers/media/rc/bpf-lirc.c
@@ -97,6 +97,12 @@ lirc_mode2_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
 		return &bpf_map_update_elem_proto;
 	case BPF_FUNC_map_delete_elem:
 		return &bpf_map_delete_elem_proto;
+	case BPF_FUNC_map_push_elem:
+		return &bpf_map_push_elem_proto;
+	case BPF_FUNC_map_pop_elem:
+		return &bpf_map_pop_elem_proto;
+	case BPF_FUNC_map_peek_elem:
+		return &bpf_map_peek_elem_proto;
 	case BPF_FUNC_ktime_get_ns:
 		return &bpf_ktime_get_ns_proto;
 	case BPF_FUNC_tail_call:
diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c
index e58a6c247f56..fcde0f7b2585 100644
--- a/kernel/bpf/cgroup.c
+++ b/kernel/bpf/cgroup.c
@@ -713,6 +713,12 @@ cgroup_base_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
 		return &bpf_map_update_elem_proto;
 	case BPF_FUNC_map_delete_elem:
 		return &bpf_map_delete_elem_proto;
+	case BPF_FUNC_map_push_elem:
+		return &bpf_map_push_elem_proto;
+	case BPF_FUNC_map_pop_elem:
+		return &bpf_map_pop_elem_proto;
+	case BPF_FUNC_map_peek_elem:
+		return &bpf_map_peek_elem_proto;
 	case BPF_FUNC_get_current_uid_gid:
 		return &bpf_get_current_uid_gid_proto;
 	case BPF_FUNC_get_local_storage:
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index d64c00afceb5..91800be0c8eb 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -569,6 +569,12 @@ tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
 		return &bpf_map_update_elem_proto;
 	case BPF_FUNC_map_delete_elem:
 		return &bpf_map_delete_elem_proto;
+	case BPF_FUNC_map_push_elem:
+		return &bpf_map_push_elem_proto;
+	case BPF_FUNC_map_pop_elem:
+		return &bpf_map_pop_elem_proto;
+	case BPF_FUNC_map_peek_elem:
+		return &bpf_map_peek_elem_proto;
 	case BPF_FUNC_probe_read:
 		return &bpf_probe_read_proto;
 	case BPF_FUNC_ktime_get_ns:
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH bpf-next v1] bpf: add map helper functions push,pop,peek in more BPF programs
  2019-04-14 16:58 [PATCH bpf-next v1] bpf: add map helper functions push,pop,peek in more BPF programs Alban Crequy
@ 2019-04-15  6:06 ` Song Liu
  2019-04-16  8:30 ` Daniel Borkmann
  1 sibling, 0 replies; 3+ messages in thread
From: Song Liu @ 2019-04-15  6:06 UTC (permalink / raw)
  To: Alban Crequy
  Cc: Alexei Starovoitov, Daniel Borkmann, bpf, Networking, open list,
	Alban Crequy (Kinvolk),
	iago, Mauricio Vasquez B

On Sun, Apr 14, 2019 at 10:00 AM Alban Crequy <alban.crequy@gmail.com> wrote:
>
> From: Alban Crequy <alban@kinvolk.io>
>
> commit f1a2e44a3aec ("bpf: add queue and stack maps") introduced new BPF
> helper functions:
> - BPF_FUNC_map_push_elem
> - BPF_FUNC_map_pop_elem
> - BPF_FUNC_map_peek_elem
>
> but they were made available only for network BPF programs. This patch
> makes them available for tracepoint, cgroup and lirc programs.
>
> Signed-off-by: Alban Crequy <alban@kinvolk.io>
> Cc: Mauricio Vasquez B <mauricio.vasquez@polito.it>

Acked-by: Song Liu <songliubraving@fb.com>


> ---
>  drivers/media/rc/bpf-lirc.c | 6 ++++++
>  kernel/bpf/cgroup.c         | 6 ++++++
>  kernel/trace/bpf_trace.c    | 6 ++++++
>  3 files changed, 18 insertions(+)
>
> diff --git a/drivers/media/rc/bpf-lirc.c b/drivers/media/rc/bpf-lirc.c
> index 390a722e6211..ee657003c1a1 100644
> --- a/drivers/media/rc/bpf-lirc.c
> +++ b/drivers/media/rc/bpf-lirc.c
> @@ -97,6 +97,12 @@ lirc_mode2_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
>                 return &bpf_map_update_elem_proto;
>         case BPF_FUNC_map_delete_elem:
>                 return &bpf_map_delete_elem_proto;
> +       case BPF_FUNC_map_push_elem:
> +               return &bpf_map_push_elem_proto;
> +       case BPF_FUNC_map_pop_elem:
> +               return &bpf_map_pop_elem_proto;
> +       case BPF_FUNC_map_peek_elem:
> +               return &bpf_map_peek_elem_proto;
>         case BPF_FUNC_ktime_get_ns:
>                 return &bpf_ktime_get_ns_proto;
>         case BPF_FUNC_tail_call:
> diff --git a/kernel/bpf/cgroup.c b/kernel/bpf/cgroup.c
> index e58a6c247f56..fcde0f7b2585 100644
> --- a/kernel/bpf/cgroup.c
> +++ b/kernel/bpf/cgroup.c
> @@ -713,6 +713,12 @@ cgroup_base_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
>                 return &bpf_map_update_elem_proto;
>         case BPF_FUNC_map_delete_elem:
>                 return &bpf_map_delete_elem_proto;
> +       case BPF_FUNC_map_push_elem:
> +               return &bpf_map_push_elem_proto;
> +       case BPF_FUNC_map_pop_elem:
> +               return &bpf_map_pop_elem_proto;
> +       case BPF_FUNC_map_peek_elem:
> +               return &bpf_map_peek_elem_proto;
>         case BPF_FUNC_get_current_uid_gid:
>                 return &bpf_get_current_uid_gid_proto;
>         case BPF_FUNC_get_local_storage:
> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
> index d64c00afceb5..91800be0c8eb 100644
> --- a/kernel/trace/bpf_trace.c
> +++ b/kernel/trace/bpf_trace.c
> @@ -569,6 +569,12 @@ tracing_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
>                 return &bpf_map_update_elem_proto;
>         case BPF_FUNC_map_delete_elem:
>                 return &bpf_map_delete_elem_proto;
> +       case BPF_FUNC_map_push_elem:
> +               return &bpf_map_push_elem_proto;
> +       case BPF_FUNC_map_pop_elem:
> +               return &bpf_map_pop_elem_proto;
> +       case BPF_FUNC_map_peek_elem:
> +               return &bpf_map_peek_elem_proto;
>         case BPF_FUNC_probe_read:
>                 return &bpf_probe_read_proto;
>         case BPF_FUNC_ktime_get_ns:
> --
> 2.20.1
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH bpf-next v1] bpf: add map helper functions push,pop,peek in more BPF programs
  2019-04-14 16:58 [PATCH bpf-next v1] bpf: add map helper functions push,pop,peek in more BPF programs Alban Crequy
  2019-04-15  6:06 ` Song Liu
@ 2019-04-16  8:30 ` Daniel Borkmann
  1 sibling, 0 replies; 3+ messages in thread
From: Daniel Borkmann @ 2019-04-16  8:30 UTC (permalink / raw)
  To: Alban Crequy, ast
  Cc: bpf, netdev, linux-kernel, alban, iago, Mauricio Vasquez B

On 04/14/2019 06:58 PM, Alban Crequy wrote:
> From: Alban Crequy <alban@kinvolk.io>
> 
> commit f1a2e44a3aec ("bpf: add queue and stack maps") introduced new BPF
> helper functions:
> - BPF_FUNC_map_push_elem
> - BPF_FUNC_map_pop_elem
> - BPF_FUNC_map_peek_elem
> 
> but they were made available only for network BPF programs. This patch
> makes them available for tracepoint, cgroup and lirc programs.
> 
> Signed-off-by: Alban Crequy <alban@kinvolk.io>
> Cc: Mauricio Vasquez B <mauricio.vasquez@polito.it>

Applied, thanks!

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-04-16  8:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-14 16:58 [PATCH bpf-next v1] bpf: add map helper functions push,pop,peek in more BPF programs Alban Crequy
2019-04-15  6:06 ` Song Liu
2019-04-16  8:30 ` Daniel Borkmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.