bpf: Allow bpf sample programs (*_user.c) to change bpf_map_def
authorMartin KaFai Lau <kafai@fb.com>
Fri, 14 Apr 2017 17:30:28 +0000 (10:30 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Apr 2017 17:55:52 +0000 (13:55 -0400)
commit9fd63d05f3e8476282cd8c484eb34d3f6be54f40
treef3fb9ca5e7f8e8be6114a29ee23b17357522000d
parentbf8db5d243a103ccd3f6d82a110e2302608e248c
bpf: Allow bpf sample programs (*_user.c) to change bpf_map_def

The current bpf_map_def is statically defined during compile
time.  This patch allows the *_user.c program to change it during
runtime.  It is done by adding load_bpf_file_fixup_map() which
takes a callback.  The callback will be called before creating
each map so that it has a chance to modify the bpf_map_def.

The current usecase is to change max_entries in map_perf_test.
It is interesting to test with a much bigger map size in
some cases (e.g. the following patch on bpf_lru_map.c).
However,  it is hard to find one size to fit all testing
environment.  Hence, it is handy to take the max_entries
as a cmdline arg and then configure the bpf_map_def during
runtime.

This patch adds two cmdline args.  One is to configure
the map's max_entries.  Another is to configure the max_cnt
which controls how many times a syscall is called.

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
samples/bpf/bpf_load.c
samples/bpf/bpf_load.h
samples/bpf/map_perf_test_user.c