selftests/bpf: Clean up open-coded gettid syscall invocationsAvailability of the gettid definition across glibc versions supported byBPF selftests is not certain. Currently, all users in the tree
selftests/bpf: Clean up open-coded gettid syscall invocationsAvailability of the gettid definition across glibc versions supported byBPF selftests is not certain. Currently, all users in the tree open-codesyscall to gettid. Convert them to a common macro definition.Reviewed-by: Jiri Olsa <[email protected]>Signed-off-by: Kumar Kartikeya Dwivedi <[email protected]>Link: https://lore.kernel.org/r/[email protected]Signed-off-by: Alexei Starovoitov <[email protected]>
show more ...
selftests/bpf: fix some typos in selftestsHi, fix some spelling errors in selftest, the details are as follows:-in the codes: test_bpf_sk_stoarge_map_iter_fd(void) ->test_bpf_sk_storage_map_it
selftests/bpf: fix some typos in selftestsHi, fix some spelling errors in selftest, the details are as follows:-in the codes: test_bpf_sk_stoarge_map_iter_fd(void) ->test_bpf_sk_storage_map_iter_fd(void) load BTF from btf_data.o->load BTF from btf_data.bpf.o-in the code comments: preample->preamble multi-contollers->multi-controllers errono->errno unsighed/unsinged->unsigned egree->egress shoud->should regsiter->register assummed->assumed conditiona->conditional rougly->roughly timetamp->timestamp ingores->ignores null-termainted->null-terminated slepable->sleepable implemenation->implementation veriables->variables timetamps->timestamps substitue a costant->substitute a constant secton->section unreferened->unreferenced verifer->verifier libppf->libbpf...Signed-off-by: Lin Yikai <[email protected]>Link: https://lore.kernel.org/r/[email protected]Signed-off-by: Alexei Starovoitov <[email protected]>
selftests/bpf: add multi-uprobe benchmarksAdd multi-uprobe and multi-uretprobe benchmarks to bench tool.Multi- and classic uprobes/uretprobes have different low-leveltriggering code paths, so it'
selftests/bpf: add multi-uprobe benchmarksAdd multi-uprobe and multi-uretprobe benchmarks to bench tool.Multi- and classic uprobes/uretprobes have different low-leveltriggering code paths, so it's sometimes important to be able tobenchmark both flavors of uprobes/uretprobes.Sample examples from my dev machine below. Single-threaded peformancealmost doesn't differ, but with more parallel CPUs triggering the sameuprobe/uretprobe the difference grows. This might be due to [0], butgiven the code is slightly different, there could be other sources ofslowdown.Note, all these numbers will change due to ongoing work to improveuprobe/uretprobe scalability (e.g., [1]), but having benchmark like thisis useful for measurements and debugging nevertheless.\#!/bin/bashset -eufo pipefailfor p in 1 8 16 32; do for i in uprobe-nop uretprobe-nop uprobe-multi-nop uretprobe-multi-nop; do summary=$(sudo ./bench -w1 -d3 -p$p -a trig-$i | tail -n1) total=$(echo "$summary" | cut -d'(' -f1 | cut -d' ' -f3-) percpu=$(echo "$summary" | cut -d'(' -f2 | cut -d')' -f1 | cut -d'/' -f1) printf "%-21s (%2d cpus): %s (%s/s/cpu)\n" $i $p "$total" "$percpu" done echodoneuprobe-nop ( 1 cpus): 1.020 ± 0.005M/s ( 1.020M/s/cpu)uretprobe-nop ( 1 cpus): 0.515 ± 0.009M/s ( 0.515M/s/cpu)uprobe-multi-nop ( 1 cpus): 1.036 ± 0.004M/s ( 1.036M/s/cpu)uretprobe-multi-nop ( 1 cpus): 0.512 ± 0.005M/s ( 0.512M/s/cpu)uprobe-nop ( 8 cpus): 3.481 ± 0.030M/s ( 0.435M/s/cpu)uretprobe-nop ( 8 cpus): 2.222 ± 0.008M/s ( 0.278M/s/cpu)uprobe-multi-nop ( 8 cpus): 3.769 ± 0.094M/s ( 0.471M/s/cpu)uretprobe-multi-nop ( 8 cpus): 2.482 ± 0.007M/s ( 0.310M/s/cpu)uprobe-nop (16 cpus): 2.968 ± 0.011M/s ( 0.185M/s/cpu)uretprobe-nop (16 cpus): 1.870 ± 0.002M/s ( 0.117M/s/cpu)uprobe-multi-nop (16 cpus): 3.541 ± 0.037M/s ( 0.221M/s/cpu)uretprobe-multi-nop (16 cpus): 2.123 ± 0.026M/s ( 0.133M/s/cpu)uprobe-nop (32 cpus): 2.524 ± 0.026M/s ( 0.079M/s/cpu)uretprobe-nop (32 cpus): 1.572 ± 0.003M/s ( 0.049M/s/cpu)uprobe-multi-nop (32 cpus): 2.717 ± 0.003M/s ( 0.085M/s/cpu)uretprobe-multi-nop (32 cpus): 1.687 ± 0.007M/s ( 0.053M/s/cpu) [0] https://lore.kernel.org/linux-trace-kernel/[email protected]/ [1] https://lore.kernel.org/linux-trace-kernel/[email protected]/Signed-off-by: Andrii Nakryiko <[email protected]>Acked-by: Jiri Olsa <[email protected]>Link: https://lore.kernel.org/r/[email protected]Signed-off-by: Alexei Starovoitov <[email protected]>
selftests: bpf: crypto: add benchmark for crypto functionsSome simple benchmarks are added to understand the baseline ofperformance.Signed-off-by: Vadim Fedorenko <[email protected]>Link: https:/
selftests: bpf: crypto: add benchmark for crypto functionsSome simple benchmarks are added to understand the baseline ofperformance.Signed-off-by: Vadim Fedorenko <[email protected]>Link: https://lore.kernel.org/r/[email protected]Signed-off-by: Martin KaFai Lau <[email protected]>
bpf: update the comment for BTF_FIELDS_MAXThe commit d56b63cf0c0f ("bpf: add support for bpf_wq user type")changes the fields support number to 11, just sync the comment.Signed-off-by: Haiyue Wa
bpf: update the comment for BTF_FIELDS_MAXThe commit d56b63cf0c0f ("bpf: add support for bpf_wq user type")changes the fields support number to 11, just sync the comment.Signed-off-by: Haiyue Wang <[email protected]>Acked-by: Yonghong Song <[email protected]>Link: https://lore.kernel.org/r/[email protected]Signed-off-by: Alexei Starovoitov <[email protected]>