Compatibility Notes
Change to sc_time in Release 7.1.1
The definition of the sc_time member of the
scb(D4sdi)
structure will change in UnixWare 7 Release 7.1.1 so that it is in
seconds; previous releases of UnixWare 7 (including Release 7.1.0)
defined this value in milliseconds.
We don't believe that this affects any of our customers in a negative
way but we felt that we should make this decision known to our
development partners.
First, some background.
SCSI command timeouts in SDI were originally only supported on those
pieces of HA hardware that supported an on-board watchdog timer for a
command.
There was no concept of the HBA driver itself managing timeouts thru
some watchdog routine in the driver.
At this stage, HBA drivers treated the value contained in the sc_time
member of the scb structure as being in units of milliseconds.
All of the target drivers in the system consistently supplied timeout
values in milliseconds.
For UnixWare 7 Release 7.0.0, variable command timeouts were implemented
in the disk target driver (sd01).
This is the ability to have different timeout values for different
commands based on a table contained in a flat file in /etc/scsi.
At the same time, software based timeouts were implemented in our sample
HBA driver using a watchdog timer.
The developers implementing this feature chose to
use units of seconds for sc_time instead of milliseconds.
This resulted in disk timeouts working just fine.
Unfortunately, this choice broke timeouts for all other target devices
because the rest of the target drivers still supplied millisecond values
for sc_time.
Since the reference implementation in the sample HBA driver was now
broken with respect to all targets except disk targets, any IHV who
followed the sample driver also had the same problem.
In addition, any pass-through application was broken at this point as well.
Using pass-through is just like using a target driver in that the pass-through
application also supplies a value in sc_time for the HBA drivers.
The manual page for scb(D4sdi) says the units of sc_time are milliseconds.
So pass-through applications that rigorously followed the manual pages
were coding in milliseconds as well.
At this stage the net result was that disk timeouts worked fine but
there was no hope in ever timing out a command on a tape or CDROM if
that command came from the normal I/O path or on any device if the
command came to the HBA via passthrough.
We have decided to try and make the best of this confused state of
affairs by changing the definition of sc_time to seconds
uniformly throughout SDI, both kernel and commands, as well as in all
documentation.
This change will take place in UnixWare 7 Release 7.1.1.
We have updated the scb(D4sdi) manual page in this version of
the HDK to match the sc_time definition used in Release 7.1.1.
We have surveyed all HBA drivers that are known to us and only found
one example where a driver was treating sc_time in milliseconds
instead of seconds; we have already updated that IHV.
It is our belief that every other HBA driver treats this value as
being in seconds.
All HBA drivers that claim to support timeouts have been re-tested
for Release 7.1.1 to make sure that everything is working as planned and
documented.
Document version 7.1.0a
08 July 1999