Patch Name: PHKL_30287 Patch Description: s700_800 11.00 scall arg,rtsched enh,IDS/9000,UP,syscall Creation Date: 04/02/03 Post Date: 04/04/01 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_30287: HANG PHKL_27912: ABORT OTHER EFAULT status returned. Category Tags: defect_repair enhancement general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_30287 Symptoms: PHKL_30287: ( SR:8606337547 CR:JAGae98554 ) A multi-threaded user application using Light Weight Process (LWP) threads might experience an unkillable hang after a thread is asynchronously canceled. This is more likely to occur on a uniprocessor system but can also happen on a multiprocessor system. PHKL_27912: ( SR:8606259113 CR:JAGae23431 ) Applications that use system calls that pass more than four (4) arguments which worked on an earlier release of HP-UX may improperly return an EFAULT error. This only affects 32-bit applications running on 64-bit operating systems. PHKL_25829: ( SR:8606194551 CR:JAGad63759 ) A thread returning from a pthread_join() or other event involving a sleep may find itself at the sleep priority rather than its user priority. This symptom only occurs on a uniprocessor system. PHKL_21352: ( SR: 8606132615 CR: JAGad01764 ) The Praesidium IDS/9000 product requires this patch in order to run. This patch has no impact on systems without the Praesidium IDS/9000 product installed and enabled. PHKL_20944: ( SR: 8606112164 DTS: JAGab84450 ) Enhancement: Performance changes for corner case in RTSCHED scheduling. This patch has no impact on most systems. Defect Description: PHKL_30287: ( SR:8606337547 CR:JAGae98554 ) When a LWP thread is aborted by a pthread_cancel, a side effect of is that the aborting thread may execute briefly before being aborted completely. The thread may return to user space and execute user program code during this brief interval. Depending on what the user program does during that period, unexpected, detrimental effects to the system could result. For instance, the program could immediately perform another system call where a semaphore or other global resources could be acquired and cause the thread to become unkillable, lead to a system deadlock/hang, etc. Resolution: The fix is to insert a call at the end of syscall to handle the terminating process instead of letting it exit out of syscall. That is, check the condition in the syscall path where a thread returns to user space from the kernel to ensure that an aborted thread does not return to user space. PHKL_27912: ( SR:8606259113 CR:JAGae23431 ) When 32-bit applications invoke system calls having more than four arguments on 64-bit kernels, these fifth, sixth, etc. arguments are stored in the outgoing parameters area of the caller's stack frame. There are situations where a register used to calculate the pointer to the arguments could have some residual left over bits in the high order 32-bits that will result in problems when attempting to retrieve those arguments. These extraneous bits create an address that is outside the range of the 32-bit address space causing the EFAULT. Resolution: Mask off the upper 32-bits of the system call's arguments pointer. PHKL_25829: ( SR:8606194551 CR:JAGad63759 ) User priority was not being re-established properly on uniprocessor systems when returning from a system call. Resolution: The system call interface was changed to correctly re-establish user priority in both the multiprocessor and uniprocessor cases. PHKL_21352: ( SR: 8606132615 CR: JAGad01764 ) This patch is one of 16 patches (PHKL_21348-PHKL_21363) required by the Praesidium IDS/9000 product. These patches enable the collection and tracking of information from various system calls. Unless all of the enabling patches (or their successors) and the product are installed, and the product is enabled, this patch has no impact on the system. Resolution: This patch enables the gathering of information from the system call interface. PHKL_20944: ( SR: 8606112164 DTS: JAGab84450 ) This is an enhancement for a corner case in RTSCHED scheduling. Resolution: Code added to fine tune RTSCHED thread scheduling code path. Enhancement: No (superseded patches contained enhancements) PHKL_27912: Enhancements were delivered in a patch this one has superseded. Please review the Defect Description text for more information. SR: 8606112164 8606132615 8606194551 8606259113 8606337547 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(syscall.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(syscall.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(syscall.o): syscall.c $Date: 2004/01/29 17:27:36 $Revision: r11r os/12 PATCH_11.00 (PHKL_30287) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(syscall.o): syscall.c $Date: 2004/01/29 17:27:36 $Revision: r11r os/12 PATCH_11.00 (PHKL_30287) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 2692941223 18372 /usr/conf/lib/libhp-ux.a(syscall.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 4186470744 43960 /usr/conf/lib/libhp-ux.a(syscall.o) Patch Conflicts: None Patch Dependencies: s700: 11.00: PHKL_18543 s800: 11.00: PHKL_18543 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_27912 PHKL_25829 PHKL_21352 PHKL_20944 Equivalent Patches: PHKL_30288: s700: 11.11 s800: 11.11 Patch Package Size: 50 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_30287 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_30287.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_30287. 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_30287.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_30287.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_30287.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None