world leader in high performance signal processing
Trace: » lmbench

Tools for Performance Analysis

lmbench includes the following nifty tests, which can run on Blackfin:

  • Bandwidth benchmarks
    • Cached file read
    • Memory copy (bcopy)
    • Memory read
    • Memory write
    • Pipe
    • TCP
  • Latency benchmarks
    • Context switching.
    • Networking: connection establishment, pipe, TCP, UDP, and RPC hot potato
    • File system creates and deletes.
    • Process creation.
    • Signal handling
    • System call overhead
    • Memory read latency
  • Miscellanious
    • Processor clock rate calculation

Compiling Things for Blackfin

lmbench uses an “interesting” build system, which is not really comptaible with building for embedded targets. It is not as simple as doing a:

make OS=bfin-uclinux-gnu CC='bfin-uclinux-gcc -Wl,-elf2flt'

:(

Bandwidth Benchmarks

bw_file_rd

time the reading and summing of a file

bw_mem_cp

time memory copy speeds

bw_mem_rd

time memory read rate (with overhead)

bw_mem_wr

time memory write rate (with overhead)

bw_mmap_rd

time the reading and summing of a file

bw_pipe

time data movement through pipes

bw_tcp

time data movement through TCP/IP sockets

Latency Benchmarks

lat_connect

measure interprocess connection latency via TCP/IP

lat_ctx

context switching benchmark

lat_fs

measure file system create/delete performance

lat_mem_rd

memory read latency benchmark

lat_mmap

csts of mmapping and unmmapping varying file sizes

lat_pagefault

- measure the cost of pagefaulting pages from a file

lat_pipe.8

measure interprocess communication latency through pipes

lat_proc.8

process creation tests

lat_rpc.8

measure interprocess communication latency via Sun RPC

lat_syscall

time simple entry into the operating system

root:/lmbench3/bin/blackfin-Linux> ./lat_syscall
Usage: ./lat_syscall [-P <parallelism>] [-W <warmup>] [-N <repetitions>] null|read|write|stat|fstat|open [file]
root:/lmbench3/bin/blackfin-Linux> ./lat_syscall -N 1000 null
Simple syscall: 0.8182 microseconds
root:/lmbench3/bin/blackfin-Linux> ./lat_syscall -N 1000 read
Simple read: 2.0343 microseconds
root:/lmbench3/bin/blackfin-Linux> ./lat_syscall -N 1000 write
Simple write: 1.8400 microseconds
root:/lmbench3/bin/blackfin-Linux> ./lat_syscall -N 1000 stat
Simple stat: 12.5239 microseconds
root:/lmbench3/bin/blackfin-Linux> ./lat_syscall -N 1000 fstat
Simple fstat: 2.3920 microseconds
root:/lmbench3/bin/blackfin-Linux> ./lat_syscall -N 1000 open
Simple open/close: 21.4708 microseconds

lat_tcp

measure interprocess communication latency via TCP/IP

lat_udp

measure interprocess communication latency via UDP/IP

results

For other architectures, they can be found on the project web site.