This is sort-of off topic, but I thought the kernel developers might
find it of interest. This is the package we use to find bottlenecks in
Digital Unix (amoung other things). We have used it internally for 4-5 years
on DU/VMS/NT and my job was to port it to Alpha/Linux. It is released under
It can be used to find where system/board cache misses occur, where cycles
are spent, and more.
We hope it'll be a boon to kernel performance enhancement.
Digital/Compaq: High Performance Servers/Benchmark Performance Engineering
[email protected] [email protected]
Compaq/Digital's High Performance Servers/Benchmark Performance Engineering
The Iprobe tool suite (4.0) for Alpha/Linux.
Contact: [email protected] or [email protected]
What is iprobe?
It is a little-known fact that the Compaq Alpha processor has some nifty
on-chip performance hardware that can be used to find bottlenecks in program
Iprobe gives the user access to this hardware.
Iprobe is a low-overhead tool suite that uses the Alpha event counters to find
performance bottlenecks in kernel and user space.
The iprobe suite allows one to pinpoint problem code. It can not only
determine where a program is spending its cycles, but it can also
figure out where caches misses and floating point instructions occur
as well. Iprobe can help to answer the following questions:
Where is my program missing the cache? Where is my
program spending all of its cycles? Which branch path is taken most often?
Internally, Iprobe has been used to optimize performance in benchmarks
(SPEC CPU95), operating systems (VMS, Digital Unix, Windows NT) and databases.
(Oracle, and Informix)
Iprobe has traditionally be a cross-platform alpha tool. It runs on
Digital Unix, Open VMS, and Windows NT, and it is now being released under
GPL for Alpha/Linux.
Who can run it?
The iprobe suite should run on all Alpha machines created prior to the EV6.
Currently, it has been tested successfully on all Alpha/Linux machines that
boot using the Digital SRM and aboot. It may NOT run on machines running
For those that use MILO, iprobe MAY work. The AlphaStation 250 is known to
work, but not the AlphaStation 500. Jay Estabrook (the MILO guru) is looking
into this matter, and should have an updated MILO for those that need it RSN
(real soon now).
Iprobe also requires a kernel >2.1.132. Any 2.2.X kernels should work.
Where do I get it?
Iprobe is availbe at: metalab.unc.edu:/pub/Linux/Incoming
Soon to be in: metalab.unc.edu:/pub/Linux/devel
The suite consists of two required parts, and a third which is optional:
1) A kernel driver (iprobe_suite-4.0-driver.o.gz)
This has been compiled for your convenience. The source is availbe
in the rpm/tarball with the source for the rest of the suite, but it
must be compiled against a kernel with performance counter support, so for
ease of use, a binary driver is provided.
2) Application Suite (iprobe_suite-4.0-1.alpha.rpm)
These are all the applications that actually use the performance
counters. Instruction on their use is provided within.
3) Source (iprobe_suite-4.0-1.src.rpm)
This is the source for all of the above.
How do I install?
You need both the rpm and the kernel module. One will NOT work without
Get these files:
Once you get the rpm, simply type
rpm -i iprobe_suite-4.0-1.alpha.rpm
You will also need to unzip and insert the kernel module. More information
is available in the INSTALL document.
Documentation will be installed in /usr/doc/iprobe_suite-4.0/
Read INSTALL for instructions on installing the suite.
Read TUTORIAL for instructions on using the suite.
If you don't read this, it will NOT work, and you will be frustrated.
We are currently looking for an external site to host a web page for to
host information/howtos and success stories on. If any one is interested,
email [email protected].