Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bpf/selftests: coverage for tp and perf event progs using kfuncs

This coverage ensures that kfuncs are allowed within tracepoint and perf
event programs.

Signed-off-by: JP Kobryn <inwardvessel@gmail.com>
Link: https://lore.kernel.org/r/20240905223812.141857-3-inwardvessel@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

JP Kobryn and committed by
Alexei Starovoitov
1b3bc648 bc638d8c

+48
+48
tools/testing/selftests/bpf/progs/verifier_kfunc_prog_types.c
··· 47 47 return 0; 48 48 } 49 49 50 + SEC("tracepoint") 51 + __success 52 + int BPF_PROG(task_kfunc_tracepoint) 53 + { 54 + task_kfunc_load_test(); 55 + return 0; 56 + } 57 + 58 + SEC("perf_event") 59 + __success 60 + int BPF_PROG(task_kfunc_perf_event) 61 + { 62 + task_kfunc_load_test(); 63 + return 0; 64 + } 65 + 50 66 /***************** 51 67 * cgroup kfuncs * 52 68 *****************/ ··· 101 85 return 0; 102 86 } 103 87 88 + SEC("tracepoint") 89 + __success 90 + int BPF_PROG(cgrp_kfunc_tracepoint) 91 + { 92 + cgrp_kfunc_load_test(); 93 + return 0; 94 + } 95 + 96 + SEC("perf_event") 97 + __success 98 + int BPF_PROG(cgrp_kfunc_perf_event) 99 + { 100 + cgrp_kfunc_load_test(); 101 + return 0; 102 + } 103 + 104 104 /****************** 105 105 * cpumask kfuncs * 106 106 ******************/ ··· 148 116 SEC("syscall") 149 117 __success 150 118 int BPF_PROG(cpumask_kfunc_syscall) 119 + { 120 + cpumask_kfunc_load_test(); 121 + return 0; 122 + } 123 + 124 + SEC("tracepoint") 125 + __success 126 + int BPF_PROG(cpumask_kfunc_tracepoint) 127 + { 128 + cpumask_kfunc_load_test(); 129 + return 0; 130 + } 131 + 132 + SEC("perf_event") 133 + __success 134 + int BPF_PROG(cpumask_kfunc_perf_event) 151 135 { 152 136 cpumask_kfunc_load_test(); 153 137 return 0;