With BPF maps supporting direct map access (currently, array_map w/ single element, used for global data) that are read-only both from system call and BPF side, it's possible for BPF verifier to track its contents as known constants. Now it's possible for user-space control app to pre-initialize read-only map (e.g., for .rodata section) with user-provided flags and parameters and rely on BPF verifier to detect and eliminate dead code resulting from specific combination of input parameters. Andrii Nakryiko (2): bpf: track contents of read-only maps as scalars selftests/bpf: add read-only map values propagation tests kernel/bpf/verifier.c | 58 ++++++++++- .../selftests/bpf/prog_tests/rdonly_maps.c | 99 +++++++++++++++++++ .../selftests/bpf/progs/test_rdonly_maps.c | 83 ++++++++++++++++ 3 files changed, 238 insertions(+), 2 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/rdonly_maps.c create mode 100644 tools/testing/selftests/bpf/progs/test_rdonly_maps.c -- 2.17.1