# iostress

Stresses the IO subsystem to uncover bugs.

### Synopsis

`iostress [-quit]`

### Description

Installs a set of monitoring routines that catch incorrect use of the IO subsystem.

The monitoring routines ensure the following:

- When writing data, the routines guarantee that the buffer used for the IO remains consistent and does not get altered while the write operation occurs. This guarantees that a title is not manipulating data that are being fetched by an IO module.
- When reading data, the routines guarantee that it is not possible to read any data associated with the IO request until the IO request has been completed. This guarantees that a title is not reading data before it has been completely transferred.
- The monitoring routines do their work by allocating temporary buffers and using these for the IO transactions. Doing so requires some extra memory, and requires some extra CPU time to copy data between the buffers. This can affect the performance of a title, possibly causing some jerky animations, but should never cause a crash, or trashed sound or graphics. If these things happen, then the title has a bug.

  ### Arguments

-quit
  Tells a previously started version of iostress to exit.

### Implementation

Command implemented in V24.

$c/iostress

### Caveats

Quitting is a tricky operation and does not always work. The safest way to "quit" is to reset the system.