s i s t e m a o p e r a c i o n a l m a g n u x l i n u x | ~/ · documentação · suporte · sobre |
Next
Previous
Contents
2. The frequently asked questions about BogoMipsSeveral authors have contributed to my knowledge of BogoMips. In this place, I would like to thank them highly.
2.1 What are BogoMipsQuoted from the Internet, origin unknown but brought to the attention
by Eric S Raymond
On a more precise basis, from Lars Wirzenius'
`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 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.
2.2 How to estimate what the proper BogoMips rating should beFrom a initiative by Ian Jackson, As a very approximate guide, the BogoMips can be calculated by:
System BogoMips Comparison Intel 8088 clock * 0.004 0.02 Intel/AMD 386SX clock * 0.14 0.8 Intel/AMD 386DX clock * 0.18 1 (definition) Motorola 68030 clock * 0.25 1.4 Cyrix/IBM 486 clock * 0.34 1.8 Intel Pentium clock * 0.40 2.2 Intel 486 clock * 0.50 2.8 AMD 5x86 clock * 0.50 2.8 Mips R4000/R4400 clock * 0.50 2.8 Motorola 68040 clock * 0.67 3.7 Nexgen Nx586 clock * 0.75 4.2 PowerPC 601 clock * 0.84 4.7 Alpha 21064/21064A clock * 0.99 5.5 Alpha 21066/21066A clock * 0.99 5.5 Alpha 21164/21164A clock * 0.99 5.5 Intel Pentium Pro clock * 0.99 5.5 Cyrix 5x86/6x86 clock * 1.00 5.6 Intel Pentium II/III clock * 1.00 5.6 AMD K7/Athlon clock * 1.00 5.6 Intel Celeron clock * 1.00 5.6 Mips R4600 clock * 1.00 5.6 Alpha 21264 clock * 1.99 11.1 AMD K5/K6/K6-2/K6-III clock * 2.00 11.1 AMD Duron clock * 2.00 11.1 UltraSparc II clock * 2.00 11.1 Pentium MMX clock * 2.00 11.1 Pentium 4 clock * 2.00 11.1 Centaur C6-2 clock * 2.00 11.1 PowerPC 604/604e/750 clock * 2.00 11.1 Motorola 68060 clock * 2.01 11.2 IBM S390 not enough data (yet) Note that the BogoMips calculation loop does not take full advantage of the parallelism of various processors, such as the Intel Pentium and the Alpha 21164.
2.3 How to determine what the current BogoMips rating isThere are three methods to determine the current BogoMips, viz.
A non-determinative alternative, which is also applicable for non-Linux
systems such as Crays and so, may be the standalone BogoMips
program. From the readme file by Jeff Tranter,
`Tired of rebooting your system so you can see how many BogoMips it's running at today? [...] "Bogomips" is a standalone program that displays your system performance using one of the world's most recognized benchmarks. It uses the same code that is used in the Linux kernel while booting, but runs as a user program. [...] Version 1.3 of BogoMips is now portable and should run on any system that supports an ANSI C compiler and library.' Note that due to system load values calculated with the standalone program on Linux systems may be lower than registered in the list below. Intrinsically the standalone cannot give precisely similar information to the boot sequence BogoMips, since system load will compete with this program run by an ordinary user. Therefore only boot sequence BogoMips ratings are listed below. Be aware that the file
2.4 Variations in BogoMips ratingFrom Linus Torvalds,
`The BogoMips calculation loop is "quantizised", so you're most likely to get the exact same number all the time. You usually will get different numbers only if the speed is just on the "edge", when small variations (different time for interrupt ticks etc) will make it jump from one value to the other.' If a kernel is not compiled specifically for the pertaining CPU, also some (even large) variations of the BogoMips ratings can occur, mainly due to erroneous alignment. This problem apparently only occurs on the various x86 CPUs (Intel and clones). Fortunately it can easily be solved: recompile the kernel specifically for your CPU.
2.5 New BogoMips algorithm?No, the BogoMips algorithm, contrarily to popular believe, did NOT change over the various kernel versions. Furthermore, it is intrinsically the same for all CPUs of all makes.
What did change in kernel version 2.2.14 is the CPU state setting just before the BogoMips calculation. This affects the BogoMips rating for all Intel and AMD Pentium variations, resulting in approximately 2*clock, where these were not 2*clock.
The entries based on these upgraded kernel versions for CPUs where this change was actually relevant for (Pentium II/III, Celeron, Athlon) are marked in the list below with an initial * (star symbol).
2.6 BogoMips ... failedSuggested by various questions on the net and private mail,
e.g., by Lily,
`When I boot Linux I get the message:Calibrating delay loop.. ok - 23.96 BogoMips failedWhere/why has the calibration delay loop failed?' It didn't fail. If it had failed the text would have been Calibrating delay loop.. failed What likely did fail was a driver for some gadget which you may not have in your machine. Just after calculating the BogoMips rating all device drivers are initiated. First the SCSI devices, then Net devices, etc. Any failure is duly reported. Noteworthy is the AHA152x driver. Other effects of failing drivers (and not of failing BogoMips calculations) are systems crashes, long waits, and complete system locks, somewhere close to (just before or just after) outputting the ok - xx.xx BogoMips text. Since Linux 1.2 many error messages have improved, so upgrade to at least that version to find out which particular driver it is that is failing. Also recompile the kernel to only include the drivers that are actually needed for your hardware configuration.
2.7 What about clone CPUs (Cyrix, NexGen, AMD, etc)Cyrix 486-like CPUs need cache enabling software, sometimes referred to as BogoBoost software. Cyrix 5x86 and 6x86 CPUs may have their BogoMips improved drastically by branch-prediction (BIOS option). Note that the performance improvement may be marginal. There are several packages available for adjusting Cyrix CPUs, such as the BogoBoost patch, cx5x86mod, and set6x86, all from the normal archives, in obvious places. It is reported the Cyrix 6x86 CPUs may give better performance when the kernel is compiled with 486-optimization, instead Pentium-optimization. NexGen 386-enhanced CPUs, marked as Nx586, are listed as 386-like, since the fact that they are performing like Pentium machines is not relevant to BogoMips. AMD 5x86, also denoted as AMD 486DX5, are quadrupled 486/33 machines. They are fully in line with other 486 CPUs. The AMD K5 and the K6 are Pentium-like CPUs, with their own BogoMips multipliers.
2.8 Why to pay attention to BogoMipsLet me add that there are only two reasons for paying attention to the BogoMips rating that is presented on booting Linux:
Note that more serious uses for real benchmarking are addressed in the Linux Benchmarking Howto by André D. Balsa.
Next Previous Contents |