| Commit | Line | Data |
|---|---|---|
| 1365b5f1 SW |
1 | $FreeBSD$ |
| 2 | ||
| 3 | This is the FreeBSD kernel stress test suite. The purpose is to crash the | |
| 4 | computer, by stressing selected parts of the kernel, thus exposing inadequate | |
| 5 | error handling. | |
| 6 | ||
| 7 | Do not run the syscall test as root. | |
| 8 | ||
| 9 | To build and use: | |
| 10 | ||
| 11 | make | |
| 12 | sh ./run.sh | |
| 13 | ||
| 14 | The "run.sh" script accepts an optional configuration file in order to test specific areas. | |
| 15 | For example: | |
| 16 | ||
| 17 | ./run.sh vfs.sh | |
| 18 | ||
| 19 | ||
| 20 | To run all of the different test scenarios type: | |
| 21 | ||
| 22 | ./run.sh -a | |
| 23 | ||
| 24 | You may have to tune the stress test to make sure that your test box run low | |
| 25 | on resources. For example: | |
| 26 | ||
| 27 | INCARNATIONS=125 ./run.sh | |
| 28 | ||
| 29 | The following sub-directories exists: | |
| 30 | ||
| 31 | ./doc Documentation | |
| 32 | ./include Include file for building the test programs in ./testcases | |
| 33 | ./lib Common support files for the test programs | |
| 34 | ./misc Various test scenarios. Mostly regression tests | |
| 35 | ./testcases Test programs | |
| 36 | ./tools Supplementary tools used in stress testing | |
| 37 | ||
| 38 | The name stress2 indicates that this is the second generation of the Kernel Stress Test Suite. | |
| 39 | The first version (stress) was based mostly on scripts. | |
| 40 | ||
| 41 | ||
| 42 | 20090120: des@ pointed out it would be nice to be able to set the | |
| 43 | random seed in order to be able to reproduce errors in time. | |
| 44 | A test of this show that the occurrence of panics are still | |
| 45 | non-deterministic even with a fixed seed. The known broken | |
| 46 | unionfs was used to test this: | |
| 47 | http://people.freebsd.org/~pho/stress/log/marcus006.txt. | |
| 48 | First panic occurred after 29 loops and the second after 8 | |
| 49 | with a seed of "123". | |
| 50 | ||
| 51 | The randomness that is provided by lack of synchronization | |
| 52 | with timer interrupt, disk block layout and disk access | |
| 53 | latencies caused by platter and heads speed changes, disk | |
| 54 | firmware internal operations, and so on are _much_ bigger | |
| 55 | then the undeterminism caused by the non-repeatable random | |
| 56 | seed. | |
| 57 | ||
| 58 | Anyway, I have always view the this issue as only a slight | |
| 59 | inconvenience. |