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: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/r/20221005161450.1064469-1-andrii@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
d503f1176b
commit
2a72f5951a
@@ -68,7 +68,6 @@
|
||||
#define SKIP_INSNS() BPF_RAW_INSN(0xde, 0xa, 0xd, 0xbeef, 0xdeadbeef)
|
||||
|
||||
#define DEFAULT_LIBBPF_LOG_LEVEL 4
|
||||
#define VERBOSE_LIBBPF_LOG_LEVEL 1
|
||||
|
||||
#define F_NEEDS_EFFICIENT_UNALIGNED_ACCESS (1 << 0)
|
||||
#define F_LOAD_WITH_STRICT_ALIGNMENT (1 << 1)
|
||||
@@ -81,6 +80,7 @@
|
||||
static bool unpriv_disabled = false;
|
||||
static int skips;
|
||||
static bool verbose = false;
|
||||
static int verif_log_level = 0;
|
||||
|
||||
struct kfunc_btf_id_pair {
|
||||
const char *kfunc;
|
||||
@@ -759,7 +759,7 @@ static int load_btf_spec(__u32 *types, int types_len,
|
||||
.log_buf = bpf_vlog,
|
||||
.log_size = sizeof(bpf_vlog),
|
||||
.log_level = (verbose
|
||||
? VERBOSE_LIBBPF_LOG_LEVEL
|
||||
? verif_log_level
|
||||
: DEFAULT_LIBBPF_LOG_LEVEL),
|
||||
);
|
||||
|
||||
@@ -1491,7 +1491,7 @@ static void do_test_single(struct bpf_test *test, bool unpriv,
|
||||
|
||||
opts.expected_attach_type = test->expected_attach_type;
|
||||
if (verbose)
|
||||
opts.log_level = VERBOSE_LIBBPF_LOG_LEVEL;
|
||||
opts.log_level = verif_log_level | 4; /* force stats */
|
||||
else if (expected_ret == VERBOSE_ACCEPT)
|
||||
opts.log_level = 2;
|
||||
else
|
||||
@@ -1746,6 +1746,13 @@ int main(int argc, char **argv)
|
||||
if (argc > 1 && strcmp(argv[1], "-v") == 0) {
|
||||
arg++;
|
||||
verbose = true;
|
||||
verif_log_level = 1;
|
||||
argc--;
|
||||
}
|
||||
if (argc > 1 && strcmp(argv[1], "-vv") == 0) {
|
||||
arg++;
|
||||
verbose = true;
|
||||
verif_log_level = 2;
|
||||
argc--;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user