bpftool: Only probe trace_vprintk feature in 'full' mode
Since commit 368cb0e7cd
("bpftool: Make probes which emit dmesg
warnings optional"), some helpers aren't probed by bpftool unless
`full` arg is added to `bpftool feature probe`.
bpf_trace_vprintk can emit dmesg warnings when probed, so include it.
Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210917182911.2426606-7-davemarchevsky@fb.com
This commit is contained in:
Родитель
6c66b0e7c9
Коммит
4190c299a4
|
@ -624,6 +624,7 @@ probe_helpers_for_progtype(enum bpf_prog_type prog_type, bool supported_type,
|
|||
*/
|
||||
switch (id) {
|
||||
case BPF_FUNC_trace_printk:
|
||||
case BPF_FUNC_trace_vprintk:
|
||||
case BPF_FUNC_probe_write_user:
|
||||
if (!full_mode)
|
||||
continue;
|
||||
|
|
|
@ -57,6 +57,11 @@ def default_iface(f):
|
|||
return f(*args, iface, **kwargs)
|
||||
return wrapper
|
||||
|
||||
DMESG_EMITTING_HELPERS = [
|
||||
"bpf_probe_write_user",
|
||||
"bpf_trace_printk",
|
||||
"bpf_trace_vprintk",
|
||||
]
|
||||
|
||||
class TestBpftool(unittest.TestCase):
|
||||
@classmethod
|
||||
|
@ -67,10 +72,7 @@ class TestBpftool(unittest.TestCase):
|
|||
|
||||
@default_iface
|
||||
def test_feature_dev_json(self, iface):
|
||||
unexpected_helpers = [
|
||||
"bpf_probe_write_user",
|
||||
"bpf_trace_printk",
|
||||
]
|
||||
unexpected_helpers = DMESG_EMITTING_HELPERS
|
||||
expected_keys = [
|
||||
"syscall_config",
|
||||
"program_types",
|
||||
|
@ -94,10 +96,7 @@ class TestBpftool(unittest.TestCase):
|
|||
bpftool_json(["feature", "probe"]),
|
||||
bpftool_json(["feature"]),
|
||||
]
|
||||
unexpected_helpers = [
|
||||
"bpf_probe_write_user",
|
||||
"bpf_trace_printk",
|
||||
]
|
||||
unexpected_helpers = DMESG_EMITTING_HELPERS
|
||||
expected_keys = [
|
||||
"syscall_config",
|
||||
"system_config",
|
||||
|
@ -121,10 +120,7 @@ class TestBpftool(unittest.TestCase):
|
|||
bpftool_json(["feature", "probe", "kernel", "full"]),
|
||||
bpftool_json(["feature", "probe", "full"]),
|
||||
]
|
||||
expected_helpers = [
|
||||
"bpf_probe_write_user",
|
||||
"bpf_trace_printk",
|
||||
]
|
||||
expected_helpers = DMESG_EMITTING_HELPERS
|
||||
|
||||
for tc in test_cases:
|
||||
# Check if expected helpers are included at least once in any
|
||||
|
@ -157,7 +153,7 @@ class TestBpftool(unittest.TestCase):
|
|||
not_full_set.add(helper)
|
||||
|
||||
self.assertCountEqual(full_set - not_full_set,
|
||||
{"bpf_probe_write_user", "bpf_trace_printk"})
|
||||
set(DMESG_EMITTING_HELPERS))
|
||||
self.assertCountEqual(not_full_set - full_set, set())
|
||||
|
||||
def test_feature_macros(self):
|
||||
|
|
Загрузка…
Ссылка в новой задаче