Patch Name: PHKL_20590 Patch Description: s700 10.20 stape cumulative patch Creation Date: 99/12/14 Post Date: 99/12/30 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: OS-Core.CORE-KRN OS-Core.KERN-RUN ProgSupport.C-INC Automatic Reboot?: Yes Status: General Superseded Critical: No (superseded patches were critical) PHKL_18270: PANIC Panic has only been seen with a failing DLT tape drive. Path Name: /hp-ux_patches/s700/10.X/PHKL_20590 Symptoms: PHKL_20590: ( SR: 8606102798 DTS: JAGab68793) This patch completes the implementation of the tunable "st_ats_enabled" which was initiated with patch PHKL_20062. The original implementation was incomplete and did not work under all circumstances. PHKL_20508: ( SR: 8606100743 DTS: JAGab31975 ) When performing an ioscan after a write() to a tape device has hung, all further commands to the tape device LUN will stall indefinitely. A reboot is required to free the LUN. PHKL_20062: ( SR: 8606101051 DTS: JAGaa40952 ) When doing an ioscan at the same time as an open() to a DLT drive, the drive may report Unexpected Disconnect and hang. ( SR: 8606102798 DTS: JAGab68793) Enhancement: Added a new tunable "st_ats_enabled" to the config file. If st_ats_enabled is set to 0 in the system config file then the driver will not attempt to reserve a tape device using the SCSI RESERVE command. The default value of st_ats_enabled is 1, meaning the driver will attempt to reserve the tape device. ( SR: 8606103542 DTS: JAGab70420) When using a DLT drive and requesting a specific density rather than "BEST", the driver was not turning on compression on the drive even when a compressed density was used. PHKL_18270: ( SR: 1653284919 DTS: JAGaa51425 ) System may panic in st_head_pos with a faulty DLT drive. This has only been seen to happen with a defective DLT tape drive. ( SR: 4701428383 DTS: JAGab16436 ) Enable DLT 8000 tape drive ( SR: 4701428391 DTS: JAGab16438 ) Sending a "seek to EOD" command to an STK 9840 drive returns EINVAL even though the drive supports the command. PHKL_17336: SR 1653262576: mksf command doesn't recognize density values for STK 9840, STK 9490, STK SD-3, IBM 3590, DDS3, and some of the DLT densities. SR 4701411116: Poor performance with an STK 9840 drive. SR 4701411090: No customer visible symptoms. Driver sends an unnecessary command to the drive. SR 1653251611: If a tape is changed while a process has the device open, no error is reported to the process. Defect Description: PHKL_20590: ( SR: 8606102798 DTS: JAGab68793) The original 10.20 patch PHKL_20062 did not completely implement the st_ats_enabled tunable parameter enhancement request. In some cases, auto reserve-release could not be disabled. Resolution: Made the st_ats_enabled flag a system tunable. PHKL_20508: ( SR: 8606100743 DTS: JAGab31975 ) With a tape device LUN opened by stape, an ioscan pass-thru command retry will enter stape's pass-thru clean-up routine a second time releasing the LUN semaphore to an invalid, permanently locked state. Resolution: Stape does not release the LUN semaphore for the pass-thru command if the pass-thru driver is going to retry its IO attempt. PHKL_20062: ( SR: 8606101051 DTS: JAGaa40952 ) The problem is a combination of incorrect behavior from the DLT drive, incorrect behavior in SCSI services, and unusual behavior in the stape driver while attempting to work around a 7980 firmware bug. The tape driver was slowing the connection down to asynchronous mode before the initial inquiry because 7980s do not do synchronous i/o correctly. Then, if the drive was not a 7980, it would go back to synchronous. In the mean time, if a passthrough I/O attempted to negotiate for synchronous mode, the interface layer got confused with one driver asking for sync and the other asking for async. Resolution: The code was rearranged to first do the inquiry in synchronous mode, then check for a 7980 and slow down if necessary. We found through testing that the 7980 was able to handle the synchronous mode inquiry properly. ( SR: 8606102798 DTS: JAGab68793) No defect, this is a new feature based on an enhancement request. Resolution: Made the st_ats_enabled flag a system tunable. ( SR: 8606103542 DTS: JAGab70420) DLT drives specify compression in two places - embedded within the density setting, and also separately on a mode page. The driver was selecting the correct density, but was not enabling compression on the mode page. Resolution: Added flags for the DLT drives to also enable compression via the mode page PHKL_18270: ( SR: 1653284919 DTS: JAGaa51425 ) An uninitialized sense pointer was being used without being checked. Resolution: Check for NULL before deferencing the sense pointer. ( SR: 4701428383 DTS: JAGab16436 ) Enhancement request to enable DLT 8000 tape drive. Resolution: Add DLT 8000 to drives recognized by driver ( SR: 4701428391 DTS: JAGab16438 ) Seek to EOD" command to an STK 9840 drive was not allowed by the driver. Resolution: Modify the driver to allow the seek to EOD command PHKL_17336: SR 1653262576: Request to add recognition of new device densities. Resolution: Updated code with densities for newer STK and DLT drives. SR 4701411116: The drive identifies itself as a SCSI3 device. The driver was assuming that the drive was SCSI1 and so was not negotiating for wide/fast transfers. Resolution: Changed code to negotiate for fast/wide transfers for SCSI3 devices SR 4701411090: ER to avoid sending a command that we know the device will not handle. Resolution: Changed code to return an EINVAL error in response to a request to write setmarks to a device which is known to not support setmarks. SR 1653251611: The driver would respond to a media change event by retrying the I/O rather than by returning an error. Resolution: Changed code to return an EIO error if the media is changed while the device is open. The error is returned on the next access to the device. SR: 1653251611 1653262576 1653284919 4701411090 4701411108 4701411116 8606100743 8606101051 8606102798 8606103542 Patch Files: /usr/conf/h/mtio.h /usr/conf/lib/libhp-ux.a(mt_prop.o) /usr/conf/lib/libhp-ux.a(scsi_tape.o) /usr/conf/master.d/scsi-tune /usr/conf/space.h.d/scsi-tune.h /usr/include/sys/mtio.h what(1) Output: /usr/conf/h/mtio.h: mtio.h $Date: 99/01/12 15:12:56 $ $Revision: 1.24.98 .14 $ PATCH_10.20 (PHKL_17336) /usr/conf/lib/libhp-ux.a(mt_prop.o): mt_prop.c $Date: 99/01/12 10:50:31 $ $Revision: 1.5. 98.5 $ PATCH_10.20 (PHKL_17336) /usr/conf/lib/libhp-ux.a(scsi_tape.o): scsi_tape.c $Date: 99/11/22 17:07:41 $ $Revision: 1. 8.98.30 $ PATCH_10.20 (PHKL_20508) /usr/conf/master.d/scsi-tune: scsi-tune $Date: 99/10/14 12:29:17 $ $Revision: 1. 1.98.3 $ PATCH_10.20 (PHKL_20062) /usr/conf/space.h.d/scsi-tune.h: scsi-tune.h $Date: 99/12/14 12:38:04 $ $Revision: 1.1.98.6 $ PATCH_10.20 (PHKL_20590) /usr/include/sys/mtio.h: mtio.h $Date: 99/01/12 15:12:56 $ $Revision: 1.24.98 .14 $ PATCH_10.20 (PHKL_17336) cksum(1) Output: 937871051 28476 /usr/conf/h/mtio.h 398647120 15040 /usr/conf/lib/libhp-ux.a(mt_prop.o) 459745827 68860 /usr/conf/lib/libhp-ux.a(scsi_tape.o) 1776574115 476 /usr/conf/master.d/scsi-tune 2433115272 1462 /usr/conf/space.h.d/scsi-tune.h 937871051 28476 /usr/include/sys/mtio.h Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_16750 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_17336 PHKL_18270 PHKL_20062 PHKL_20508 Equivalent Patches: PHKL_20591: s800: 10.20 Patch Package Size: 180 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHKL_20590 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_20590.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_20590. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. WARNING: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_20590.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_20590.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch depends on base patch PHKL_16750. For successful installation, please ensure that PHKL_16750 is in the same depot with this patch, or PHKL_16750 is already installed.