line(8)
NAME
line - cache line size
SYNOPSIS
line [ -M <len> ] [ -W <warmups> ] [ -N <repetitions> ]
DESCRIPTION
line tries to determine the cache line size in bytes of the largest
cache which is smaller than len bytes.
line creates pointer chains which access the first word on each cache
line on a page (randomly meandering through all the lines in a page
before jumping to the next page). It measures the average memory
latency for a variety of line sizes, starting with a line size of one
word. When it finds an increase in the average latency that is significantly larger than the latency for the smaller line size then it
assumes that it has found the line size.
This algorithm works because for line sizes less than the true line
size, at least two line cache lines fit in the space of a true cache
line. Since that cache line will be accessed twice, the first access
will cause an expensive cache miss, while the second access will be a
cache hit. Once the line cache line is equal to the true cache line
size, then all accesses will cause cache misses.
BUGS
line is an experimental benchmark, but it seems to work well on most
systems.
SEE ALSO
lmbench(8), tlb(8), cache(8), par_mem(8).
AUTHOR
Carl Staelin and Larry McVoy
- Comments, suggestions, and bug reports are always welcome.