• Andrii Nakryiko's avatar
    bpf: Load and verify kernel module BTFs · 36e68442
    Andrii Nakryiko authored
    Add kernel module listener that will load/validate and unload module BTF.
    Module BTFs gets ID generated for them, which makes it possible to iterate
    them with existing BTF iteration API. They are given their respective module's
    names, which will get reported through GET_OBJ_INFO API. They are also marked
    as in-kernel BTFs for tooling to distinguish them from user-provided BTFs.
    
    Also, similarly to vmlinux BTF, kernel module BTFs are exposed through
    sysfs as /sys/kernel/btf/<module-name>. This is convenient for user-space
    tools to inspect module BTF contents and dump their types with existing tools:
    
    [vmuser@archvm bpf]$ ls -la /sys/kernel/btf
    total 0
    drwxr-xr-x  2 root root       0 Nov  4 19:46 .
    drwxr-xr-x 13 root root       0 Nov  4 19:46 ..
    
    ...
    
    -r--r--r--  1 root root     888 Nov  4 19:46 irqbypass
    -r--r--r--  1 root root  100225 Nov  4 19:46 kvm
    -r--r--r--  1 root root   35401 Nov  4 19:46 kvm_intel
    -r--r--r--  1 root root     120 Nov  4 19:46 pcspkr
    -r--r--r--  1 root root     399 Nov  4 19:46 serio_raw
    -r--r--r--  1 root root 4094095 Nov  4 19:46 vmlinux
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Link: https://lore.kernel.org/bpf/20201110011932.3201430-5-andrii@kernel.org
    36e68442
btf.c 149 KB