Why was a BogoMip bogus?

I woke up this morning wondering something I hadn't in years. Why was Linux' BogoMip bogus?

I first installed Slackware Linux from a huge stack of 3.5" floppy disks. My life was changed. This was in the 1.0.X kernel days.

I stopped dicking around with Linux as my desktop OS when OS X bridged the gap. I have not made zlilo in over 2 decades, but this morning I woke up wondering about BogoMips!?

BogoMips were the computing speed measurement of note at my first internet start-up, an ISP and datacenter, and every new Intel or Intel-compatible CPU was curiously investigated by our tech team. When we'd boot a Linux kernel, we would watch carefully to see "the number of million times per second a processor can do absolutely nothing".

This morning I had to know! What the hell was so bogus about a BogoMip?

Linux Journal's Wim van Dorst answered that question 23 years ago!

Some device drivers in the Linux kernel need timing delays. Either they need a very short delay, or the delay must be very accurately determined. A simple non-busy loop cannot do this. Therefore, Linus Torvalds added a calibration in the boot procedure to predetermine how often a specific busy-loop algorithm can be calculated in one second. This predetermined value, called loops_per_second, is used in the device drivers to delay for precisely measured times.

For fun, Linus also added a print statement presenting this predetermined value (divided by 500,000) as BogoMips. Linus apparently loves it when millions of Linux users are gazing at their computer, baffled by these bogus MIPS. Note that BogoMips have nothing to do with the million instructions per second that the name suggests; that is why they are bogus.

The only serious reason for paying attention to the BogoMips presented on booting Linux is to see whether it is in the proper range for the particular processor, its clock frequency, and the potentially present cache. 486 systems are especially prone to faulty setups of RAM caching, turbo-buttons, and such things.