Patch Name: PHKL_30245 Patch Description: s700_800 11.23 fixes for TLB fault and spinlock panics Creation Date: 04/01/20 Post Date: 04/02/09 Hardware Platforms - OS Releases: s700: 11.23 s800: 11.23 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_30245: PANIC Category Tags: defect_repair general_release critical panic Path Name: /hp-ux_patches/s700_800/11.X/PHKL_30245 Symptoms: PHKL_30245: ( SR:8606341992 CR:JAGaf02899 ) System panic with a Data TLB fault at pte_modget+0xf1. The stack trace will be similar to the stack below: panic_save_regs_switchstack+0x110 panic+0x310 post_hndlr+0xc20 vm_hndlr+0x220 bubbledown+0x0 pte_modget+0xf0 ptmodget+0xd0 hdl_getbits+0x290 vm_vfdcheck+0x160 vfds_walk+0xb0 btree_walk+0x2f0 btree_walk+0x3d0 foreach_valid+0xa0 vm_find_next_range+0x90 nfs_pageout+0x220 stealpages+0x340 vhand_core+0x6a0 vhand_global_pager+0x470 vhand_service_mem_class+0x360 vhand+0x1a0 im_vhand+0x190 DoCalllist+0x3a0 main+0x30 swidle+0x0: ( SR:8606323616 CR:JAGae86081 ) panic with a stack trace similar to the stack trace below panic: Spinlock held too long! Stack Trace: IP Function Name 0xe0000000006bde50 too_much_time+0x530 0xe00000000038f470 wait_for_lock_spinner+0x190 0xe00000000038f150 wait_for_lock+0x130 0xe00000000103f2f0 spinlock_wait+0x30 0xe000000000567ae0 ptdpage+0xe0 0xe000000000565970 hdl_deletetrans+0x150 0xe000000000525f20 vfd_deltransc+0x2a0 0xe000000000570100 btree_walk+0x100 0xe00000000056ffd0 foreach_chunk+0x50 0xe000000000556f40 hdl_detach+0x160 0xe00000000051aa70 detachreg+0x190 0xe000000000516e70 dispreg+0x250 0xe0000000005849f0 exit+0x750 0xe00000000062ff00 rexit+0x40 0xe000000000528280 syscall+0x4f0 End of Stack Trace Defect Description: PHKL_30245: ( SR:8606341992 CR:JAGaf02899 ) When deleting large pages, the page offset was incorrectly updated. This caused the incorrect alias page to be deleted. Resolution: The page offset is now updated after each deletion so that the alias deletion occurs on the correct offset. ( SR:8606323616 CR:JAGae86081 ) When deleting a translation from the head of the hash chain, the next entry is moved up to become the new head. During the move, the next entry is temporarily marked as being not_present to prevent access to inconsistent data. Other processes trying to access the page translation entry, 'pte', will be suspended at the not_present handler until the move is complete. In this case as a result of an external interrupt the calling thread is running on the same processor as the 'pte' deletion, the processor gets stuck in handling the not_present fault, and cannot finish marking the 'pte' as valid and then release the hash chain lock. Resolution: Remove the code that marks the 'pte' as not present while we are moving it to the head of the hash chain. This is no longer necessary since the low level fault handler now checks to make sure that the 'pte' it's trying to use is not in a transient state. Enhancement: No SR: 8606323616 8606341992 Patch Files: OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/conf/lib/libvm-pdk.a(vm_vhpt.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: /usr/conf/lib/libvm-pdk.a(vm_vhpt.o): vm_vhpt.c $Date: 2003/12/29 11:58:32 $Revision: r11. 23/2 PATCH_11.23 (PHKL_30245) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP: 3427719667 540432 /usr/conf/lib/libvm-pdk.a(vm_vhpt.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: None Equivalent Patches: None Patch Package Size: 90 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_30245 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_30245.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_30245. 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 PHKL_30245.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_30245.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_30245.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None