• Martin KaFai Lau's avatar
    selftests/bpf: Add local-storage-create benchmark · 4659fba1
    Martin KaFai Lau authored
    This patch tests how many kmallocs is needed to create and free
    a batch of UDP sockets and each socket has a 64bytes bpf storage.
    It also measures how fast the UDP sockets can be created.
    
    The result is from my qemu setup.
    
    Before bpf_mem_cache_alloc/free:
    ./bench -p 1 local-storage-create
    Setting up benchmark 'local-storage-create'...
    Benchmark 'local-storage-create' started.
    Iter   0 ( 73.193us): creates  213.552k/s (213.552k/prod), 3.09 kmallocs/create
    Iter   1 (-20.724us): creates  211.908k/s (211.908k/prod), 3.09 kmallocs/create
    Iter   2 (  9.280us): creates  212.574k/s (212.574k/prod), 3.12 kmallocs/create
    Iter   3 ( 11.039us): creates  213.209k/s (213.209k/prod), 3.12 kmallocs/create
    Iter   4 (-11.411us): creates  213.351k/s (213.351k/prod), 3.12 kmallocs/create
    Iter   5 ( -7.915us): creates  214.754k/s (214.754k/prod), 3.12 kmallocs/create
    Iter   6 ( 11.317us): creates  210.942k/s (210.942k/prod), 3.12 kmallocs/create
    Summary: creates  212.789 ± 1.310k/s (212.789k/prod), 3.12 kmallocs/create
    
    After bpf_mem_cache_alloc/free:
    ./bench -p 1 local-storage-create
    Setting up benchmark 'local-storage-create'...
    Benchmark 'local-storage-create' started.
    Iter   0 ( 68.265us): creates  243.984k/s (243.984k/prod), 1.04 kmallocs/create
    Iter   1 ( 30.357us): creates  238.424k/s (238.424k/prod), 1.04 kmallocs/create
    Iter   2 (-18.712us): creates  232.963k/s (232.963k/prod), 1.04 kmallocs/create
    Iter   3 (-15.885us): creates  238.879k/s (238.879k/prod), 1.04 kmallocs/create
    Iter   4 (  5.590us): creates  237.490k/s (237.490k/prod), 1.04 kmallocs/create
    Iter   5 (  8.577us): creates  237.521k/s (237.521k/prod), 1.04 kmallocs/create
    Iter   6 ( -6.263us): creates  238.508k/s (238.508k/prod), 1.04 kmallocs/create
    Summary: creates  237.298 ± 2.198k/s (237.298k/prod), 1.04 kmallocs/create
    Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
    Link: https://lore.kernel.org/r/20230308065936.1550103-18-martin.lau@linux.devSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    4659fba1
bench.c 19.3 KB