Test Plan

Configurations

All the testing done so far has been done on simple two partition systems. The two systems that clshm has been tried on are a two module system with one node on each module and a 256 processor system broken into two fully populated 128p partitions. Testing should also be done on a system with more than two partitions. The more paritions the better to stress the possible race conditions that exist in the daemon. To set up the machines to run the clshm driver, see the Setting Up a System section.

Current Tests Available

The following stress tests have been created:

Shmtest is the largest and most generic test. It has a lot of command line options to test the various features of the shared memory library. It opens up a shared memory segment for each partition and creates multiple threads to read and write to all the different partitions' segments at the same time. The command must be called with the same command line options on all partitions that exist in order for it to run successfully. It uses a simple barrier implementation using shared memory found in a helper module (clshm_barrier.c/.h) to synchronise the reading and writing passes of testing. Pass "-h" to shmtest to print out the diffferent command line options available.

The other tests are more specific. Shmsmall just calls all the different xp_* functions on the same partition and makes sure that they all return appropriate values. Shmzero makes sure that shared memory pages are given to us in a zeroed out form. Shmlen attempts to xp_shmget the same shmid with different lengths (which should fail). Shmauto tests the auto cleanup feature that was added to automatically clean up a shared memory segment after the last detach. It sends an auto cleanup message at different stages in the the xp_shmget/xp_shmat/xp_shmdt sequence.

Needed Tests

The following tests are needed to complete the tests