Well, this is it: I'm really famous now. Big time. I've got my name in the BogoMips Mini-Howto. And not just once, but twice. Scroll down to the listing for the "AMD Athlon/1330" or "Crusoe/400" entries (or search for 'wrhodes').
I wasn't going to do this, but why not... Here's what a BogoMip is:
Quoted from the Internet, origin unknown but brought to the attention by Eric S RaymondWhen I got my new Athlon 1.33GHz, I did two things: a kernel compile (using defaults) and a BogoMips comparison against my older Athlon 600. The difference between the two was exactly what one would expect. So then I got curious and looked up another 1.33 Athlon on the BogoMips Mini-Howto's comparison table. The speediest Athlon listed was like a 1.2GHz or something. So I mailed my BogoMips number to Wim van Dorst, the author of the Mini-Howto, and basically told him that mine was bigger than anyone else's, and he must put it in the listing so others may bask in awe of it's sheer girth. We had a little email exchange that was pretty amusing. The innuendo couldn't be kept up long, though., and Geoff Mackenzie
, there is an humourously illustrative definition of BogoMips as "the number of million times per second a processor can do absolutely nothing."
On a more precise basis, from Lars Wirzenius'mail of 9 September 1993, explaining Bogomips, with additional detailed information by Alessandro Rubini,
, and by Wim van Dorst:
`MIPS is short for Millions of Instructions Per Second. It is a measure for the computation speed of a program. Like most such measures, it is more often abused than used properly (it is very difficult to justly compare MIPS for different kinds of computers).BogoMips are being determined in
BogoMips are Linus's invention. The kernel (or was it a device driver?) needs a timing loop (the time is too short and/or needs to be too exact for a non-busy-loop method of waiting), which must be calibrated to the processor speed of the machine. Hence, the kernel measures at boot time how fast a certain kind of busy loop runs on a computer. "Bogo" comes from "bogus", i.e, something which is a fake. Hence, the BogoMips value gives some indication of the processor speed, but it is way too unscientific to be called anything but BogoMips.
The reasons (there are two) it is printed during boot-up is that a) it is slightly useful for debugging and for checking that the computers caches and turbo button work, and b) Linus loves to chuckle when he sees confused people on the news.'/usr/src/linux/init/main.c
loops_per_sec is used in several drivers for more serious purpose. The actual delay functionudelay()
is in assembler, and therefore each port has its own definition in/include/asm/delay.h
. Theloops_per_sec
variable and theudelay()
function are used in numerous drivers, see:
cd /usr/src/linux #or where else source is located
find . -name '*.[hcS]' -exec fgrep loops_per_sec {} /dev/null \;
find . -name '*.[hcS]' -exec fgrep udelay {} /dev/null \;
The BogoMips calculation loop for the non Intel CPUs is similar but not the same, because it is programmed in another assembler language. BogoMips is however the only portable way over the various CPUs (Intel-type and non Intel-type) for getting an indication of the CPU speed. Even CPU clock speed is not available on all CPUs.