This paper presents novel sampling-based techniques for collecting statisti
cal profiles of register contents, data values, and other information assoc
iated with instructions, such as memory latencies. Values of interest are s
ampled in response to periodic interrupts. The resulting value profiles can
be analyzed by programmers and optimizers to improve the performance of pr
oduction uniprocessor and multiprocessor systems.
Our value sampling system extends the DCPI continuous profiling infrastruct
ure, and inherits many of its desirable properties: our value profiler has
low overhead (approximately 10% slowdown); it profiles all the code in the
system, including the operating system kernel; and it operates transparentl
y, without requiring any modifications to the profiled code.