Commit 4190c299 authored by Dave Marchevsky's avatar Dave Marchevsky Committed by Alexei Starovoitov
Browse files

bpftool: Only probe trace_vprintk feature in 'full' mode



Since commit 368cb0e7 ("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: default avatarDave Marchevsky <davemarchevsky@fb.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210917182911.2426606-7-davemarchevsky@fb.com
parent 6c66b0e7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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;
+9 −13
Original line number Diff line number Diff line
@@ -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):