Patch Name: PHSS_28509 Patch Description: s700_800 11.11 Tachyon TL Fibre Channel Driver Patch Creation Date: 04/01/22 Post Date: 04/04/02 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: FC-TACHYON-TL B.11.11.01 B.11.11.02 B.11.11.03 B.11.11.04 FC-TACHYON-TL B.11.11.05 B.11.11.06 B.11.11.09 Filesets: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_32,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.06,fa=HP-UX_B.11.11_32,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.06,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.05,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.04,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.03,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.02,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.01,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.09,fa=HP-UX_B.11.11_32/64,v=HP FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.06,fa=HP-UX_B.11.11_32/64,v=HP FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.05,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.04,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.03,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.02,fa=HP-UX_B.11.11_64,v=HP FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.01,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHSS_28509: CORRUPTION PANIC HANG ABORT CORRUPTION: on customer available performance kernel PANIC: only on not customer available debug kernel PHSS_26799: PANIC PHSS_24121: PANIC Category Tags: defect_repair enhancement general_release critical panic halts_system corruption Path Name: /hp-ux_patches/s700_800/11.X/PHSS_28509 Symptoms: PHSS_28509: ( SR:8606330190 CR:JAGae91313 ) IO hangs. Driver state as displayed by fcmsutil(1M) remains in AWAITING_FCP_FREEZE. ( SR:8606331014 CR:JAGae92135 ) FC frames are getting dropped due to HBA sending frames to FC switch without BB_CREDIT. ( SR:8606284151 CR:JAGae48098 ) LVM failover between FC disks takes around 70sec even with pvtimeout value set to 30. ( SR:8606290285 CR:JAGae54204 ) system panic due to assertion failure (n > 0) at line 72 in /ux/core/.../misc/subr_libc.c in debug kernel. Can lead to silent corruption in performance kernel ( SR:8606293192 CR:JAGae56942 ) fcmsutil when run with option force_mode results in "memory fault" core dump. ( SR:8606288311 CR:JAGae52242 ) Long latencies for reads with large(>=512KB) block sizes For example: dd if=/dev/rdsk/c*t*d* of=/dev/null bs=1024k count=50 takes longer when compared with dd if=/dev/rdsk/c*t*d* of=/dev/null bs=256k count=200 ( SR:8606304598 CR:JAGae67940 ) fcmsutil(1M) wrongly displays "maximum frame size" as 960 bytes for an HBA with Tachyon XL2 revision 2.3 chip. It should be 2048 bytes. ( SR:8606304132 CR:JAGae67480 ) When both A6826A and Tachlite cards are present in the same SAN, fcmsutil(1M) displays A6826A in the target device list of the Tachlite card. ( SR:8606231281 CR:JAGae00519 ) SNIA API: Calls to HBA_GetPortStatistics() return a negative value for the SecondsSinceLastReset attribute. ( SR:8606280151 CR:JAGae44126 ) SNIA API: Excessive PLOGIs observed when HBA_GetFcpTargetMapping()/HBA_GetFcpPersistentBinding() calls are made. ( SR:8606299163 CR:JAGae62657 ) SNIA API: Calls to HBA_GetAdapterPortAttributes() return an incorrect value for the PortSpeed attribute even when no devices are connected to the port. ( SR:8606302285 CR:JAGae65644 ) tddiag script can not collect statistics for more than 96 HBAs ( SR:8606240822 CR:JAGae08418 ) Driver does not take care of an error condition while setting the interrupt attributes. ( SR:8606320206 CR:JAGae82690 ) SNIA API: When the sense data available on a SCSI check condition is more than the size of the sense buffer passed by the caller, the HBA_SendReportLUNs() does not copy as much sense data as possible in the sense buffer before returning HBA_STATUS_ERROR_MORE_DATA. PHSS_26799: ( SR:8606229756 CR:JAGad98807 ) HBA_SendReadCapacity() returns an invalid error msg (HBA_STATUS_ERROR_MORE_DATA in this case) for a LUN 0 which is valid as per the mapping list returned from a prior call to HBA_GetPersistentBinding()/ HBA_GetFcpTargetMapping(). 227.673.ERROR :MAIN: TEST FUNCTION FAILED: MSQA_SendReadCapacity:Handle=2 Device filename c51t10d0 227.673.ERROR :MAIN: MSQA_SendReadCapacity: HBA status= 7. ( SR:8606221632 CR:JAGad90766 ) If an application that runs periodically stores the port WWN of a port it used during the first run and uses this stored WWN in successive runs, it would be beneficial for such an application to call HBA_GetPortAttributesByWWN() immediately after HBA_OpenAdapter() than to have to go through the call sequence enforced currently by the vendor library which could consume a lot of time if the number of remote ports is high. ( SR:8606265766 CR:JAGae30023 ) In a point to point fabric topology, I/O processes are getting hung. Ioscan shows NO_HW for all devices visible through the affected HBA. This state of HBA continues until the HBA or switch port is reset. Or else, the FC cable from HBA to switch port is disconnected and reconnected. ( SR:8606229941 CR:JAGad98992 ) The driver does not recognize, and rejects, RSCN with N-port page with address format 3 sent by a Brocade switch, i.e. Fabric Address Format RSCN. ( SR:8606220605 CR:JAGad89742 ) On slot 4 of Superdome system, after suspending the TL/XL2 card which was in online state, that PCI bus will not longer be accessible, and subsequent OLAR operation for that slot will give "general error" message. The same problem could happen on other systems (e.g. L-class) after suspending the TL/XL2 card which was in online state. On other systems the problem could also manifest itself as HPMC. ( SR:8606216893 CR:JAGad86057 ) The FM Link-Status Statistics counters look like they are being decremented. ( SR:8606237897 CR:JAGae06940 ) Multi-frame zoning commands sent by the HBA to a McData switch are being rejected by the switch. ( SR:8606245182 CR:JAGae11656 ) The driver uses sub-optimal logic to set the HBA cacheline size. The driver sets HBA cacheline size to 64 only when the HBA uses the XL2 chip and the system cacheline size is neither 32 nor 64. In all other cases it sets the HBA cacheline size to 32. This is sub-optimal, because when the system cacheline size is 64, an XL2 HBA should use an HBA cacheline size of 64. Tachlite HBAs support only a cacheline size of 32. XL2 HBAs support cacheline sizes of 32 or 64. Hence, if the system cacheline size is 64, the XL2 HBA cacheline size should also be 64. The A6795A 2Gb FC HBA uses the XL2 chip. The A5158A 1Gb FC HBA uses the Tachlite chip. This problem was noticed in the code. There are no known symptoms attached to this problem. There should be no physical manifestations, other than a very slight loss of performance for certain configurations. ( SR:8606245186 CR:JAGae11660 ) It is theoretically possible that, under certain situations, a system hang occurs when the user uses the "ctstat" option with tdutil / fcmsutil. ( SR:8606171980 CR:JAGad41243 ) The current tachlite driver will panic if it is run on a system with cacheline size > 64. ( SR:8606253957 CR:JAGae18289 ) A host attached to a target device through a McData ED5000 switch and a Fibre Channel HBA is still able to perform IOs to the target device even after the HBA has been removed from all soft-zones and ioscan has been run. The correct behaviour is that once the HBA has been removed from all soft-zones and ioscan has been run, the host should not be able to perform IOs through that HBA to any FC mass storage target. ( SR:8606261432 CR:JAGae25753 ) Some customers are experiencing problems with non- meaningful Non-Participating error messages logged by the td driver and reported by EMS. An example of one such message is reproduced below. ************************************************ 395837442 Event Time..........: Wed May 8 14:40:44 2002 Severity............: SERIOUS Monitor.............: dm_TL_adapter Event #.............: 23 System..............: [private] Summary: Adapter at hardware path 1/0/8/0/0 : Fibre Channel driver has gone into non-participating mode Description of Error: lbolt value: 9149 The Fibre Channel Driver has gone into non-participating mode Frame Manager Status Register = 0xa002c480 ************************************************ The above message is non-meaningful because, as the FM Status Register indicates, the LSM is still in INITIALIZATION state and has not completed loop initialization. ( SR:8606256538 CR:JAGae20853 ) The Tachyon XL2 rev 2.2 was originally intended to provide support for a frame payload of up to 2048 bytes. However issues with the chip prevented this support from being enabled in the driver. ( SR:8606256545 CR:JAGae20860 ) The Interrupt Delay Timer allows interrupts generated for completion messages to be delayed by a certain amount of time. This is a performance fix. ( SR:8606256546 CR:JAGae20861 ) A number of new statistics were introduced, and captured, in the driver for Auto Speed Negotiation. However, these statistics are not currently reported by tdutil / fcmsutil. ( SR:8606256547 CR:JAGae20862 ) The Tachyon XL2 chip has new registers that were not in the Tachyon Tachlite chip. The meaning of certain register bits in Tachyon XL2 is also different than in Tachyon Tachlite. Hence, tdutil needs to be modified to report new registers and also to report the new meanings of certain bits in registers that also existed in Tachyon Tachlite. ( SR:8606256722 CR:JAGae21037 ) Currently, the driver will send an LS_RJT in response to any ELS frame which it does not fully recognize. PHSS_24121: 1. ( SR:8606180458 CR:JAGad49679 ) IOs fail on V-Class using the tachlite Fibre Channel driver, 'td'. A high value of "No resource for IO" statistic is observed when executing the following command fcmsutil devstat The problem will not result in panic or system wide hang, but can lead to data inconsistancies. 2. ( SR:8606200641 CR:JAGad69817 ) The system can't be booted with some specific kernels. 3. ( SR:8606180952 CR:JAGad50173 ) While tape backup operation is in progress, if the command "ioscan" is run the backup operation will be aborted. Defect Description: PHSS_28509: ( SR: 8606330190 CR: JAGae91313) The chip will hang and stop mastering every time all the following conditions happen together: 1. The chip's onboard SEST cache is full of SEST entries. (This cache holds 16 exchanges). 2. A FCP_XFER_RDY frame is received. 3. The OX_ID in the FCP_XFER_RDY matches an OX_ID of an exchange in the SEST cache. Resolution: Driver issues a chip reset if the chip does not come out of the frozen state even after 10 secs after receiving a freeze command. In addition, the driver errors back implicitly aborted I/Os only after 2*RA_TOV or a PLOGI success. This ensures that SEST entry is not reused in the intermediate time. ( SR:8606331014 CR:JAGae92135) While testing with EMC Symmetrix 6.0, it was found that the HBA sometimes transmits frames in excess of BB-Credit it had, after the link goes down and comes up. Resolution: After the link goes down and comes up, outbound data frame transmission from the chip is kept disabled until the HBA reaches a valid FC topology. ( SR:8606284151 CR:JAGae48098) Ideally the failover should happen within pvtimeout value. Resolution: This issue is fixed by reducing the time for which IOs are held in the device thread link down queue, before being errored back to SCSI stack. ( SR:8606290285 CR:JAGae54204 ) When the switch name server replies back with zero length port name for GSPN_ID query, the driver causes assertion failure, in a debug kernel. This can result in silent corruption in a performance kernel. Resolution: The name server can return zero length port name if the device does not register its port name with name server. Changes are made in the driver code to handle this. ( SR:8606293192 CR: JAGae56942 ) The core dump can happen in cases where vpd_info is not initialized when fcmsutil(1M) makes an ioctl call to the driver. Resolution: All driver internal functions that make an ioctl call for TD_GET_CARD_INFO have been changed to initialize vpd_info before making the call. ( SR:8606288311 CR:JAGae52242 ) I/Os with large block size (>=512K) take longer time because Tachlite chip's SEST entry has 19 bits for the buffer length field. This results in incorrect length value if the block size exceeds 512KB. The IO eventually succeeds after a long time when the data buffer gets multiple smaller IOVA mappings. Resolution: For IOs with >=512KB block size, the driver is changed to map data IOVAs for data buffers in multiple steps. This ensures that buffer length field in the SEST entry does not overflow. ( SR:8606304598 CR:JAGae67940 ) Maximum frame size value returned by the driver ioctl call for Tachlite XL2 revision 2.3 chip is not correct. Resolution: The driver ioctl call checks for Tachlite chip revision and appropriately returns Maximum frame size value ( SR:8606304132 CR:JAGae67480 ) A6826A HBA accepts PLOGI & PRLI sent by Tachlite driver. Even if the PRLI ACC indicates that responder is not a target, Tachlite driver does not free the device thread structure created for it. This results in fcmsutil(1M) showing it as a target device. Resolution: The driver code is changed so that if the PRLI response indicates that the responder is not a target, then the device thread allocated for it will be freed. ( SR:8606231281 CR:JAGae00519 ) This is due to the 11.00 and 11.11 declaration of the tv_sec field in the timeval structure being different. Hence, the typecast from the tv_sec variable to SecondsSinceLastReset value results in a wrong value being assigned. Resolution: The type mismatch is resolved. ( SR:8606280151 CR:JAGae44126 ) SNIA API: When the HBA_GetFcpTargetMapping() or HBA_GetFcpPersistentBinding() function is called, the SNIA API code begins to open and close all device files in the FC card's h/w path in succession even though they may belong to the same control port. When the driver receives an open() to a control port that has not previously been opened, it issues a PLOGI. This causes an excessive number of PLOGIs to be sent out on the wire. Subsequent opens for the same control port where another open is already active, will not result in a PLOGI being sent out on the wire. Resolution: All LUN 0 device files belonging to the same control port are kept open till all required processing is done in the HBA_GetFcpTargetMapping() function of the SNIA API. This avoids PLOGIs being sent out to the same control port due to active open of other device files, belonging to the same control port, being present. ( SR:8606299163 CR:JAGae62657 ) SNIA API: Adapter state is not checked before setting the current port speed in the Tachlite vendor library for the HBA_GetAdapterPortAttributes() call. Resolution: The HBA_GetAdapterPortAttributes() function now checks the adapter state before setting the current port speed in the Tachlite vendor library. ( SR:8606302285 CR:JAGae65644 ) The shell script "tddiag" uses an array to keep track of the commands. So, when the array is indexed with a value greater than 1023, the shell treats it as an error. If there are more than 96 HBAs, then the number of commands used to get statistics usually exceeds 1023, thus resulting in a problem. Resolution: The script is modified to not use an array to keep track of the commands. ( SR:8606240822 CR:JAGae08418 ) Tachlite does not check the return value of intr_set_attrib() and calls intr_get_attrib(). This can change the CPU assigned for other HBAs sharing the same PCI bus and result in subsequent failure of interrupt migration. Resolution: Changed the driver code to check for the return value of intr_set_attrib(). ( SR:8606320206 CR:JAGae82690 ) SNIA API: A sense buffer is passed by the caller in a call to HBA_SendReportLUNs(). When this buffer is smaller than the actual amount of sense data received from the device due to a SCSI check condition, the Tachlite vendor library simply returns HBA_STATUS_ERROR_MORE_DATA status without copying as much data as possible into the existing sense buffer passed. Resolution: Appropriate changes were made to copy as much sense data as possible into the caller provided sense buffer before returning a HBA_STATUS_ERROR_MORE_DATA PHSS_26799: ( SR:8606229756 CR:JAGad98807 ) HBA_SendReadCapacity() when called with an insufficient buffer size returns HBA_STATUS_ERROR_MORE_DATA without copying any data in the buffer passed by the user. Resolution: Fixed to copy as much data as possible into the buffer passed by the user before returning HBA_STATUS_ERROR_MORE_DATA due to insufficient buffer size. ( SR:8606221632 CR:JAGad90766 ) HBA_GetPortAttributesByWWN() call order sequence needs to be changed to allow it to be called immediately after HBA_OpenAdapter() for the corresponding local port to enhance usability. Resolution: Call order sequence changed. ( SR:8606265766 CR:JAGae30023 ) The problem seem to be that BB_Credit field in the Frame manager register is accidentally overwritten by the driver. This BB_Credit value represents buffer credit given by switch port and is needed by the chip for sending out frames. And as it is being reset to zero, chip is unable to send out any frame. Resolution: The BB_Credit field of FM register is prevented from accidentally being overwritten by the driver. ( SR:8606229941 CR:JAGad98992 ) The cause of the problem is simply that the driver does not currently recognize Fabric Address Format RSCNs. Resolution: Adding parse recognition for Fabric Address Format RSCN in the driver. ( SR:8606220605 CR:JAGad89742 ) Chip reset puts the IMQ producer index address at zero, and the IMQ consumer index at zero. Then updating the consumer index puts it to a non-zero value. Since the consumer index and the producer index do not match, the chip writes the producer index to the address in the reset "IMQ Producer Index Address" register. The value here is zero, so it writes to address zero. The write is probably unsuccessful, so no interrupt is attempted. This explains why a transaction of zero address is generated by the card, which could cause problem in further access to the slot. Resolution: Introduce a new return value for some functions to indicate that suspend processing completed (chip has been reset, interrupt has been disabled). ( SR:8606216893 CR:JAGad86057 ) Driver reserved only 8-bits for reading the Frame Manager Link Status Register counter(s) as well as for keeping the cumulative statistics of each counter. So when the cumulative counter value increased beyond 255 (0xff) then it is found as decreased. Resolution: The driver code is enhanced to keep the cumulative statistics of Frame Manager Link Status Registers counter(s) from 8-bit to 32-bit. So now the maximum value of the statistics counter(s) will be 2^32 - 1 (i.e., 4294967295). ( SR:8606237897 CR:JAGae06940 ) The McData switch is rejecting the multi-frame zoning commands because the HBA is using relative offset when McData switches do not support the use of relative offset for reassembly of payload data. Resolution: The driver has been changed so that it does not set the relative offset of the payload data in the frames sent out through the CT interface. The driver will now depend on the recipient to reassemble the data using the sequence number. This applies only to frames sent out through the CT interface. ( SR:8606245182 CR:JAGae11656 ) The cause of the problem is an improperly structured if-statement in the driver. Resolution: The code has been changed so that when the system cacheline size is 64, an XL2 HBA uses an HBA cacheline size of 64.In all other cases, the HBA will use an HBA cacheline size of 32. ( SR:8606245186 CR:JAGae11660 ) A function in the execution path holds a spinlock for the HBA across a call to another function, which may sleep. Resolution: The code has been changed so that the spinlock is released before the call to the function that may sleep. ( SR:8606171980 CR:JAGad41243 ) The td driver was intended to be able to handle systems with cacheline size > 64 bytes. SEST (which is 64 bytes in size) should not share cachelines and when running on systems with cacheline size > 64 bytes, SEST allocation is scaled up in size and SEST elements skipped so as to use only 1 SEST element per cacheline. Some macro does not handle this SEST scaling issue. Resolution: The macro is modified to scale down the _xid (which is the index into the SEST pool) by TD_SEST_FACTOR() prior to performing the lookup. ( SR:8606253957 CR:JAGae18289 ) When ioscan is performed, the td driver will query the name server on the switch for a list of visible devices which speak FCP. The name server, in turn, will either return FS_ACC which contains a list of all visible N_Ports that speak FCP; or, if there are no N_Ports visible that speak FCP, it will return FS_RJT. The problem occurs because the td driver reacts differently to an FS_ACC than to an FS_RJT. When the td driver receives an FS_ACC, it will report the results to ioscan and update its internal list of visible devices. The td driver uses this internal list of visible devices to control access. It will refuse to open devices which are not on this internal list. When the td driver receives an FS_RJT, it will report to ioscan that its query has failed and ioscan will take this to mean that there are no devices visible. However, the td driver will not update its internal list of visible devices. This means that td driver has a stale list of visible devices. It also means that td driver will still allow I/Os to those devices, even though ioscan shows them as NO_HW, because those devices are still in the internal list, which is now stale. Resolution: The fix modifies the td_driver so that it updates its internal list of visible devices when it receives an FC_RJT with reason code "Unable to perform command request" and explanation code "FC-4 Types not registered" in response to a GID_FT query which it sent to the name server. When the td driver receives such a FC_RJT it will update its internal list such that there are no visible devices other than itself. ( SR:8606261432 CR:JAGae25753 ) This problem occurs because of the way XL2 sets and clears the NP bit in the FM status register, and because the td driver does not check whether the NP bit is relevant (i.e. whether or not the LSM is in MONITORING state and the PSM is OFFLINE) before logging the message. This was not necessary with the Tachlite chip because the NP bit would not be set when the chip is in N_Port mode, while with the XL2 chip's FM module, the NP bit would be set when the chip is in N_Port mode. Resolution: The fix modifies the td driver so that it only logs the NP message when the LSM is in MONITOR and the PSM is in NP_OFFLINE. In all other situations, the NP bit is ignored. ( SR:8606256538 CR:JAGae20853 ) XL2 rev 2.2 would not always work correctly when 2K frame payloads were used. These issues are documented in the XL2 2.2 Errata Revision 1.6 as issues B26 and B28. Since these issues have been fixed in XL2 rev 2.3, 2K frame payload support will be enabled in the driver for HBAs that have XL2 rev 2.3. Resolution: The driver has been modified to enable 2K frame payload sizes to be used when the HBA uses XL2 rev 2.3 chip and when the target device supports 2K frame payload sizes. ( SR:8606256545 CR:JAGae20860 ) When the driver receives an interrupt for a completion message, it will process all the outstanding completion messages, not just the one which generated the interrupt. Hence, if the interrupt for a completion message is delayed and more completion messages arrive in the meantime, this means that the driver will handle more completion messages for that interrupt than it would have otherwise. Thus, permanently delaying interrupts for completion messages can reduce the overall number of interrupts the driver will have to handle. Resolution: It modifies the td driver to take advantage of new performance enhancing features in the XL2 chip. ( SR:8606256546 CR:JAGae20861 ) Statistics not reported by tdutil / fcmsutil are: 1. Number of times Speed Negotiation was started on chip and FM initialization. 2. Number of times Speed Negotiation was started on Link Down. 3. Number of times Speed Negotiation was started on Link Failure. 4. Number of times Speed Negotiation succeeded. 5. Number of times Speed Negotiation failed (ie: timed out) 6. Number of times link quality became bad during Speed Negotiation. Resolution: This fix modifies tdutil / fcmsutil to report new statistics collected by the driver for Auto Speed Negotiation. ( SR:8606256547 CR:JAGae20862 ) The new registers are: Frame Manager Configuration 2 register Frame Manager Configuration 3 register Frame Manager Link Status 3 register XL2 Configuration 2 register The registers that contain bits with changed meanings are: XL2 Configuration 1 register XL2 Control register XL2 Status register FM Conguration 1 register FM Status Register Resolution: A fix was made to modify tdutil / fcmsutil to accurately reflect the registers which are new and different between XL2 and Tachlite. ( SR:8606256722 CR:JAGae21037 ) For interoperability reasons the driver should never send an LS_RJT in response to a FAN, even if it cannot parse it completely. Resolution: This fix modifies the behaviour of the driver so that it will not explicitly reject unrecognized FANs or RSCNs with unrecognized address formats in their N_port ID page(s). PHSS_24121: 1. ( SR: 8606180458 CR:JAGad49679) This problem is due to the way the Tachlite Fibre Channel driver does mapping of DMA buffers. This problem is seen only on V-Class systems due to its unique architecture with EPIC channels. Over a period of time the driver mapping will be scattered into different channels, if these mapping are long term in nature, then any further mapping requests will fail until a channel becomes free from all mapping and gets re-built. Resolution: Fix involves changing the policy specific to V-Class systems, for tachlite Fibre Channel driver mappings and unmappings. The new policy will immediately release the mapping when IO is completed. 2. ( SR:8606200641 CR:JAGad69817 ) When booting from a fibre channel disk, td_fc_open_port is called. When td_fc_open_port tries to acquire the semaphore of order 86 ( DVT_OPEN_ORDER ), deadlock avoidance protocol detects that it's order is less than CPD's sema order 155 and calls panic to avoid the potential deadlock. The check for deadlock is done only in debug kernel. To avoid any potential deadlocks, lock order of the semaphore, currently trying to aquire should be higher than any other semaphore, the process already holds. Resolution: DVT_OPEN_ORDER is raised to 160 which is higher than the CPD's sema order. 3. ( SR:8606180952 CR:JAGad50173 ) When an "ioscan" command is run, a SCSI Inquiry command will be issued to all the devices attached. As tape is an untagged device, which can handle only one I/O at a time, the backup operation will be aborted when the inquiry command is issued. Resolution: Two new interface routines GET_PORT_INFO and SET_PORT_INFO are defined using which the device attributes are obtained before sending the inquiry command. Inquiry will not be sent if the device is open and untagged. NOTE: This fix does not address the one following corner case when an overlapped command condition could still occur: 1) a system is setup and running with a tape device present and configured. 2) the tape device is removed from the system and the system is then rebooted. 3) after the system is up and running, the tape drive is then re-attached to the system at the same I/O path 4) a) if I/O is then active against the device before an ioscan is performed. b) after I/O begins and an ioscan is issued concurrently, an overlapped command condition can occur, depending on the I/O timing, etc. WORKAROUND: To avoid the corner case decribed above, issue an ioscan after re-connecting the tape device. Enhancement: No (superseded patches contained enhancements) PHSS_26799: tdutil/fcmsutil reports new statistics. SR: 8606330190 8606331014 8606284151 8606290285 8606293192 8606288311 8606304598 8606304132 8606231281 8606280151 8606299163 8606302285 8606240822 8606320206 8606180458 8606180952 8606200641 8606229941 8606220605 8606216893 8606237897 8606245182 8606245186 8606171980 8606253957 8606261432 8606256538 8606256545 8606256546 8606256547 8606256722 8606265766 8606229756 8606221632 Patch Files: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_32, v=HP: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.06,fa=HP-UX_B.11.11_32, v=HP: /usr/conf/lib/libtd.a /usr/conf/lib/td_debug.o FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.06,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.05,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.04,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.03,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.02,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.01,fa=HP-UX_B.11.11_64, v=HP: /usr/conf/lib/libtd.a /usr/conf/lib/td_debug.o FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.09, fa=HP-UX_B.11.11_32/64,v=HP: FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.06, fa=HP-UX_B.11.11_32/64,v=HP: FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.05,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.04,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.03,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.02,fa=HP-UX_B.11.11_64, v=HP: FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.01,fa=HP-UX_B.11.11_64, v=HP: /opt/fcms/bin/tdutil /etc/rc.config.d/fc_td_conf /sbin/init.d/fc_td /sbin/rc2.d/S989fc_td /opt/fcms/tools/td.pl /opt/fcms/bin/tdlist /opt/fcms/bin/tddiag /usr/sbin/olrad.d/td /opt/fcms/lib/pa20_64/libhbaapihp.sl /opt/fcms/lib/libhbaapihp.sl /opt/snia/lib/libHBAAPI.sl /opt/snia/lib/pa20_64/libHBAAPI.sl /opt/fcms/include/snia_common.h /usr/lib/libHBAAPI.sl /usr/lib/pa20_64/libHBAAPI.sl /usr/lib/libhbaapihp.sl /usr/lib/pa20_64/libhbaapihp.sl /usr/include/snia_common.h /opt/snia/src/makefile.common /opt/snia/src/hbaapilib.c /opt/snia/src/Readme.txt /opt/snia/demos/snia_demo.c /opt/snia/demos/makefile.demo /opt/fcms/config/A5158A /opt/fcms/config/A6684A /opt/fcms/config/A6685A /opt/fcms/config/A6795A /opt/fcms/config/vendor.conf /etc/hba.conf /usr/share/man/man3.Z/hbaapi.3c /usr/share/man/man3.Z/hbaapi_control_fns.3c /usr/share/man/man3.Z/hbaapi_fc3_mgmt_fns.3c /usr/share/man/man3.Z/hbaapi_fcp_info_fns.3c /usr/share/man/man3.Z/hbaapi_general_vendor_fns.3c /usr/share/man/man3.Z/hbaapi_info_fns.3c /usr/share/man/man3.Z/hbaapi_scsi_info_fns.3c /usr/share/man/man3.Z/HBAAPI.3c /usr/share/man/man3.Z/HBA_GetVersion.3c /usr/share/man/man3.Z/HBA_LoadLibrary.3c /usr/share/man/man3.Z/HBA_FreeLibrary.3c /usr/share/man/man3.Z/HBA_GetNumberOfAdapters.3c /usr/share/man/man3.Z/HBA_GetAdapterName.3c /usr/share/man/man3.Z/HBA_OpenAdapter.3c /usr/share/man/man3.Z/HBA_CloseAdapter.3c /usr/share/man/man3.Z/HBA_GetAdapterAttributes.3c /usr/share/man/man3.Z/HBA_GetAdapterPortAttributes.3c /usr/share/man/man3.Z/HBA_GetPortStatistics.3c /usr/share/man/man3.Z/HBA_GetDiscoveredPortAttributes.3c /usr/share/man/man3.Z/HBA_GetPortAttributesByWWN.3c /usr/share/man/man3.Z/HBA_SendCTPassThru.3c /usr/share/man/man3.Z/HBA_GetEventBuffer.3c /usr/share/man/man3.Z/HBA_SetRNIDMgmtInfo.3c /usr/share/man/man3.Z/HBA_GetRNIDMgmtInfo.3c /usr/share/man/man3.Z/HBA_SendRNID.3c /usr/share/man/man3.Z/HBA_GetFcpTargetMapping.3c /usr/share/man/man3.Z/HBA_GetFcpPersistentBinding.3c /usr/share/man/man3.Z/HBA_SendScsiInquiry.3c /usr/share/man/man3.Z/HBA_SendReportLUNs.3c /usr/share/man/man3.Z/HBA_SendReadCapacity.3c /usr/share/man/man3.Z/HBA_RefreshInformation.3c /usr/share/man/man3.Z/HBA_ResetStatistics.3c what(1) Output: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_32, v=HP: /usr/conf/lib/libtd.a: PATCH_11.11: libtd.a : Dec 12 2003, 14:34:25, PHSS_2 8509 $Revision: libtd.a: vw: net selectors: R11.11_ BL2003_1201 ushad_patch_11i 'r11.11' 'eso2_u shad_patch_11i' Thu Jan 8 19:41:30 IST 200 4 $ /usr/conf/lib/td_debug.o: None FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_64, v=HP: /usr/conf/lib/libtd.a: PATCH_11.11: libtd.a : Dec 12 2003, 14:34:15, PHSS_2 8509 $Revision: libtd.a: vw: net selectors: R11.11_ BL2003_1201 ushad_patch_11i 'r11.11' 'eso2_u shad_patch_11i' Thu Jan 8 19:41:23 IST 200 4 $ /usr/conf/lib/td_debug.o: None FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.09, fa=HP-UX_B.11.11_32/64,v=HP: /opt/fcms/bin/tdutil: $Revision: vw: net selectors: R11.11_BL2003_1201 ushad_patch_11i 'r11.11' 'eso2_ushad_patch_1 1i' Wed Dec 3 15:11:08 IST 2003 $ PATCH_11.11: tdutil : Dec 3 2003, 15:11:09, PHSS_28 509 /etc/rc.config.d/fc_td_conf: None /sbin/init.d/fc_td: None /sbin/rc2.d/S989fc_td: None /opt/fcms/tools/td.pl: td.pl $Revision: 1.1 $ $Date: 2000/10/31 17:19:35 $ /opt/fcms/bin/tdlist: $Revision: 1.1 $ $Date: 2000/10/31 17:19:38 $' /opt/fcms/bin/tddiag: $Revision: 1.11 $ $Date: 2003/04/07 11:44:34 $' /usr/sbin/olrad.d/td: None /opt/fcms/lib/pa20_64/libhbaapihp.sl: HP SNIA HBA API Vendor Library: libhbaapihp.sl Dec 3 2003 15:22:48 /opt/fcms/lib/libhbaapihp.sl: HP SNIA HBA API Vendor Library: libhbaapihp.sl Dec 3 2003 15:22:44 /opt/snia/lib/pa20_64/libHBAAPI.sl: HP SNIA HBA API Common Library Implementation: libHB AAPI.sl Dec 3 2003 15:22:41. This library uses open source code from www.snia.org that is under the SNIA Public License v1.1 available at http://www.snia.org/English/Res ources/Code/OpenSource.html /opt/snia/lib/libHBAAPI.sl: HP SNIA HBA API Common Library Implementation: libHB AAPI.sl Dec 3 2003 15:22:37. This library uses open source code from www.snia.org that is under the SNIA Public License v1.1 available at http://www.snia.org/English/Res ources/Code/OpenSource.html /opt/fcms/include/snia_common.h: None /usr/lib/pa20_64/libhbaapihp.sl: HP SNIA HBA API Vendor Library: libhbaapihp.sl Dec 3 2003 15:22:48 /usr/lib/libhbaapihp.sl: HP SNIA HBA API Vendor Library: libhbaapihp.sl Dec 3 2003 15:22:44 /usr/lib/pa20_64/libHBAAPI.sl: HP SNIA HBA API Common Library Implementation: libHB AAPI.sl Dec 3 2003 15:22:41. This library uses open source code from www.snia.org that is under the SNIA Public License v1.1 available at http://www.snia.org/English/Res ources/Code/OpenSource.html /usr/lib/libHBAAPI.sl: HP SNIA HBA API Common Library Implementation: libHB AAPI.sl Dec 3 2003 15:22:37. This library uses open source code from www.snia.org that is under the SNIA Public License v1.1 available at http://www.snia.org/English/Res ources/Code/OpenSource.html /usr/include/snia_common.h: None /opt/snia/src/makefile.common: None /opt/snia/src/hbaapilib.c: HP SNIA HBA API Common Library This library uses open source code from /opt/snia/src/Readme.txt: None /opt/snia/demos/snia_demo.c: None /opt/snia/demos/makefile.demo: None /opt/fcms/config/A5158A: None /opt/fcms/config/A6684A: None /opt/fcms/config/A6685A: None /opt/fcms/config/A6795A: None /opt/fcms/config/vendor.conf: None /etc/hba.conf: None /usr/share/man/man3.Z/hbaapi.3c: None /usr/share/man/man3.Z/hbaapi_control_fns.3c: None /usr/share/man/man3.Z/hbaapi_fc3_mgmt_fns.3c: None /usr/share/man/man3.Z/hbaapi_fcp_info_fns.3c: None /usr/share/man/man3.Z/hbaapi_general_vendor_fns.3c: None /usr/share/man/man3.Z/hbaapi_info_fns.3c: None /usr/share/man/man3.Z/hbaapi_scsi_info_fns.3c: None /usr/share/man/man3.Z/HBAAPI.3c: None /usr/share/man/man3.Z/HBA_GetVersion.3c: None /usr/share/man/man3.Z/HBA_LoadLibrary.3c: None /usr/share/man/man3.Z/HBA_FreeLibrary.3c: None /usr/share/man/man3.Z/HBA_GetNumberOfAdapters.3c: None /usr/share/man/man3.Z/HBA_GetAdapterName.3c: None /usr/share/man/man3.Z/HBA_OpenAdapter.3c: None /usr/share/man/man3.Z/HBA_CloseAdapter.3c: None /usr/share/man/man3.Z/HBA_GetAdapterAttributes.3c: None /usr/share/man/man3.Z/HBA_GetAdapterPortAttributes.3c: None /usr/share/man/man3.Z/HBA_GetPortStatistics.3c: None /usr/share/man/man3.Z/HBA_GetDiscoveredPortAttributes.3c: None /usr/share/man/man3.Z/HBA_GetPortAttributesByWWN.3c: None /usr/share/man/man3.Z/HBA_SendCTPassThru.3c: None /usr/share/man/man3.Z/HBA_GetEventBuffer.3c: None /usr/share/man/man3.Z/HBA_SetRNIDMgmtInfo.3c: None /usr/share/man/man3.Z/HBA_GetRNIDMgmtInfo.3c: None /usr/share/man/man3.Z/HBA_SendRNID.3c: None /usr/share/man/man3.Z/HBA_GetFcpTargetMapping.3c: None /usr/share/man/man3.Z/HBA_GetFcpPersistentBinding.3c: None /usr/share/man/man3.Z/HBA_SendScsiInquiry.3c: None /usr/share/man/man3.Z/HBA_SendReportLUNs.3c: None /usr/share/man/man3.Z/HBA_SendReadCapacity.3c: None /usr/share/man/man3.Z/HBA_RefreshInformation.3c: None /usr/share/man/man3.Z/HBA_ResetStatistics.3c: None cksum(1) Output: FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_32, v=HP: 3710373919 331188 /usr/conf/lib/libtd.a 3976123843 265916 /usr/conf/lib/td_debug.o FC-TACHYON-TL.FC-TL-KRN,fr=B.11.11.09,fa=HP-UX_B.11.11_64, v=HP: 2281825457 623664 /usr/conf/lib/libtd.a 2553822789 327712 /usr/conf/lib/td_debug.o FC-TACHYON-TL.FC-TL-RUN,fr=B.11.11.09, fa=HP-UX_B.11.11_32/64,v=HP: 1883354872 81920 /opt/fcms/bin/tdutil 2477507432 475 /etc/rc.config.d/fc_td_conf 2137508645 2053 /sbin/init.d/fc_td 2137508645 2053 /sbin/rc2.d/S989fc_td 1429028816 6944 /opt/fcms/tools/td.pl 2323076677 4331 /opt/fcms/bin/tdlist 2654992893 11981 /opt/fcms/bin/tddiag 2600152371 2124 /usr/sbin/olrad.d/td 3451632208 50008 /opt/fcms/lib/pa20_64/libhbaapihp.sl 3504925386 49152 /opt/fcms/lib/libhbaapihp.sl 103522252 45120 /opt/snia/lib/pa20_64/libHBAAPI.sl 4042379632 45056 /opt/snia/lib/libHBAAPI.sl 731344043 16208 /opt/fcms/include/snia_common.h 3451632208 50008 /usr/lib/pa20_64/libhbaapihp.sl 3504925386 49152 /usr/lib/libhbaapihp.sl 103522252 45120 /usr/lib/pa20_64/libHBAAPI.sl 4042379632 45056 /usr/lib/libHBAAPI.sl 731344043 16208 /usr/include/snia_common.h 2479656415 1583 /opt/snia/src/makefile.common 233205044 249467 /opt/snia/src/hbaapilib.c 1943181904 4928 /opt/snia/src/Readme.txt 2096258072 19780 /opt/snia/demos/snia_demo.c 2881657282 1951 /opt/snia/demos/makefile.demo 2178896072 187 /opt/fcms/config/A5158A 3080703142 187 /opt/fcms/config/A6684A 3080703142 187 /opt/fcms/config/A6685A 2481514630 195 /opt/fcms/config/A6795A 3386705156 13 /opt/fcms/config/vendor.conf 2161002403 399 /etc/hba.conf 1794327666 1781 /usr/share/man/man3.Z/hbaapi.3c 302539891 1322 /usr/share/man/man3.Z/hbaapi_control_fns.3c 3611579356 5168 /usr/share/man/man3.Z/hbaapi_fc3_mgmt_fns.3c 3957945365 3719 /usr/share/man/man3.Z/hbaapi_fcp_info_fns.3c 705319032 4190 /usr/share/man/man3.Z/ hbaapi_general_vendor_fns.3c 1627359299 5249 /usr/share/man/man3.Z/hbaapi_info_fns.3c 3907234566 4069 /usr/share/man/man3.Z/ hbaapi_scsi_info_fns.3c 1794327666 1781 /usr/share/man/man3.Z/HBAAPI.3c 705319032 4190 /usr/share/man/man3.Z/HBA_GetVersion.3c 705319032 4190 /usr/share/man/man3.Z/HBA_LoadLibrary.3c 705319032 4190 /usr/share/man/man3.Z/HBA_FreeLibrary.3c 705319032 4190 /usr/share/man/man3.Z/ HBA_GetNumberOfAdapters.3c 705319032 4190 /usr/share/man/man3.Z/HBA_GetAdapterName.3c 705319032 4190 /usr/share/man/man3.Z/HBA_OpenAdapter.3c 705319032 4190 /usr/share/man/man3.Z/HBA_CloseAdapter.3c 1627359299 5249 /usr/share/man/man3.Z/ HBA_GetAdapterAttributes.3c 1627359299 5249 /usr/share/man/man3.Z/ HBA_GetAdapterPortAttributes.3c 1627359299 5249 /usr/share/man/man3.Z/ HBA_GetPortStatistics.3c 1627359299 5249 /usr/share/man/man3.Z/ HBA_GetDiscoveredPortAttributes.3c 1627359299 5249 /usr/share/man/man3.Z/ HBA_GetPortAttributesByWWN.3c 3611579356 5168 /usr/share/man/man3.Z/HBA_SendCTPassThru.3c 3611579356 5168 /usr/share/man/man3.Z/HBA_GetEventBuffer.3c 3611579356 5168 /usr/share/man/man3.Z/HBA_SetRNIDMgmtInfo.3c 3611579356 5168 /usr/share/man/man3.Z/HBA_GetRNIDMgmtInfo.3c 3611579356 5168 /usr/share/man/man3.Z/HBA_SendRNID.3c 3957945365 3719 /usr/share/man/man3.Z/ HBA_GetFcpTargetMapping.3c 3957945365 3719 /usr/share/man/man3.Z/ HBA_GetFcpPersistentBinding.3c 3907234566 4069 /usr/share/man/man3.Z/HBA_SendScsiInquiry.3c 3907234566 4069 /usr/share/man/man3.Z/HBA_SendReportLUNs.3c 3907234566 4069 /usr/share/man/man3.Z/ HBA_SendReadCapacity.3c 302539891 1322 /usr/share/man/man3.Z/ HBA_RefreshInformation.3c 302539891 1322 /usr/share/man/man3.Z/HBA_ResetStatistics.3c Patch Conflicts: None Patch Dependencies: s700: 11.11: PHKL_23626 s800: 11.11: PHKL_23626 Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_24121 PHSS_26799 Equivalent Patches: None Patch Package Size: 820 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 PHSS_28509 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHSS_28509.depot By default swinstall will archive the original software in /var/adm/sw/save/PHSS_28509. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHSS_28509.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHSS_28509.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_28509.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None