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