1f08c3bdfSopenharmony_ciKernbench v0.42 2f08c3bdfSopenharmony_ci 3f08c3bdfSopenharmony_ci 4f08c3bdfSopenharmony_ciWhat is this? 5f08c3bdfSopenharmony_ci 6f08c3bdfSopenharmony_ciThis is a cpu throughput benchmark originally devised and used by Martin J. 7f08c3bdfSopenharmony_ciBligh. It is designed to compare kernels on the same machine, or to compare 8f08c3bdfSopenharmony_cihardware. To compare hardware you need to be running the same architecture 9f08c3bdfSopenharmony_cimachines (eg i386), the same userspace binaries and run kernbench on the same 10f08c3bdfSopenharmony_cikernel source tree. 11f08c3bdfSopenharmony_ci 12f08c3bdfSopenharmony_ciIt runs a kernel at various numbers of concurrent jobs: 1/2 number of cpus, 13f08c3bdfSopenharmony_cioptimal (default is 4xnumber of cpus) and maximal job count. Optionally it can 14f08c3bdfSopenharmony_cialso run single threaded. It then prints out a number of useful statistics 15f08c3bdfSopenharmony_cifor the average of each group of runs and logs them to kernbench.log 16f08c3bdfSopenharmony_ci 17f08c3bdfSopenharmony_ciYou need more than 2Gb of ram for this to be a true throughput benchmark or 18f08c3bdfSopenharmony_cielse you will get swapstorms. 19f08c3bdfSopenharmony_ci 20f08c3bdfSopenharmony_ciIdeally it should be run in single user mode on a non-journalled filesystem. 21f08c3bdfSopenharmony_ciTo compare results it should always be run in the same kernel tree. 22f08c3bdfSopenharmony_ci 23f08c3bdfSopenharmony_ci 24f08c3bdfSopenharmony_ciHow do I use it? 25f08c3bdfSopenharmony_ci 26f08c3bdfSopenharmony_ciYou need a kernel tree (any 2.6 will do) and the applications 'time', 'awk', 27f08c3bdfSopenharmony_ci'date' and 'yes' installed. 'time' is different to the builtin time used by 28f08c3bdfSopenharmony_ciBASH and has more information desired for this benchmark. 29f08c3bdfSopenharmony_ci 30f08c3bdfSopenharmony_ciSimply cd into the kernel tree directory and type 31f08c3bdfSopenharmony_ci 32f08c3bdfSopenharmony_ci/path/to/kernbench 33f08c3bdfSopenharmony_ci 34f08c3bdfSopenharmony_ci 35f08c3bdfSopenharmony_ciOptions 36f08c3bdfSopenharmony_ci 37f08c3bdfSopenharmony_cikernbench [-n runs] [-o jobs] [-s] [-H] [-O] [-M] [-h] [-v] 38f08c3bdfSopenharmony_cin : number of times to perform benchmark (default 5) 39f08c3bdfSopenharmony_cio : number of jobs for optimal run (default 4 * cpu) 40f08c3bdfSopenharmony_cis : perform single threaded runs (default don't) 41f08c3bdfSopenharmony_ciH : don't perform half load runs (default do) 42f08c3bdfSopenharmony_ciO : don't perform optimal load runs (default do) 43f08c3bdfSopenharmony_ciM : don't perform maximal load runs (default do) 44f08c3bdfSopenharmony_cif : fast run 45f08c3bdfSopenharmony_cih : print this help 46f08c3bdfSopenharmony_civ : print version number 47f08c3bdfSopenharmony_ci 48f08c3bdfSopenharmony_ci 49f08c3bdfSopenharmony_ciChangelog: 50f08c3bdfSopenharmony_civ0.42 Fixed incorrect counting of cpus (thanks Flynn Marquardt) 51f08c3bdfSopenharmony_ci Changed -j to at least 4GB ram. 52f08c3bdfSopenharmony_ci 53f08c3bdfSopenharmony_civ0.41 Fixed make oldconfig 54f08c3bdfSopenharmony_ci 55f08c3bdfSopenharmony_civ0.40 Made all runs use the oldconfig if it exists. Changed to only do one 56f08c3bdfSopenharmony_ci warmup run before all the benchmarks. Added logging to kernbench.log 57f08c3bdfSopenharmony_ci Cleaned up the code substantially to reuse code where possible. 58f08c3bdfSopenharmony_ci Added standard deviation statistics courtesy of Peter Williams 59f08c3bdfSopenharmony_ci 60f08c3bdfSopenharmony_civ0.30 Added fast run option which bypasses caching, warmup and tree 61f08c3bdfSopenharmony_ci preparation and drops number of runs to 3. Modified half loads to 62f08c3bdfSopenharmony_ci detect -j2 and change to -j3. Added syncs. Improved warnings and 63f08c3bdfSopenharmony_ci messages. 64f08c3bdfSopenharmony_ci 65f08c3bdfSopenharmony_civ0.20 Change to average of runs, add options to choose which runs to perform 66f08c3bdfSopenharmony_ci remove single threaded run from defaults, do warmup run, lots more 67f08c3bdfSopenharmony_ci sanity checks, drop meaningless runs, add a few warnings, remove fudge 68f08c3bdfSopenharmony_ci factor from no. of jobs. 69f08c3bdfSopenharmony_ci 70f08c3bdfSopenharmony_civ0.11 First public release 71f08c3bdfSopenharmony_ci 72f08c3bdfSopenharmony_ci 73f08c3bdfSopenharmony_ciThanks: M. Bligh for ideas. Others for help with magic incantations to get 74f08c3bdfSopenharmony_ci BASH to work. 75f08c3bdfSopenharmony_ci 76f08c3bdfSopenharmony_ci 77f08c3bdfSopenharmony_ciCon Kolivas <kernbench@kolivas.org> 78f08c3bdfSopenharmony_ciMon Jun 18 18:59:24 2007 79f08c3bdfSopenharmony_ci 80f08c3bdfSopenharmony_ciLicense: 81f08c3bdfSopenharmony_ciGPL of course. Read COPYING included in this tarball. 82