Patch Name: PHKL_22986

Patch Description: s700_800 11.00 cumulative pstat patch

Creation Date: 01/01/22

Post Date: 01/01/26

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_22986

Symptoms:
	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_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.

SR:
	1653305326 1653309203 5003460949 8606100264 8606112164
	8606127468 8606160396 8606168994

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: 2001/01/18 16:36:41 $Revision: r11ros
			/24 PATCH_11.00 (PHKL_22986)

	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: 2001/01/18 16:36:41 $Revision: r11ros
			/24 PATCH_11.00 (PHKL_22986)

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:
	652477006 62144 /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:
	1913609318 121808 /usr/conf/lib/libhp-ux.a(pstat.o)

Patch Conflicts: None

Patch Dependencies:
	s700: 11.00: PHKL_18543
	s800: 11.00: PHKL_18543

Hardware Dependencies: None

Other Dependencies:
	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

Equivalent Patches: None

Patch Package Size: 390 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_22986

	5. Run swinstall to install the patch:

		swinstall -x autoreboot=true -x patch_match_target=true \
			  -s /tmp/PHKL_22986.depot

	By default swinstall will archive the original software in 
	/var/adm/sw/save/PHKL_22986.  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_22986.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_22986.text file is 
	available in the product readme:

		swlist -l product -a readme -d @ /tmp/PHKL_22986.depot

	To put this patch on a magnetic tape and install from the
	tape drive, use the command:

		dd if=/tmp/PHKL_22986.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions:
	If you wish to display the information about POSIX message
	queues and named semaphores as well as to remove POSIX
	message queues and named semaphores, you must install the
	commands patch, PHCO_22592, in addition to this patch.

	If you wish to enable the increased SysV IPC MSGMNB message
	queue capacity feature delivered in patches PHKL_21518,
	PHKL_21778, and PHKL_21684, it is highly recommended that
	all of the Special Installation Instructions for the
	PHKL_21518 (sysV_msg.o) patch be read prior to installing
	this patch.

	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.

