On Sat, Sep 19, 2020 at 10:03 PM Tony Ambardar <tony.ambar...@gmail.com> wrote:
>
> Hello,
>
> I've been experimenting with BPF and BTF on small, emebedded platforms
> requiring cross-compilation to varying archs, word-sizes, and endianness.
> These environments are not the most common for the majority of eBPF users,
> and have exposed multiple problems with basic functionality. This patch
> series addresses some of these issues.
>
> Enabling BTF support in the kernel can sometimes result in sysfs export
> of /sys/kernel/btf/vmlinux as a zero-length file, which is still readable
> and seen to leak non-zero kernel data. Patch #1 adds a sanity-check to
> avoid this situation.
>
> Small systems commonly enable LD_DEAD_CODE_DATA_ELIMINATION, which causes
> the .BTF section data to be incorrectly removed and can trigger the problem
> above. Patch #2 preserves the BTF data.
>
> Even if BTF data is generated and embedded in the kernel, it may be encoded
> as non-native endianness due to another bug [1] currently being worked on.
> Patch #3 lets bpftool recognize the wrong BTF endianness rather than output
> a confusing/misleading ELF header error message.
>
> Patches #1 and #2 were first developed for Linux 5.4.x and should be
> backported if possible. Feedback and suggestions for improvement are
> welcome!
>
> Thanks,
> Tony
>
> [1] 
> https://lore.kernel.org/bpf/capgfte8ipaacanm9xmhfabxcl-xrcxgmosx-nsjvz9wnh3z...@mail.gmail.com/
>
> Tony Ambardar (3):
>   bpf: fix sysfs export of empty BTF section
>   bpf: prevent .BTF section elimination
>   libbpf: fix native endian assumption when parsing BTF
>
>  include/asm-generic/vmlinux.lds.h | 2 +-
>  kernel/bpf/sysfs_btf.c            | 6 +++---
>  tools/lib/bpf/btf.c               | 6 ++++++
>  3 files changed, 10 insertions(+), 4 deletions(-)
>
> --
> 2.25.1
>

All fixes look good:

Acked-by: Andrii Nakryiko <andr...@fb.com>

Reply via email to