Patch Name: PHKL_19907 Patch Description: s700 10.20 Improve perf for TLB purges, avoid MP hangs Creation Date: 99/09/16 Post Date: 99/09/22 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_19907: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_19907 Symptoms: PHKL_19907: In rare cases, systems would hang, with two processors stuck on the same innocuous-looking write instruction. Due to the timing in the spinlock deadlock code, processors may appear to be waiting on spinlocks which show up as free in panic dumps. PHKL_17653: On 2.0 Architecture systems, TLB purge instructions are purging more pages than necessary. This does not cause the system to operate improperly, but it may have a slight negative impact on system performance. Defect Description: PHKL_19907: There was a race condition where two processors could end up deadlocking while trying to update the same TLB entry. The deadlock was caused by an "in-progress" bit that was set when it should have been clear. Resolution: Clear the "in progress" bit so processors don't get stuck re-trying an update that was in fact successful. PHKL_17653: The problem lies with the PITLB and PDTLB instructions used in the 2.0 trap handlers. The 2.0 architecture was enhanced to define that the low-order 4 bits of the address that is being purged specifies a "page size" (which is defined in Table 3-1 of the PA-RISC 2.0 Architecture book by Gerry Kane). However, the 2.0 trap handlers only need to purge one page, and they do not zero the low-order 4 bits of the address that they wish to purge (the address that is used is the actual address that caused the trap). This results in many more pages being purged than was intended. Resolution: The code now zero's the low-order 4 bits of the address. SR: 4701401646 4701426783 Patch Files: /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o) what(1) Output: /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o): asm_tlb2_0.s $Date: 99/09/16 11:09:30 $ $Revisi on: 1.3.98.8 $ PATCH_10.20 (PHKL_19907) cksum(1) Output: 3169412744 15376 /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_17653 Equivalent Patches: PHKL_19908: s800: 10.20 Patch Package Size: 80 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_19907 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_19907.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_19907. 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_19907.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_19907.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None