DAIO USCSI

The DAIO (Diskomizer Asynchronous IO) USCSI module uses the raw uscsi(7I) interface provided to issue IOs. This has a number of effects:

  1. It avoids disksort in the disk driver.

  2. Any of the more esoteric bits in the SCSI packet can be set.

  3. Unlabelled devices can be tested.

  4. Labels can be completely overwritten.

The DAIO_USCSI module is used by setting the option AIO_ROUTINES to be USCSI. It can only be used on devices that support the uscsi(7I) interface. The user running Diskomizer has to have enough privileges to both open the device and issue the USCSI commands. Traditionally this means running as root.

Due to the limitations of the sd(7D) and ssd(7D) drivers prior to SunOS 5.9 using the DAIO_USCSI module on those releases is not recommended. The drivers prior to SunOS 5.9 would only allow one uscsi(7I) command per device at a time.

The DAIO_USCSI module uses the same threading model as the DAIO_PREAD module to give the appearance of asynchronous IO.

Options

The following options are only valid if DAIO_USCSI_USE_PWRITE is false, they all set various bits in the SCSI packet:

The following options are only valid if DAIO_USCSI_USE_PREAD is false they all set various bits in the SCSI packet:

The following option is only valid if both DAIO_USCSI_USE_PREAD and DAIO_USCSI_USE_PWRITE are false.