Real Time Data Throughput Display for a Storage I/O Driver
Original Publication Date: 2005-Feb-22
Included in the Prior Art Database: 2005-Feb-22
A test program which provides a high level of stress and allows users of the program to monitor the I/O activity on a tested subsystem. The stress level is related to the occurrence of certain failure conditions. This system provides testers with an inexpensive way to know the stress level while testing.
Real Time Data Throughput Display for a Storage I /O Driver
This disclosure describes a test driver which will keep information about the I/O activity for each device used by each testcase and to provide an interface which will make the measurements available to test monitors. Performance data is kept in terms on I/O operation rates and data transfer rates for every device which is controlled by each testcase. This data is sent to a monitor subsystem for display. The data may also be provided the to other subsystems for performance tuning and logging. The test program is designed to provide maximum I/O activity and respond to changes in tuning parameters.
The test system will perform the following steps in the order specified.
The test program reads control files which instruct the program about tested devices and
monitoring systems. During testcase and device initialization, the I/O counts and data transfer counts are initialized.
If monitors are allowed, the test system starts a thread (connection thread) to listen for
connections from monitors. When a monitor connects it is added to the list of monitors. If at lest one monitor is connected, another thread (monitor service thread) is started which will periodically send performance data to all the connected monitors.
A thread is started for each device to be tested. The device test threads will repeatedly
perform write and/or read passes to the device in a manner described by the control file and system defaults. On an I/O operation to a test device, counts are accumulated for each command and the number of bytes transferred for each operation command code. These counts are made available to the thread which presents the data to the monitors.
The connection thread will perform the following steps in the order specified.
The thread initializes access to control blocks and obtains operating parameters.
The thread listens for a connection from a monitor or a terminating interrupt.
When exiting from the listen, the connection is checked for a valid monitor connection.
the monitor is added to the list of monitors.
if this is the first mon...