Patch Name: PHKL_20915 Patch Description: s700_800 11.00 trap-related panics/hangs Creation Date: 00/01/21 Post Date: 00/01/25 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_20915: PANIC HANG PHKL_19647: HANG Category Tags: defect_repair general_release critical panic halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_20915 Symptoms: PHKL_20915: ( SR: 8606112335 DTS: JAGab84658 ) The kernel panics for apparently random reasons. There is on consistent panic stack trace for this failure. PHKL_20347: ( SR: 8606108637 DTS: JAGaa08026 ) In the floating point emulation code unexpected_trap causes the kernel to panic with a Data Page Fault or panic with "grow: no stack option". So the correct stack trace will not be displayed during the panic. This occurs when the trap is called and the kernel was already executing on the kernel stack (virtual-mode stack in quadrant 2, not the ICS). PHKL_19647: ( SR: 4701426783 CR: JAGab17441 ) Rare multiprocessor hang on busy PA-RISC 2.0 systems, often causing spinlock deadlock panic. Has been observed on K-classes in several environments but not on other machines. Defect Description: PHKL_20915: ( SR: 8606112335 DTS: JAGab84658 ) If an error in the kernel causes interrupts to be held off for long periods of time (i.e. 10 seconds or more), the processor recovery counter will trap. If the processor does not have a valid process context, an invalid stack pointer may be restored by the trap handler, causing apparently random panics. The recovery counter trap was being handled by the 'thandler' trap handler which was not designed to be called without a valid process context. This caused an incorrect stack poitner to be restored, which can cause a variety of panics. Resolution: Recovery counter traps are now handled by the 'ihandler' trap handler, which was designed to be called when there may not be a valid process context. PHKL_20347: ( SR: 8606108637 DTS: JAGaa08026 ) In the floating point emulation code unexpected_trap calls THANDLER(I_UNEXPECTED). But those traps won't make it that far if the kernel was already executing on the kernel stack because gr30 which is used as a temporary by the emulation code and does not contain a valid stack address. The kernel will eventually panic with a kernel Data Page Fault. So the correct stack trace will not be displayed during the panic. Resolution: The code for unexpected_int does not have the above problem as its code path always switches to the ICS. Since the emulation code uses sp as a temp, this path is used instead of the unexpected_trap path. By doing this the correct stack trace of the code path that reached the emulated instruction will be displayed during the panic. PHKL_19647: ( SR: 4701426783 CR: JAGab17441 ) This multiprocessor hang can occur when multiple processors are accessing the same memory page. The fine timing makes this TLB miss handler race condition rare. Spinlock deadlocks or timeouts will usually occur, but will be incongruous as those locks will appear to be free in memory dumps. Resolution: The race condition which causes infinite redo is prevented. Specifically, the race occurs because after updating a TLB entry, the processor verifies that the update succeeded and no redo is necessary by comparing a word which includes an update-in-progress bit. By clearing the bit in the word about to be compared, we prevent a false positive causing a mutual redo which would continue forever. SR: 4701426783 8606108637 8606112335 Patch Files: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(asm_tlb.o) /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(asm_tlb.o) /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(asm_tlb.o): asm_tlb.s $Date: 2000/01/19 11:21:39 $Revision: r11r os/7 PATCH_11.00 (PHKL_20915) /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o): asm_tlb2_0.s $Date: 2000/01/19 11:21:39 $Revision: r 11ros/6 PATCH_11.00 (PHKL_20915) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(asm_tlb.o): asm_tlb.s $Date: 2000/01/19 11:21:39 $Revision: r11r os/7 PATCH_11.00 (PHKL_20915) /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o): asm_tlb2_0.s $Date: 2000/01/19 11:21:39 $Revision: r 11ros/6 PATCH_11.00 (PHKL_20915) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 3138276892 39552 /usr/conf/lib/libhp-ux.a(asm_tlb.o) 855239619 16664 /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 910161154 48336 /usr/conf/lib/libhp-ux.a(asm_tlb.o) 806144321 19392 /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o) Patch Conflicts: None Patch Dependencies: s700: 11.00: PHKL_18543 s800: 11.00: PHKL_18543 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_20347 PHKL_19647 Equivalent Patches: None Patch Package Size: 160 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_20915 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_20915.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_20915. If you do not wish to retain a copy of the original software, use the patch_save_files option: swinstall -x autoreboot=true -x patch_match_target=true \ -x patch_save_files=false -s /tmp/PHKL_20915.depot 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 PHKL_20915.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_20915.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_20915.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch depends on base patch PHKL_18543. For successful installation please insure that PHKL_18543 is already installed, or that PHKL_18543 is included in the same depot with this patch and PHKL_18543 is selected for installation.