No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Martin KaFai Lau 69b693f0ae bpf: btf: Introduce BPF Type Format (BTF)
This patch introduces BPF type Format (BTF).

BTF (BPF Type Format) is the meta data format which describes
the data types of BPF program/map.  Hence, it basically focus
on the C programming language which the modern BPF is primary
using.  The first use case is to provide a generic pretty print
capability for a BPF map.

BTF has its root from CTF (Compact C-Type format).  To simplify
the handling of BTF data, BTF removes the differences between
small and big type/struct-member.  Hence, BTF consistently uses u32
instead of supporting both "one u16" and "two u32 (+padding)" in
describing type and struct-member.

It also raises the number of types (and functions) limit
from 0x7fff to 0x7fffffff.

Due to the above changes,  the format is not compatible to CTF.
Hence, BTF starts with a new BTF_MAGIC and version number.

This patch does the first verification pass to the BTF.  The first
pass checks:
1. meta-data size (e.g. It does not go beyond the total btf's size)
2. name_offset is valid
3. Each BTF_KIND (e.g. int, enum, struct....) does its
   own check of its meta-data.

Some other checks, like checking a struct's member is referring
to a valid type, can only be done in the second pass.  The second
verification pass will be implemented in the next patch.

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Alexei Starovoitov <ast@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-04-19 21:46:24 +02:00
arch xen: fixes for 4.17-rc1 2018-04-12 11:04:35 -07:00
block
certs
crypto
Documentation IOMMU Updates for Linux v4.17 2018-04-11 18:50:41 -07:00
drivers bpf: make virtio compatible w/ bpf_xdp_adjust_tail 2018-04-18 23:34:16 +02:00
firmware
fs This pull request contains updates for both UBI and UBIFS: 2018-04-11 16:39:34 -07:00
include bpf: btf: Introduce BPF Type Format (BTF) 2018-04-19 21:46:24 +02:00
init seq_file: allocate seq_file from kmem_cache 2018-04-11 10:28:36 -07:00
ipc ipc/shm.c: shm_split(): remove unneeded test for NULL shm_file_data.vm_ops 2018-04-11 10:28:38 -07:00
kernel bpf: btf: Introduce BPF Type Format (BTF) 2018-04-19 21:46:24 +02:00
lib Fix for one swiotlb regression in 2.16 from Takashi. 2018-04-12 11:00:48 -07:00
LICENSES
mm page cache: use xa_lock 2018-04-11 10:28:39 -07:00
net bpf: reserve xdp_frame size in xdp headroom 2018-04-19 17:52:12 +02:00
samples bpf: add bpf_xdp_adjust_tail sample prog 2018-04-18 23:34:17 +02:00
scripts asm-generic fixes for v4.17-rc1 2018-04-12 09:15:48 -07:00
security ipc/msg: introduce msgctl(MSG_STAT_ANY) 2018-04-11 10:28:37 -07:00
sound
tools bpf: add bpf_xdp_adjust_tail sample prog 2018-04-18 23:34:17 +02:00
usr
virt
.clang-format clang-format: add configuration file 2018-04-11 10:28:35 -07:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore clang-format: add configuration file 2018-04-11 10:28:35 -07:00
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS ARM: SoC fixes for 4.17 2018-04-11 16:12:21 -07:00
Makefile
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.