mbox series

[bpf-next,0/5] bpf: support __int128 in BTF

Message ID 20190116010746.3620112-1-yhs@fb.com
Headers show
Series bpf: support __int128 in BTF | expand

Message

Yonghong Song Jan. 16, 2019, 1:07 a.m. UTC
Previous maximum supported integer bit width is 64. But
the __int128 type has been supported by most (if not all)
64bit architectures including bpf for both gcc and clang.

The kernel itself uses __int128 for x64 and arm64. Some bcc tools
are using __int128 in bpf programs to describe ipv6 addresses.
Without 128bit int support, the vmlinux BTF won't work and
those bpf programs using __int128 cannot utilize BTF.

This patch set implemented BTF __int128 support.
Patch #1 added __int128 support in the kernel.
Patch #2 added raw test for __int128 in test_btf.
Patch #3 refactored test_btf bpffs pretty print test to
         allow different map value structures.
Patch #4 added bpffs pretty print test for __int128.
Patch #5 added __int128 support in bpftool map pretty dumper.

Yonghong Song (5):
  bpf: btf: support 128 bit integer type
  tools/bpf: add int128 raw test in test_btf
  tools/bpf: refactor test_btf pretty printing for multiple map value
    formats
  tools/bpf: add bpffs pretty print test for int128
  tools/bpf: support __int128 in bpftool map pretty dumper

 kernel/bpf/btf.c                       | 104 +++++++--
 tools/bpf/bpftool/btf_dumper.c         |  98 +++++++--
 tools/testing/selftests/bpf/test_btf.c | 284 +++++++++++++++++++++----
 3 files changed, 418 insertions(+), 68 deletions(-)

Comments

Daniel Borkmann Jan. 16, 2019, 10:01 p.m. UTC | #1
On 01/16/2019 02:07 AM, Yonghong Song wrote:
> Previous maximum supported integer bit width is 64. But
> the __int128 type has been supported by most (if not all)
> 64bit architectures including bpf for both gcc and clang.
> 
> The kernel itself uses __int128 for x64 and arm64. Some bcc tools
> are using __int128 in bpf programs to describe ipv6 addresses.
> Without 128bit int support, the vmlinux BTF won't work and
> those bpf programs using __int128 cannot utilize BTF.
> 
> This patch set implemented BTF __int128 support.
> Patch #1 added __int128 support in the kernel.
> Patch #2 added raw test for __int128 in test_btf.
> Patch #3 refactored test_btf bpffs pretty print test to
>          allow different map value structures.
> Patch #4 added bpffs pretty print test for __int128.
> Patch #5 added __int128 support in bpftool map pretty dumper.
> 
> Yonghong Song (5):
>   bpf: btf: support 128 bit integer type
>   tools/bpf: add int128 raw test in test_btf
>   tools/bpf: refactor test_btf pretty printing for multiple map value
>     formats
>   tools/bpf: add bpffs pretty print test for int128
>   tools/bpf: support __int128 in bpftool map pretty dumper
> 
>  kernel/bpf/btf.c                       | 104 +++++++--
>  tools/bpf/bpftool/btf_dumper.c         |  98 +++++++--
>  tools/testing/selftests/bpf/test_btf.c | 284 +++++++++++++++++++++----
>  3 files changed, 418 insertions(+), 68 deletions(-)

Applied, thanks!