Patch Name: PHKL_28151 Patch Description: s700_800 11.00 pstat patch, long command line storage Creation Date: 02/11/20 Post Date: 04/08/27 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP 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 hardware_enablement enhancement general_release Path Name: /hp-ux_patches/s700_800/11.X/PHKL_28151 Symptoms: PHKL_28151: ( SR:8606269677 CR:JAGae33912 ) Enhancement: This product update modifies the pstat(2) system call to use the new kernel internal interfaces to the LVM subsystem that are delivered by PHKL_28150. These interface changes are intended to separate LVM from other kernel subsystems in order to make it easier to maintain high quality LVM code. The use of these new interfaces will have no functional impact on your system. PHKL_26008: ( SR:8606228779 CR:JAGad97833 ) Enhancement to increase the size of the process command line stored in the kernel. PHKL_22986: ( SR:8606168994 CR:JAGad38272 ) pstat(2) system call does not provide sufficient information on processor activation and deactivation required by the OpenView product. As a result, the OpenView performance tools are currently not able to maintain accurate processor statistics in an environment where the instant processor activation or deactivation features are being utilized. This patch provides pstat(2) changes to support OpenView management of processor statistics related to instant processor activation and deactivation, such as used by the Instant Capacity On Demand (iCOD) product. PHKL_22588: ( SR: 165309203 DTS: JAGab25292 ) This is an enhancement to enable access to the POSIX message queues and named semaphores. This patch provides the kernel support; the commands patch PHCO_22592 provides the user interface. PHKL_22413: ( SR: 8606160396 CR: JAGad29718 ) When a processor is deallocated, pstat_getproc() or pstat_getlwp() may return a process or thread which shows that it is sleeping on the deallocated processor. PHKL_21684: ( SR: 5003460949 DTS: JAGab15326 ) This is an enhancement for increasing the SysV IPC MSGMNB message queue capacity from a 16bit(ushort) limit to a 32bit(int) limit for re-compiled applications which are designed specifically to take advantage of this feature. The enhancement is contained in three patches; this one (providing pstat(2) support) plus PHKL_21518 (SysV IPC changes) and PHKL_21778 (new tunables range limits, used by SAM). PHKL_21518 must be installed for this patch to be enabled and it is strongly advised that all three patches be installed if this feature is desired. Without installing this patch and PHKL_21518, this change will have no impact on the system. PHKL_21700: ( SR: 8606127468 DTS: JAGac77753 ) The pstat_dynamic structure (pstat(2) pstat_getdynamic()) always returns the total processor number in psd_proc_cnt, which is incorrect when processors are deallocated. The calculation of values psd_avg_1_min, psd_avg_5_min, psd_avg_15_min and psd_cpu_time[] in pstat_dynamic structure (pstat(2) pstat_getdynamic()) are incorrect in the case where processors are deallocated. pstat_getlwp() (pstat(2)) returns array elements which includes threads that are not recognized by user. PHKL_20943: ( SR: 8606112164 DTS: JAGab84450 ) Enhancement: Performance changes for corner case in RTSCHED scheduling. This patch has no impact on most systems. PHKL_19573: pstat_getlv() fails to get information on volumes in groups other than 0. PHKL_19186: The command 'fuser' takes a long time because it calls pstat_getprocvm(), where a lot of system time is spent calculating/gathering the variable-sized pages statistics. Defect Description: PHKL_28151: ( SR:8606269677 CR:JAGae33912 ) This product update contains minor enhancements to the pstat(2) system call to use new LVM kernel internal interfaces. Resolution: Changes were made to the pstat(2) system call so that it now uses an LVM interface to access LVM internal data. The previous implementation accessed the data directly. PHKL_26008: ( SR:8606228779 CR:JAGad97833 ) Currently, only 60 characters of the process command line are stored in the kernel. Some environments require more characters be stored. Resolution: This patch handles allocation of kernel memory and value assignment of up to 1020 characters of the process command line. Patch PHKL_25999, also needed for this enhancement, performs deallocation of the memory. PHKL_22986: ( SR:8606168994 CR:JAGad38272 ) Although instant processor activation and deactivation functionality already exists in HP-UX, information about processors in this environment, including processor logical id, activation and deactivation status, and interrupt flag, is currently unavailable from pstat(2). This information is needed by the OpenView performance tools to maintain accurate processor statistics. Resolution: Add psp_logical_id, psp_processor_state, and "PSP_INTERRUPT_ENABLED/PSP_INTERRUPT_DISABLED" psp_flags fields to the __pst_processor data structure. PHKL_22588: ( SR: 165309203 DTS: JAGab25292 ) Enhancement to provide kernel support for access to the information about POSIX message queues and named semaphores. The commands patch, PHCO_22592, must be installed to display the information about POSIX message queues and named semaphores as well as to remove POSIX message queues and named semaphores. Resolution: New functionality to retrieve information about POSIX message queues and named semaphores has been added to pstat(). After the patch is installed, kernel information about POSIX message queues and named semaphores can be accessed through the pstat() system call. PHKL_22413: ( SR: 8606160396 CR: JAGad29718 ) A kernel thread maintains information (kt_spt) which indicates the processor it was running on. If the processor is deallocated, this information is not changed until the thread actually wakes up. So pstat_getproc() or pstat_getlwp() can return the deallocated processor index if the thread is still sleeping. Resolution: If the thread's processor field (kt_spu) indicates a processor that is deallocated, pstat_getproc() and pstat_getlwp() will return the monarch processor index instead. (When the thread wakes up, it will be schedualed there.) PHKL_21684: ( SR: 5003460949 DTS: JAGab15326 ) This is a companion patch to PHKL_21518 and PHKL_21778, which are designed to increase the SysV IPC MSGMNB message queue capacity from the 16bit(ushort) limit to a 32bit(int) maximum. This patch provides the pstat(2) enhancements to support this feature. Please see the PHKL_21518 documentation for details and installation notes. Installation of this patch without PHKL_21518 will not enable this feature and of no effect on the system. Note: installing PHKL_21518 (sysV_msg.o), but not this patch, means that applications compiled with the #define __BIGMSGQUEUE_ENABLED may not run or may not run correctly. PHKL_21700: ( SR: 8606127468 DTS: JAGac77753 ) pstat_dynamic is returning a psd_proc_cnt that is always the same as psd_max_proc_cnt. This should not be the case when processors have been deallocated because psd_proc_cnt is supposed to reflect the number of active processors. psd_avg_1_min, psd_avg_5_min, psd_avg_15_min and psd_cpu_time[] are based on the number of processors in the system instead of the number of active processors. pstat_getlwp incorrectly includes threads that are in state TSUNUSED and TSIDL. Customers will see threads that should not be exposed to their applications. Resolution: pstat_dynamic: psd_proc_cnt reflects the number of allocated processors instead of total number of processors installed on the system. This is done by checking the state of each processor before incrementing psd_proc_cnt. The following list of commands use psd_proc_cnt incorrectly: sadc, vmstat, iostat, top and uptime. If processors are deallocated after this patch is installed, these commands will display incorrect data in fields that are based on the psd_proc_cnt value (i.e. load average, active processors). Note: The system online diagnostics interface is the only application currently able to deallocate a processor (and is used to deallocate a processor that has detected LPMCs). This problem applies to processor "deactivation" thru HP-UX, not processor "deconfiguration" thru a BCH or OBP firmware prompt. The calculation of psd_avg_*_min and psd_cpu_time[] in pstat_dynamic the structure now excludes deallocated processors. pstat_getlwp: check that thread state is not in either of these two states before incrementing the count. PHKL_20943: ( 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. PHKL_19573: For most configurations, the searching code in pstat_getlv() was getting stuck in volume group 0. Resolution: Re-worked the searching code to look at all appropriate volume groups. PHKL_19186: To reproduce the problem, create a very large shared memory segment. Fork about 1000 children and have each child attach to it. Then reboot the machine and run 'fuser'. The defect itself can be described as a performance problem when running 'fuser' in the above scenario. The problem lies in the fact that pstat_getprocvm() takes a long time to calculate the variable-sized statistics. These statistics were gathered no matter what, since they are components of the pst_vm_status structure. Resolution: These variable-sized statistics will only be gathered if the application wishes to gather them. The application can exercise this option by requesting the right 'size' (an argument to the pstat system call) of information that it is requesting to be returned. For example, the pstat interface will only return the first 'n' bytes of info- mation when the 'size' argument is 'n'. Therefore, 'fuser' can provide a 'size' less than the offsets of these variable-sized fields in the pst_vm_status structure to skip the process of gathering these statistics. Enhancement: Yes PHKL_28151: This product update makes use of a new LVM interfaces delivered in PHKL_28150. Additional enhancements were delivered in a patch this one has superseded. Please review the Defect Description text for more information. SR: 1653305326 1653309203 5003460949 8606100264 8606112164 8606127468 8606160396 8606168994 8606228779 8606269677 Patch Files: OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/conf/h/pstat.h ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/include/sys/pstat.h OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(pstat.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(pstat.o) what(1) Output: OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/conf/h/pstat.h: pstat.h $Date: 2001/01/18 17:37:35 $Revision: r11ros /6 PATCH_11.00 (PHKL_22986) ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: /usr/include/sys/pstat.h: pstat.h $Date: 2001/01/18 17:37:35 $Revision: r11ros /6 PATCH_11.00 (PHKL_22986) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(pstat.o): pstat_extensions.h $Date: 2000/10/28 15:14:03 $Revis ion: r11ros/2 PATCH_11.00 (PHKL_22588) pstat.c $Date: 2002/11/20 15:27:02 $Revision: r11ros /26 PATCH_11.00 (PHKL_28151) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(pstat.o): pstat_extensions.h $Date: 2000/10/28 15:14:03 $Revis ion: r11ros/2 PATCH_11.00 (PHKL_22588) pstat.c $Date: 2002/11/20 15:27:02 $Revision: r11ros /26 PATCH_11.00 (PHKL_28151) cksum(1) Output: OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 3191258173 83471 /usr/conf/h/pstat.h ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP: 3191258173 83471 /usr/include/sys/pstat.h OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 2237180706 63608 /usr/conf/lib/libhp-ux.a(pstat.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 609186214 124480 /usr/conf/lib/libhp-ux.a(pstat.o) Patch Conflicts: None Patch Dependencies: s700: 11.00: PHKL_18543 PHKL_28150 s800: 11.00: PHKL_18543 PHKL_28150 Hardware Dependencies: None Other Dependencies: s700: 11.00: PHKL_25999 s800: 11.00: PHKL_25999 To enable storage of long process command lines in the kernel, two patches (PHKL_26008 and PHKL_25999) are required. These patches may be installed in any order or combination, or not at all (if this feature is not desired). s700: 11.00: PHKL_21518 PHKL_21778 s800: 11.00: PHKL_21518 PHKL_21778 PHKL_21684, PHKL_21518, PHKL_21778 together provide an enhancement to increase the SysV IPC MSGMNB message queue capacity. To enable the enhancement, both PHKL_21684 and PHKL_21518 must be installed, and PHKL_21778 is required if SAM support is desired to modify system tunables. Each may be installed independently of the others. s700: 11.00: PHCO_22592 s800: 11.00: PHCO_22592 PHKL_22588 and PHCO_22592 together provide an enhancement so the customer is able to use commands to display the information about POSIX message queues and named semaphores as well as remove them. Supersedes: PHKL_22588 PHKL_22413 PHKL_21700 PHKL_21684 PHKL_20943 PHKL_19573 PHKL_19186 PHKL_26008 PHKL_22986 Equivalent Patches: None Patch Package Size: 400 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_28151 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_28151.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_28151. 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_28151.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_28151.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_28151.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None