[PATCH bpf-next] samples: bpf: refactor xdp_sample_pkts_kern with BTF-defined map

Subsystems: bpf [general] (safe dynamic programs and tools), the rest, xdp (express data path)

STALE2153d

3 messages, 2 authors, 2020-09-09 · open the first message on its own page

[PATCH bpf-next] samples: bpf: refactor xdp_sample_pkts_kern with BTF-defined map

From: Daniel T. Lee <hidden>
Date: 2020-09-05 15:41:54

Most of the samples were converted to use the new BTF-defined MAP as
they moved to libbbpf, but some of the samples were missing.

Instead of using the previous BPF MAP definition, this commit refactors
xdp_sample_pkts_kern MAP definition with the new BTF-defined MAP format.

Signed-off-by: Daniel T. Lee <redacted>
---
 samples/bpf/xdp_sample_pkts_kern.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/samples/bpf/xdp_sample_pkts_kern.c b/samples/bpf/xdp_sample_pkts_kern.c
index 33377289e2a8..b15172b7d455 100644
--- a/samples/bpf/xdp_sample_pkts_kern.c
+++ b/samples/bpf/xdp_sample_pkts_kern.c
@@ -7,12 +7,12 @@
 #define SAMPLE_SIZE 64ul
 #define MAX_CPUS 128
 
-struct bpf_map_def SEC("maps") my_map = {
-	.type = BPF_MAP_TYPE_PERF_EVENT_ARRAY,
-	.key_size = sizeof(int),
-	.value_size = sizeof(u32),
-	.max_entries = MAX_CPUS,
-};
+struct {
+	__uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
+	__uint(key_size, sizeof(int));
+	__uint(value_size, sizeof(u32));
+	__uint(max_entries, MAX_CPUS);
+} my_map SEC(".maps");
 
 SEC("xdp_sample")
 int xdp_sample_prog(struct xdp_md *ctx)
-- 
2.25.1

Re: [PATCH bpf-next] samples: bpf: refactor xdp_sample_pkts_kern with BTF-defined map

From: Andrii Nakryiko <hidden>
Date: 2020-09-08 23:24:40

On Sat, Sep 5, 2020 at 8:41 AM Daniel T. Lee [off-list ref] wrote:
quoted hunk
Most of the samples were converted to use the new BTF-defined MAP as
they moved to libbbpf, but some of the samples were missing.

Instead of using the previous BPF MAP definition, this commit refactors
xdp_sample_pkts_kern MAP definition with the new BTF-defined MAP format.

Signed-off-by: Daniel T. Lee <redacted>
---
 samples/bpf/xdp_sample_pkts_kern.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/samples/bpf/xdp_sample_pkts_kern.c b/samples/bpf/xdp_sample_pkts_kern.c
index 33377289e2a8..b15172b7d455 100644
--- a/samples/bpf/xdp_sample_pkts_kern.c
+++ b/samples/bpf/xdp_sample_pkts_kern.c
@@ -7,12 +7,12 @@
 #define SAMPLE_SIZE 64ul
 #define MAX_CPUS 128

-struct bpf_map_def SEC("maps") my_map = {
-       .type = BPF_MAP_TYPE_PERF_EVENT_ARRAY,
-       .key_size = sizeof(int),
-       .value_size = sizeof(u32),
-       .max_entries = MAX_CPUS,
-};
+struct {
+       __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
+       __uint(key_size, sizeof(int));
+       __uint(value_size, sizeof(u32));
+       __uint(max_entries, MAX_CPUS);
if you drop max_entries property, libbpf will set it to the maximum
configured number of CPUs on the host, which is what you probably
want. Do you might sending v2 without MAX_CPUS (check if macro is
still used anywhere else). Thanks!
+} my_map SEC(".maps");

 SEC("xdp_sample")
 int xdp_sample_prog(struct xdp_md *ctx)
--
2.25.1

Re: [PATCH bpf-next] samples: bpf: refactor xdp_sample_pkts_kern with BTF-defined map

From: Daniel T. Lee <hidden>
Date: 2020-09-09 02:39:03

On Wed, Sep 9, 2020 at 8:24 AM Andrii Nakryiko
[off-list ref] wrote:
On Sat, Sep 5, 2020 at 8:41 AM Daniel T. Lee [off-list ref] wrote:
quoted
Most of the samples were converted to use the new BTF-defined MAP as
they moved to libbbpf, but some of the samples were missing.

Instead of using the previous BPF MAP definition, this commit refactors
xdp_sample_pkts_kern MAP definition with the new BTF-defined MAP format.

Signed-off-by: Daniel T. Lee <redacted>
---
 samples/bpf/xdp_sample_pkts_kern.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/samples/bpf/xdp_sample_pkts_kern.c b/samples/bpf/xdp_sample_pkts_kern.c
index 33377289e2a8..b15172b7d455 100644
--- a/samples/bpf/xdp_sample_pkts_kern.c
+++ b/samples/bpf/xdp_sample_pkts_kern.c
@@ -7,12 +7,12 @@
 #define SAMPLE_SIZE 64ul
 #define MAX_CPUS 128

-struct bpf_map_def SEC("maps") my_map = {
-       .type = BPF_MAP_TYPE_PERF_EVENT_ARRAY,
-       .key_size = sizeof(int),
-       .value_size = sizeof(u32),
-       .max_entries = MAX_CPUS,
-};
+struct {
+       __uint(type, BPF_MAP_TYPE_PERF_EVENT_ARRAY);
+       __uint(key_size, sizeof(int));
+       __uint(value_size, sizeof(u32));
+       __uint(max_entries, MAX_CPUS);
if you drop max_entries property, libbpf will set it to the maximum
configured number of CPUs on the host, which is what you probably
want. Do you might sending v2 without MAX_CPUS (check if macro is
still used anywhere else). Thanks!
Thanks for your time and effort for the review.

I'll check and send the next version of patch.

quoted
+} my_map SEC(".maps");

 SEC("xdp_sample")
 int xdp_sample_prog(struct xdp_md *ctx)
--
2.25.1
-- 
Best,
Daniel T. Lee
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help