* [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe
@ 2025-01-23 16:55 Tao Chen
0 siblings, 0 replies; 8+ messages in thread
From: Tao Chen @ 2025-01-23 16:55 UTC (permalink / raw)
To: ast, daniel, andrii, eddyz87, haoluo, jolsa, qmo
Cc: bpf, linux-kernel, Tao Chen
More and more kfunc functions are being added to the kernel.
Different prog types have different restrictions when using kfunc.
Therefore, prog_kfunc probe is added to check whether it is supported,
and the use of this api will be added to bpftool later.
Change list:
- v1 -> v2:
- check unsupported prog type like probe_bpf_helper
- add off parameter for module btf
- chenk verifier info when kfunc id invalid
Revisions:
- v1
https://lore.kernel.org/bpf/20250122171359.232791-1-chen.dylane@gmail.com
Tao Chen (2):
libbpf: Add libbpf_probe_bpf_kfunc API
selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests
tools/lib/bpf/libbpf.h | 17 ++++++-
tools/lib/bpf/libbpf.map | 1 +
tools/lib/bpf/libbpf_probes.c | 47 +++++++++++++++++++
.../selftests/bpf/prog_tests/libbpf_probes.c | 35 ++++++++++++++
4 files changed, 99 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe
@ 2025-01-23 17:05 Tao Chen
2025-01-23 17:05 ` [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API Tao Chen
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Tao Chen @ 2025-01-23 17:05 UTC (permalink / raw)
To: ast, daniel, andrii, eddyz87, haoluo, jolsa, qmo
Cc: bpf, linux-kernel, Tao Chen
More and more kfunc functions are being added to the kernel.
Different prog types have different restrictions when using kfunc.
Therefore, prog_kfunc probe is added to check whether it is supported,
and the use of this api will be added to bpftool later.
Change list:
- v1 -> v2:
- check unsupported prog type like probe_bpf_helper
- add off parameter for module btf
- chenk verifier info when kfunc id invalid
Revisions:
- v1
https://lore.kernel.org/bpf/20250122171359.232791-1-chen.dylane@gmail.com
Tao Chen (2):
libbpf: Add libbpf_probe_bpf_kfunc API
selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests
tools/lib/bpf/libbpf.h | 17 ++++++-
tools/lib/bpf/libbpf.map | 1 +
tools/lib/bpf/libbpf_probes.c | 47 +++++++++++++++++++
.../selftests/bpf/prog_tests/libbpf_probes.c | 35 ++++++++++++++
4 files changed, 99 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API
2025-01-23 17:05 [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Tao Chen
@ 2025-01-23 17:05 ` Tao Chen
2025-01-24 1:34 ` Eduard Zingerman
2025-01-23 17:05 ` [PATCH bpf-next v2 2/2] selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests Tao Chen
2025-01-24 0:42 ` [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Eduard Zingerman
2 siblings, 1 reply; 8+ messages in thread
From: Tao Chen @ 2025-01-23 17:05 UTC (permalink / raw)
To: ast, daniel, andrii, eddyz87, haoluo, jolsa, qmo
Cc: bpf, linux-kernel, Tao Chen
Similarly to libbpf_probe_bpf_helper, the libbpf_probe_bpf_kfunc
used to test the availability of the different eBPF kfuncs on the
current system.
Signed-off-by: Tao Chen <chen.dylane@gmail.com>
---
tools/lib/bpf/libbpf.h | 17 ++++++++++++-
tools/lib/bpf/libbpf.map | 1 +
tools/lib/bpf/libbpf_probes.c | 47 +++++++++++++++++++++++++++++++++++
3 files changed, 64 insertions(+), 1 deletion(-)
diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h
index 3020ee45303a..ac0b46d8d8f9 100644
--- a/tools/lib/bpf/libbpf.h
+++ b/tools/lib/bpf/libbpf.h
@@ -1680,7 +1680,22 @@ LIBBPF_API int libbpf_probe_bpf_map_type(enum bpf_map_type map_type, const void
*/
LIBBPF_API int libbpf_probe_bpf_helper(enum bpf_prog_type prog_type,
enum bpf_func_id helper_id, const void *opts);
-
+/**
+ * @brief **libbpf_probe_bpf_kfunc()** detects if host kernel supports the
+ * use of a given BPF kfunc from specified BPF program type.
+ * @param prog_type BPF program type used to check the support of BPF kfunc
+ * @param kfunc_id The btf ID of BPF kfunc to check support for
+ * @param off The module BTF FD, 0 for vmlinux
+ * @param opts reserved for future extensibility, should be NULL
+ * @return 1, if given combination of program type and kfunc is supported; 0,
+ * if the combination is not supported; negative error code if feature
+ * detection for provided input arguments failed or can't be performed
+ *
+ * Make sure the process has required set of CAP_* permissions (or runs as
+ * root) when performing feature checking.
+ */
+LIBBPF_API int libbpf_probe_bpf_kfunc(enum bpf_prog_type prog_type,
+ int kfunc_id, __s16 off, const void *opts);
/**
* @brief **libbpf_num_possible_cpus()** is a helper function to get the
* number of possible CPUs that the host kernel supports and expects.
diff --git a/tools/lib/bpf/libbpf.map b/tools/lib/bpf/libbpf.map
index a8b2936a1646..e93fae101efd 100644
--- a/tools/lib/bpf/libbpf.map
+++ b/tools/lib/bpf/libbpf.map
@@ -436,4 +436,5 @@ LIBBPF_1.6.0 {
bpf_linker__add_buf;
bpf_linker__add_fd;
bpf_linker__new_fd;
+ libbpf_probe_bpf_kfunc;
} LIBBPF_1.5.0;
diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c
index 9dfbe7750f56..641b1b008eeb 100644
--- a/tools/lib/bpf/libbpf_probes.c
+++ b/tools/lib/bpf/libbpf_probes.c
@@ -413,6 +413,53 @@ int libbpf_probe_bpf_map_type(enum bpf_map_type map_type, const void *opts)
return libbpf_err(ret);
}
+int libbpf_probe_bpf_kfunc(enum bpf_prog_type prog_type, int kfunc_id,
+ __s16 off, const void *opts)
+{
+ struct bpf_insn insns[] = {
+ BPF_EXIT_INSN(),
+ BPF_EXIT_INSN(),
+ };
+ const size_t insn_cnt = ARRAY_SIZE(insns);
+ int err;
+ char buf[4096];
+
+ if (opts)
+ return libbpf_err(-EINVAL);
+
+ /* Same logic as probe_bpf_helper check */
+ switch (prog_type) {
+ case BPF_PROG_TYPE_TRACING:
+ case BPF_PROG_TYPE_EXT:
+ case BPF_PROG_TYPE_LSM:
+ case BPF_PROG_TYPE_STRUCT_OPS:
+ return -EOPNOTSUPP;
+ default:
+ break;
+ }
+
+ insns[0].code = BPF_JMP | BPF_CALL;
+ insns[0].src_reg = BPF_PSEUDO_KFUNC_CALL;
+ insns[0].imm = kfunc_id;
+ insns[0].off = off;
+
+ buf[0] = '\0';
+ err = probe_prog_load(prog_type, insns, insn_cnt, buf, sizeof(buf));
+ if (err < 0)
+ return libbpf_err(err);
+
+ /* If BPF verifier recognizes BPF kfunc but it's not supported for
+ * given BPF program type, it will emit "calling kernel function
+ * bpf_cpumask_create is not allowed", if the kfunc id is invalid,
+ * it will emit "kernel btf_id 4294967295 is not a function"
+ */
+ if (err == 0 && (strstr(buf, "not allowed") || strstr(buf, "not a function")))
+ return 0;
+
+ return 1; /* assume supported */
+}
+
int libbpf_probe_bpf_helper(enum bpf_prog_type prog_type, enum bpf_func_id helper_id,
const void *opts)
{
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH bpf-next v2 2/2] selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests
2025-01-23 17:05 [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Tao Chen
2025-01-23 17:05 ` [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API Tao Chen
@ 2025-01-23 17:05 ` Tao Chen
2025-01-24 0:42 ` [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Eduard Zingerman
2 siblings, 0 replies; 8+ messages in thread
From: Tao Chen @ 2025-01-23 17:05 UTC (permalink / raw)
To: ast, daniel, andrii, eddyz87, haoluo, jolsa, qmo
Cc: bpf, linux-kernel, Tao Chen
Add selftests for prog_kfunc feature probing.
./test_progs -t libbpf_probe_kfuncs
#153 libbpf_probe_kfuncs:OK
Summary: 1/0 PASSED, 0 SKIPPED, 0 FAILED
Signed-off-by: Tao Chen <chen.dylane@gmail.com>
---
.../selftests/bpf/prog_tests/libbpf_probes.c | 35 +++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/tools/testing/selftests/bpf/prog_tests/libbpf_probes.c b/tools/testing/selftests/bpf/prog_tests/libbpf_probes.c
index 4ed46ed58a7b..d9d69941f694 100644
--- a/tools/testing/selftests/bpf/prog_tests/libbpf_probes.c
+++ b/tools/testing/selftests/bpf/prog_tests/libbpf_probes.c
@@ -126,3 +126,38 @@ void test_libbpf_probe_helpers(void)
ASSERT_EQ(res, d->supported, buf);
}
}
+
+void test_libbpf_probe_kfuncs(void)
+{
+ int ret, kfunc_id;
+ char *kfunc = "bpf_cpumask_create";
+ struct btf *btf;
+
+ btf = btf__parse("/sys/kernel/btf/vmlinux", NULL);
+ if (!ASSERT_OK_PTR(btf, "btf_parse"))
+ return;
+
+ kfunc_id = btf__find_by_name_kind(btf, kfunc, BTF_KIND_FUNC);
+ if (!ASSERT_GT(kfunc_id, 0, kfunc))
+ goto cleanup;
+
+ /* prog BPF_PROG_TYPE_SYSCALL supports kfunc bpf_cpumask_create */
+ ret = libbpf_probe_bpf_kfunc(BPF_PROG_TYPE_SYSCALL, kfunc_id, 0, NULL);
+ ASSERT_EQ(ret, 1, kfunc);
+
+ /* prog BPF_PROG_TYPE_KPROBE does not support kfunc bpf_cpumask_create */
+ ret = libbpf_probe_bpf_kfunc(BPF_PROG_TYPE_KPROBE, kfunc_id, 0, NULL);
+ ASSERT_EQ(ret, 0, kfunc);
+
+ /* invalid kfunc id */
+ ret = libbpf_probe_bpf_kfunc(BPF_PROG_TYPE_KPROBE, -1, 0, NULL);
+ ASSERT_EQ(ret, 0, "invalid kfunc id:-1");
+
+ /* invalid prog type */
+ ret = libbpf_probe_bpf_kfunc(100000, kfunc_id, 0, NULL);
+ if (!ASSERT_LE(ret, 0, "invalid prog type:100000"))
+ goto cleanup;
+
+cleanup:
+ btf__free(btf);
+}
--
2.43.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe
2025-01-23 17:05 [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Tao Chen
2025-01-23 17:05 ` [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API Tao Chen
2025-01-23 17:05 ` [PATCH bpf-next v2 2/2] selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests Tao Chen
@ 2025-01-24 0:42 ` Eduard Zingerman
2025-01-24 2:49 ` Tao Chen
2 siblings, 1 reply; 8+ messages in thread
From: Eduard Zingerman @ 2025-01-24 0:42 UTC (permalink / raw)
To: Tao Chen, ast, daniel, andrii, haoluo, jolsa, qmo; +Cc: bpf, linux-kernel
On Fri, 2025-01-24 at 01:05 +0800, Tao Chen wrote:
> More and more kfunc functions are being added to the kernel.
> Different prog types have different restrictions when using kfunc.
> Therefore, prog_kfunc probe is added to check whether it is supported,
> and the use of this api will be added to bpftool later.
>
> Change list:
> - v1 -> v2:
> - check unsupported prog type like probe_bpf_helper
> - add off parameter for module btf
> - chenk verifier info when kfunc id invalid
>
> Revisions:
> - v1
> https://lore.kernel.org/bpf/20250122171359.232791-1-chen.dylane@gmail.com
>
> Tao Chen (2):
> libbpf: Add libbpf_probe_bpf_kfunc API
> selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests
>
> tools/lib/bpf/libbpf.h | 17 ++++++-
> tools/lib/bpf/libbpf.map | 1 +
> tools/lib/bpf/libbpf_probes.c | 47 +++++++++++++++++++
> .../selftests/bpf/prog_tests/libbpf_probes.c | 35 ++++++++++++++
> 4 files changed, 99 insertions(+), 1 deletion(-)
>
Hi Tao,
Looks like something is wrong with the way the patch was generated:
- patchwork link:
https://patchwork.kernel.org/project/netdevbpf/patch/20250123170555.291896-2-chen.dylane@gmail.com/
- error message:
https://github.com/kernel-patches/bpf/pull/8395
Cmd('git') failed due to: exit code(128)
cmdline: git am --3way
stdout: 'Applying: libbpf: Add libbpf_probe_bpf_kfunc API
Patch failed at 0001 libbpf: Add libbpf_probe_bpf_kfunc API
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".'
stderr: 'error: corrupt patch at line 103
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch'
I get the same error when trying to apply locally,
could you please double check?
Thanks,
Eduard
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API
2025-01-23 17:05 ` [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API Tao Chen
@ 2025-01-24 1:34 ` Eduard Zingerman
2025-01-24 3:25 ` Tao Chen
0 siblings, 1 reply; 8+ messages in thread
From: Eduard Zingerman @ 2025-01-24 1:34 UTC (permalink / raw)
To: Tao Chen, ast, daniel, andrii, haoluo, jolsa, qmo; +Cc: bpf, linux-kernel
On Fri, 2025-01-24 at 01:05 +0800, Tao Chen wrote:
[...]
> +int libbpf_probe_bpf_kfunc(enum bpf_prog_type prog_type, int kfunc_id,
> + __s16 off, const void *opts)
^^^
Nit: maybe name this btf_fd?
> +{
In v2 function looks identical to libbpf_probe_bpf_helper,
do we want to copy-paste it or introduce a utility:
static int probe_insn(enum bpf_prog_type prog_type, struct bpf_insn insn,
const char **accepted_msgs)
And call it from both libbpf_probe_bpf_{helper,kfunc}?
> + struct bpf_insn insns[] = {
> + BPF_EXIT_INSN(),
> + BPF_EXIT_INSN(),
> + };
> + const size_t insn_cnt = ARRAY_SIZE(insns);
> + int err;
> + char buf[4096];
> +
> + if (opts)
> + return libbpf_err(-EINVAL);
> +
> + /* Same logic as probe_bpf_helper check */
> + switch (prog_type) {
> + case BPF_PROG_TYPE_TRACING:
> + case BPF_PROG_TYPE_EXT:
> + case BPF_PROG_TYPE_LSM:
> + case BPF_PROG_TYPE_STRUCT_OPS:
> + return -EOPNOTSUPP;
> + default:
> + break;
> + }
> +
> + insns[0].code = BPF_JMP | BPF_CALL;
> + insns[0].src_reg = BPF_PSEUDO_KFUNC_CALL;
> + insns[0].imm = kfunc_id;
> + insns[0].off = off;
> +
> + buf[0] = '\0';
> + err = probe_prog_load(prog_type, insns, insn_cnt, buf, sizeof(buf));
> + if (err < 0)
> + return libbpf_err(err);
> +
> + /* If BPF verifier recognizes BPF kfunc but it's not supported for
> + * given BPF program type, it will emit "calling kernel function
> + * bpf_cpumask_create is not allowed", if the kfunc id is invalid,
> + * it will emit "kernel btf_id 4294967295 is not a function"
> + */
> + if (err == 0 && (strstr(buf, "not allowed") || strstr(buf, "not a function")))
> + return 0;
> +
> + return 1; /* assume supported */
> +}
> +
> int libbpf_probe_bpf_helper(enum bpf_prog_type prog_type, enum bpf_func_id helper_id,
> const void *opts)
> {
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe
2025-01-24 0:42 ` [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Eduard Zingerman
@ 2025-01-24 2:49 ` Tao Chen
0 siblings, 0 replies; 8+ messages in thread
From: Tao Chen @ 2025-01-24 2:49 UTC (permalink / raw)
To: Eduard Zingerman, ast, daniel, andrii, haoluo, jolsa, qmo
Cc: bpf, linux-kernel
在 2025/1/24 08:42, Eduard Zingerman 写道:
> On Fri, 2025-01-24 at 01:05 +0800, Tao Chen wrote:
>> More and more kfunc functions are being added to the kernel.
>> Different prog types have different restrictions when using kfunc.
>> Therefore, prog_kfunc probe is added to check whether it is supported,
>> and the use of this api will be added to bpftool later.
>>
>> Change list:
>> - v1 -> v2:
>> - check unsupported prog type like probe_bpf_helper
>> - add off parameter for module btf
>> - chenk verifier info when kfunc id invalid
>>
>> Revisions:
>> - v1
>> https://lore.kernel.org/bpf/20250122171359.232791-1-chen.dylane@gmail.com
>>
>> Tao Chen (2):
>> libbpf: Add libbpf_probe_bpf_kfunc API
>> selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests
>>
>> tools/lib/bpf/libbpf.h | 17 ++++++-
>> tools/lib/bpf/libbpf.map | 1 +
>> tools/lib/bpf/libbpf_probes.c | 47 +++++++++++++++++++
>> .../selftests/bpf/prog_tests/libbpf_probes.c | 35 ++++++++++++++
>> 4 files changed, 99 insertions(+), 1 deletion(-)
>>
>
> Hi Tao,
>
> Looks like something is wrong with the way the patch was generated:
> - patchwork link:
> https://patchwork.kernel.org/project/netdevbpf/patch/20250123170555.291896-2-chen.dylane@gmail.com/
> - error message:
> https://github.com/kernel-patches/bpf/pull/8395
>
> Cmd('git') failed due to: exit code(128)
> cmdline: git am --3way
> stdout: 'Applying: libbpf: Add libbpf_probe_bpf_kfunc API
> Patch failed at 0001 libbpf: Add libbpf_probe_bpf_kfunc API
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".'
> stderr: 'error: corrupt patch at line 103
> error: could not build fake ancestor
> hint: Use 'git am --show-current-patch=diff' to see the failed patch'
>
> I get the same error when trying to apply locally,
> could you please double check?
>
> Thanks,
> Eduard
>
Hi, Eduard, thank you for your reply, i tried it out, and it turns out
it's really my problem. I will resend it in v3.
--
Best Regards
Dylane Chen
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API
2025-01-24 1:34 ` Eduard Zingerman
@ 2025-01-24 3:25 ` Tao Chen
0 siblings, 0 replies; 8+ messages in thread
From: Tao Chen @ 2025-01-24 3:25 UTC (permalink / raw)
To: Eduard Zingerman, ast, daniel, andrii, haoluo, jolsa, qmo
Cc: bpf, linux-kernel
在 2025/1/24 09:34, Eduard Zingerman 写道:
> On Fri, 2025-01-24 at 01:05 +0800, Tao Chen wrote:
>
> [...]
>
>> +int libbpf_probe_bpf_kfunc(enum bpf_prog_type prog_type, int kfunc_id,
>> + __s16 off, const void *opts)
> ^^^
> Nit: maybe name this btf_fd?
Hi Eduard, thank you for your guidance, ack, i will send it in v3.
>
>> +{
>
> In v2 function looks identical to libbpf_probe_bpf_helper,
> do we want to copy-paste it or introduce a utility:
>
> static int probe_insn(enum bpf_prog_type prog_type, struct bpf_insn insn,
> const char **accepted_msgs)
>
> And call it from both libbpf_probe_bpf_{helper,kfunc}?
Yes, it seems much more concise. I will send it in v3. Thanks.
>
>> + struct bpf_insn insns[] = {
>> + BPF_EXIT_INSN(),
>> + BPF_EXIT_INSN(),
>> + };
>> + const size_t insn_cnt = ARRAY_SIZE(insns);
>> + int err;
>> + char buf[4096];
>> +
>> + if (opts)
>> + return libbpf_err(-EINVAL);
>> +
>> + /* Same logic as probe_bpf_helper check */
>> + switch (prog_type) {
>> + case BPF_PROG_TYPE_TRACING:
>> + case BPF_PROG_TYPE_EXT:
>> + case BPF_PROG_TYPE_LSM:
>> + case BPF_PROG_TYPE_STRUCT_OPS:
>> + return -EOPNOTSUPP;
>> + default:
>> + break;
>> + }
>> +
>> + insns[0].code = BPF_JMP | BPF_CALL;
>> + insns[0].src_reg = BPF_PSEUDO_KFUNC_CALL;
>> + insns[0].imm = kfunc_id;
>> + insns[0].off = off;
>> +
>> + buf[0] = '\0';
>> + err = probe_prog_load(prog_type, insns, insn_cnt, buf, sizeof(buf));
>> + if (err < 0)
>> + return libbpf_err(err);
>> +
>> + /* If BPF verifier recognizes BPF kfunc but it's not supported for
>> + * given BPF program type, it will emit "calling kernel function
>> + * bpf_cpumask_create is not allowed", if the kfunc id is invalid,
>> + * it will emit "kernel btf_id 4294967295 is not a function"
>> + */
>> + if (err == 0 && (strstr(buf, "not allowed") || strstr(buf, "not a function")))
>> + return 0;
>> +
>> + return 1; /* assume supported */
>> +}
>> +
>> int libbpf_probe_bpf_helper(enum bpf_prog_type prog_type, enum bpf_func_id helper_id,
>> const void *opts)
>> {
>
>
--
Best Regards
Dylane Chen
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-01-24 3:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-23 17:05 [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Tao Chen
2025-01-23 17:05 ` [PATCH bpf-next v2 1/2] libbpf: Add libbpf_probe_bpf_kfunc API Tao Chen
2025-01-24 1:34 ` Eduard Zingerman
2025-01-24 3:25 ` Tao Chen
2025-01-23 17:05 ` [PATCH bpf-next v2 2/2] selftests/bpf: Add libbpf_probe_bpf_kfunc API selftests Tao Chen
2025-01-24 0:42 ` [PATCH bpf-next v2 0/2] Add prog_kfunc feature probe Eduard Zingerman
2025-01-24 2:49 ` Tao Chen
-- strict thread matches above, loose matches on Subject: below --
2025-01-23 16:55 Tao Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox