Technical data

5-14 PROM Monitor
COUNTER Runs until a certain instruction count is reached and
passed. The count is proportional to the Niblet process ID.
MPMON Verifies that repetitive Everest reads and writes are
identical.
MPINTADD Two processors add values to a common variable, hit a
barrier, and compare the final sum.
MPINTADD_4 Four-processor version of MPINTADD.
MPSLOCK A software locking protocol test.
MPHLOCK Tests load-link and store-conditional by grabbing a lock,
storing a process ID to a protected location, waiting for a
delay to expire, and then checking to see that the correct
process ID is still there. Multiple processors try this; a
failure should result in a processor reading the wrong PID.
MEMTEST Tests a range of memory by writing a value, based on a
process ID, to that range of memory and then verifying it.
The current version’s range is small enough to fit into a
secondary cache.
BIGMEM Same as above except that the range is larger than 1 MB.
PRINTTEST Tests Niblet context-switching (very fast sanity check).
BIGINTADD_4 Same as MPINTADD_4 except that it runs for a high
number of iterations.
BIGHLOCK Same as MPHLOCK except that it runs for a high number
of iterations.
Test Description
niblet 0 Runs one copy of the INVALID process. This test should
always pass almost immediately.
niblet 1 Runs INVALID, COUNTER, COUNTER.
niblet 2 Runs MPMON, MPMON. Test takes disproportionately
longer on single-processor compared to multi-processor
machines.
niblet 3 Runs MPINTADD, INVALID, MPINTADD. Test takes
disproportionately longer on single-processor compared to
multi-processor machines.
niblet 4 Runs MPSLOCK, MPSLOCK, INVALID.
niblet 5 Runs MPROVE, MPSLOCK, MPROVE, MPSLOCK,
INVALID.
Table 5-2 Niblet Supertests
Test Description
Table 5-1 (continued) Basic Niblet Tests