tools/lib/bpf/btf.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)
Now only elf btf can be placed in the default path(/boot), raw
btf should also can be there.
Signed-off-by: Tao Chen <chentao.kernel@linux.alibaba.com>
---
v2->v1: Remove the locations[i].raw_btf check
---
tools/lib/bpf/btf.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
index bb1e06e..46ec244 100644
--- a/tools/lib/bpf/btf.c
+++ b/tools/lib/bpf/btf.c
@@ -4657,11 +4657,10 @@ struct btf *btf__load_vmlinux_btf(void)
{
struct {
const char *path_fmt;
- bool raw_btf;
} locations[] = {
/* try canonical vmlinux BTF through sysfs first */
- { "/sys/kernel/btf/vmlinux", true /* raw BTF */ },
- /* fall back to trying to find vmlinux ELF on disk otherwise */
+ { "/sys/kernel/btf/vmlinux" },
+ /* fall back to trying to find vmlinux on disk otherwise */
{ "/boot/vmlinux-%1$s" },
{ "/lib/modules/%1$s/vmlinux-%1$s" },
{ "/lib/modules/%1$s/build/vmlinux" },
@@ -4683,10 +4682,7 @@ struct btf *btf__load_vmlinux_btf(void)
if (access(path, R_OK))
continue;
- if (locations[i].raw_btf)
- btf = btf__parse_raw(path);
- else
- btf = btf__parse_elf(path, NULL);
+ btf = btf__parse(path, NULL);
err = libbpf_get_error(btf);
pr_debug("loading kernel BTF '%s': %d\n", path, err);
if (err)
--
2.2.1
Hello:
This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:
On Tue, 13 Sep 2022 00:43:00 +0800 you wrote:
> Now only elf btf can be placed in the default path(/boot), raw
> btf should also can be there.
>
> Signed-off-by: Tao Chen <chentao.kernel@linux.alibaba.com>
> ---
> v2->v1: Remove the locations[i].raw_btf check
>
> [...]
Here is the summary with links:
- [v2] libbpf: Support raw btf placed in the default path
https://git.kernel.org/bpf/bpf-next/c/01f2e36c959c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
On 9/12/22 9:43 AM, Tao Chen wrote: > Now only elf btf can be placed in the default path(/boot), raw > btf should also can be there. There are more default paths than just /boot. Also some grammer issues in the above like 'should also can be'. Maybe the commit message can be changed like below. Currently, the default vmlinux files at '/boot/vmlinux-*', '/lib/modules/*/vmlinux-*' etc. are parsed with 'btf__parse_elf' to extract BTF. It is possible that these files are actually raw BTF files similar to /sys/kernel/btf/vmlinux. So parse these files with 'btf__parse' which tries both raw format and ELF format. It would be great if you can add more information on why '/boot/vmlinux-*' or '/lib/modules/*/vmlinux-*' might be a raw BTF file in your system. > > Signed-off-by: Tao Chen <chentao.kernel@linux.alibaba.com> Ack with some commit message changes in the above. Acked-by: Yonghong Song <yhs@fb.com>
On Mon, Sep 19, 2022 at 8:40 PM Yonghong Song <yhs@fb.com> wrote: > > > > On 9/12/22 9:43 AM, Tao Chen wrote: > > Now only elf btf can be placed in the default path(/boot), raw > > btf should also can be there. > > There are more default paths than just /boot. Also some grammer > issues in the above like 'should also can be'. > > Maybe the commit message can be changed like below. > > Currently, the default vmlinux files at '/boot/vmlinux-*', > '/lib/modules/*/vmlinux-*' etc. are parsed with 'btf__parse_elf' > to extract BTF. It is possible that these files are actually > raw BTF files similar to /sys/kernel/btf/vmlinux. So parse > these files with 'btf__parse' which tries both raw format and > ELF format. > Thanks, Yonghong, I used this description verbatim when applying. Also added a sentence on why users might use this instead of providing the btf_custom_path option. > It would be great if you can add more information on why > '/boot/vmlinux-*' or '/lib/modules/*/vmlinux-*' might be > a raw BTF file in your system. > > > > > Signed-off-by: Tao Chen <chentao.kernel@linux.alibaba.com> > > Ack with some commit message changes in the above. > > Acked-by: Yonghong Song <yhs@fb.com>
© 2016 - 2026 Red Hat, Inc.