Commit 2a72f595 authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Alexei Starovoitov

selftests/bpf: allow requesting log level 2 in test_verifier

Log level 1 on successfully verified programs are basically equivalent
to log level 4 (stats-only), so it's useful to be able to request more
verbose logs at log level 2. Teach test_verifier to recognize -vv as
"very verbose" mode switch and use log level 2 in such mode.

Also force verifier stats regradless of -v or -vv, they are very minimal
and useful to be always emitted in verbose mode.
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20221005161450.1064469-1-andrii@kernel.orgSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent d503f117
...@@ -68,7 +68,6 @@ ...@@ -68,7 +68,6 @@
#define SKIP_INSNS() BPF_RAW_INSN(0xde, 0xa, 0xd, 0xbeef, 0xdeadbeef) #define SKIP_INSNS() BPF_RAW_INSN(0xde, 0xa, 0xd, 0xbeef, 0xdeadbeef)
#define DEFAULT_LIBBPF_LOG_LEVEL 4 #define DEFAULT_LIBBPF_LOG_LEVEL 4
#define VERBOSE_LIBBPF_LOG_LEVEL 1
#define F_NEEDS_EFFICIENT_UNALIGNED_ACCESS (1 << 0) #define F_NEEDS_EFFICIENT_UNALIGNED_ACCESS (1 << 0)
#define F_LOAD_WITH_STRICT_ALIGNMENT (1 << 1) #define F_LOAD_WITH_STRICT_ALIGNMENT (1 << 1)
...@@ -81,6 +80,7 @@ ...@@ -81,6 +80,7 @@
static bool unpriv_disabled = false; static bool unpriv_disabled = false;
static int skips; static int skips;
static bool verbose = false; static bool verbose = false;
static int verif_log_level = 0;
struct kfunc_btf_id_pair { struct kfunc_btf_id_pair {
const char *kfunc; const char *kfunc;
...@@ -759,7 +759,7 @@ static int load_btf_spec(__u32 *types, int types_len, ...@@ -759,7 +759,7 @@ static int load_btf_spec(__u32 *types, int types_len,
.log_buf = bpf_vlog, .log_buf = bpf_vlog,
.log_size = sizeof(bpf_vlog), .log_size = sizeof(bpf_vlog),
.log_level = (verbose .log_level = (verbose
? VERBOSE_LIBBPF_LOG_LEVEL ? verif_log_level
: DEFAULT_LIBBPF_LOG_LEVEL), : DEFAULT_LIBBPF_LOG_LEVEL),
); );
...@@ -1491,7 +1491,7 @@ static void do_test_single(struct bpf_test *test, bool unpriv, ...@@ -1491,7 +1491,7 @@ static void do_test_single(struct bpf_test *test, bool unpriv,
opts.expected_attach_type = test->expected_attach_type; opts.expected_attach_type = test->expected_attach_type;
if (verbose) if (verbose)
opts.log_level = VERBOSE_LIBBPF_LOG_LEVEL; opts.log_level = verif_log_level | 4; /* force stats */
else if (expected_ret == VERBOSE_ACCEPT) else if (expected_ret == VERBOSE_ACCEPT)
opts.log_level = 2; opts.log_level = 2;
else else
...@@ -1746,6 +1746,13 @@ int main(int argc, char **argv) ...@@ -1746,6 +1746,13 @@ int main(int argc, char **argv)
if (argc > 1 && strcmp(argv[1], "-v") == 0) { if (argc > 1 && strcmp(argv[1], "-v") == 0) {
arg++; arg++;
verbose = true; verbose = true;
verif_log_level = 1;
argc--;
}
if (argc > 1 && strcmp(argv[1], "-vv") == 0) {
arg++;
verbose = true;
verif_log_level = 2;
argc--; argc--;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment