[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190402.104030.733182526476732084.davem@davemloft.net>
Date: Tue, 02 Apr 2019 10:40:30 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: andrii.nakryiko@...il.com
Cc: bpf@...r.kernel.org, netdev@...r.kernel.org, kernel-team@...com,
andriin@...com, yamada.masahiro@...ionext.com, acme@...hat.com,
daniel@...earbox.net, ast@...com, yhs@...com, kafai@...com
Subject: Re: [PATCH bpf-next] kbuild: add ability to generate BTF type info
for vmlinux
From: <andrii.nakryiko@...il.com>
Date: Tue, 2 Apr 2019 09:49:50 -0700
> From: Andrii Nakryiko <andriin@...com>
>
> This patch adds new config option to trigger generation of BTF type
> information from DWARF debuginfo for vmlinux and kernel modules through
> pahole, which in turn relies on libbpf for btf_dedup() algorithm.
>
> The intent is to record compact type information of all types used
> inside kernel, including all the structs/unions/typedefs/etc. This
> enables BPF's compile-once-run-everywhere ([0]) approach, in which
> tracing programs that are inspecting kernel's internal data (e.g.,
> struct task_struct) can be compiled on a system running some kernel
> version, but would be possible to run on other kernel versions (and
> configurations) without recompilation, even if the layout of structs
> changed and/or some of the fields were added, removed, or renamed.
>
> This is only possible if BPF loader can get kernel type info to adjust
> all the offsets correctly. This patch is a first time in this direction,
> making sure that BTF type info is part of Linux kernel image in
> non-loadable ELF section.
>
> BTF deduplication ([1]) algorithm typically provides 100x savings
> compared to DWARF data, so resulting .BTF section is not big as is
> typically about 2MB in size.
>
> [0] http://vger.kernel.org/lpc-bpf2018.html#session-2
> [1] https://facebookmicrosites.github.io/bpf/blog/2018/11/14/btf-enhancement.html
>
> Signed-off-by: Andrii Nakryiko <andriin@...com>
Acked-by: David S. Miller <davem@...emloft.net>
Powered by blists - more mailing lists