Patch Name: PHKL_21120 Patch Description: s700_800 11.00 patch for kernel stack unwinding Creation Date: 00/02/24 Post Date: 00/03/06 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: No Category Tags: defect_repair general_release Path Name: /hp-ux_patches/s700_800/11.X/PHKL_21120 Symptoms: PHKL_21120: ( SR: 8606125998 DTS: JAGac46754 ) Kernel debuggers (eg. q4) would report a partial kernel stack trace for kernel stack overflow panics while in thandler: q4> trace event 0 stack trace for event 0 crash event was a panic can't get struct frame_marker at 0x4bf2c00.0x7fff4298 q4: (warning) could not load frame from 0x4bf2c00. 0x0'7fff42b8 can't get save_state at 0x4bf2c00.0x0'7fff3e08 panic+0x14 report_trap_or_int_and_panic+0x4c trap+0xa14 $call_trap+0x38 thandler+0x30c Defect Description: PHKL_21120: ( SR: 860612599 DTS: JAGac4675 ) This is a defect in the trap handler code causing kernel debuggers (eg. q4) to not be able to unwind kernel stack overflow panics. The trap handler code was not checking if there was enough space left on the kernel stack to hold its save state. As a result, the system could trap while saving registers in the trap save state (accessing an address passed the end of the kernel stack), and if this trap occured before having saved the PC of the previous trap, the PC of the previous trap would be lost, thus leaving the kernel stack in a non unwind-able state. Resolution: When allocating space for its save state, the trap handler code now makes sure that the save state is fully contains within the kernel stack. If there is not enough space to hold the save state, the trap handler code switches to the interrupt context stack and the system then panics with a kernel stack overflow. SR: 8606125998 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_rv.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_rv.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_rv.o): asm_rv.s $Date: 2000/02/24 12:33:02 $Revision: r11ro s/14 PATCH_11.00 (PHKL_21120) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(asm_rv.o): asm_rv.s $Date: 2000/02/24 12:33:02 $Revision: r11ro s/14 PATCH_11.00 (PHKL_21120) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 275295676 20884 /usr/conf/lib/libhp-ux.a(asm_rv.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 806534750 27824 /usr/conf/lib/libhp-ux.a(asm_rv.o) Patch Conflicts: None Patch Dependencies: s700: 11.00: PHKL_18543 s800: 11.00: PHKL_18543 Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: None 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_21120 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_21120.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_21120. 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_21120.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_21120.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_21120.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_21120.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.