This week we spoke with John Levon, the author of OProfile and a
contributer to KernelNewbies. He offers much insight into both of
these projects, as well as reflecting on Linux in general. OProfile
is a statistical x86 profiling system for the 2.4 Linux kernel.
KernelNewbies is an excellent resource for people looking to
understand the Linux kernel, comprised of a web page, an IRC
channel, and a mailing list.
"JA: Who is currently using
oprofile?
John Levon: SuSE are using oprofile internally for a variety of
user-space and kernel tasks, including work on the networking
stack. HP are using it as part of their internal tools, and have
contributed to and sponsored oprofile development (they leant me an
SMP machine)
JA: What exactly does it mean, to 'profile the entire
system'?
John Levon: Intel and AMD provide performance counter registers on
their CPUs which can count interesting events such as cache line
fills. oprofile uses these counters to determine which routines in
the system affect them most. Due to its design, this includes all
code on the system: interrupt handlers, kernel modules, the kernel,
libraries and binaries.
Other profilers focus on particular parts of the system such as
a single binary. This runs the risk of mis-directing the
optimisation effort. Its non-intrusive design allows oprofile to be
run on production systems easily; getting more accurate data than
would otherwise be possible."