xref: /linux/tools/testing/selftests/bpf/benchs/run_bench_ringbufs.sh (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1c97099b0SAndrii Nakryiko#!/bin/bash
2c97099b0SAndrii Nakryiko
357fd1c63SJoanne Koongsource ./benchs/run_common.sh
457fd1c63SJoanne Koong
5c97099b0SAndrii Nakryikoset -eufo pipefail
6c97099b0SAndrii Nakryiko
7*970308a7SHou TaoRUN_RB_BENCH="$RUN_BENCH -c1"
8*970308a7SHou Tao
9c97099b0SAndrii Nakryikoheader "Single-producer, parallel producer"
10c97099b0SAndrii Nakryikofor b in rb-libbpf rb-custom pb-libbpf pb-custom; do
11*970308a7SHou Tao	summarize $b "$($RUN_RB_BENCH $b)"
12c97099b0SAndrii Nakryikodone
13c97099b0SAndrii Nakryiko
14c97099b0SAndrii Nakryikoheader "Single-producer, parallel producer, sampled notification"
15c97099b0SAndrii Nakryikofor b in rb-libbpf rb-custom pb-libbpf pb-custom; do
16*970308a7SHou Tao	summarize $b "$($RUN_RB_BENCH --rb-sampled $b)"
17c97099b0SAndrii Nakryikodone
18c97099b0SAndrii Nakryiko
19c97099b0SAndrii Nakryikoheader "Single-producer, back-to-back mode"
20c97099b0SAndrii Nakryikofor b in rb-libbpf rb-custom pb-libbpf pb-custom; do
21*970308a7SHou Tao	summarize $b "$($RUN_RB_BENCH --rb-b2b $b)"
22*970308a7SHou Tao	summarize $b-sampled "$($RUN_RB_BENCH --rb-sampled --rb-b2b $b)"
23c97099b0SAndrii Nakryikodone
24c97099b0SAndrii Nakryiko
25c97099b0SAndrii Nakryikoheader "Ringbuf back-to-back, effect of sample rate"
26c97099b0SAndrii Nakryikofor b in 1 5 10 25 50 100 250 500 1000 2000 3000; do
27*970308a7SHou Tao	summarize "rb-sampled-$b" "$($RUN_RB_BENCH --rb-b2b --rb-batch-cnt $b --rb-sampled --rb-sample-rate $b rb-custom)"
28c97099b0SAndrii Nakryikodone
29c97099b0SAndrii Nakryikoheader "Perfbuf back-to-back, effect of sample rate"
30c97099b0SAndrii Nakryikofor b in 1 5 10 25 50 100 250 500 1000 2000 3000; do
31*970308a7SHou Tao	summarize "pb-sampled-$b" "$($RUN_RB_BENCH --rb-b2b --rb-batch-cnt $b --rb-sampled --rb-sample-rate $b pb-custom)"
32c97099b0SAndrii Nakryikodone
33c97099b0SAndrii Nakryiko
34c97099b0SAndrii Nakryikoheader "Ringbuf back-to-back, reserve+commit vs output"
35*970308a7SHou Taosummarize "reserve" "$($RUN_RB_BENCH --rb-b2b                 rb-custom)"
36*970308a7SHou Taosummarize "output"  "$($RUN_RB_BENCH --rb-b2b --rb-use-output rb-custom)"
37c97099b0SAndrii Nakryiko
38c97099b0SAndrii Nakryikoheader "Ringbuf sampled, reserve+commit vs output"
39*970308a7SHou Taosummarize "reserve-sampled" "$($RUN_RB_BENCH --rb-sampled                 rb-custom)"
40*970308a7SHou Taosummarize "output-sampled"  "$($RUN_RB_BENCH --rb-sampled --rb-use-output rb-custom)"
41c97099b0SAndrii Nakryiko
42c97099b0SAndrii Nakryikoheader "Single-producer, consumer/producer competing on the same CPU, low batch count"
43c97099b0SAndrii Nakryikofor b in rb-libbpf rb-custom pb-libbpf pb-custom; do
44*970308a7SHou Tao	summarize $b "$($RUN_RB_BENCH --rb-batch-cnt 1 --rb-sample-rate 1 --prod-affinity 0 --cons-affinity 0 $b)"
45c97099b0SAndrii Nakryikodone
46c97099b0SAndrii Nakryiko
47c97099b0SAndrii Nakryikoheader "Ringbuf, multi-producer contention"
48c97099b0SAndrii Nakryikofor b in 1 2 3 4 8 12 16 20 24 28 32 36 40 44 48 52; do
49*970308a7SHou Tao	summarize "rb-libbpf nr_prod $b" "$($RUN_RB_BENCH -p$b --rb-batch-cnt 50 rb-libbpf)"
50c97099b0SAndrii Nakryikodone
51c97099b0SAndrii Nakryiko
52