Jump to content
 English      
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
        More options        
HP.com Home
patch database

patch details: PHKL_38430

» 

IT Resource Center

» Login
» Register
» My profile
» Search knowledge base
» Forums
» Patch database
» Download drivers, software and firmware
» Warranty check
» Support Case Manager
» Software Update Manager
» Training and Education
» More maintenance and support options
» Online help
» Site map
Content starts here
» view selected patch list
The recommended patch is :  PHKL_38430
The most recent patch is :  PHKL_38430

   useful links
» Patch Family Tree

You may provide feedback on this document.
» patch name » patch description » creation date » post date » hardware platforms - os releases » products » filesets » automatic reboot? » status » critical » category tags » path name » symptoms » defect description » enhancement » sr » patch files » what(1) output » cksum(1) output » patch conflicts » patch dependencies » hardware dependencies » other dependencies » supersedes » equivalent patches » patch package size » installation instructions » special installation instructions

 
Patch Name: PHKL_38430

Patch Description: s700_800 11.11 vPar,callout, abstime, sync perf, wakeup

Creation Date: 08/07/14

Post Date: 08/07/18

Hardware Platforms - OS Releases: 
	s700: 11.11
	s800: 11.11

Products: N/A

Filesets: 
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP

Automatic Reboot?: Yes

Status: General Release

Critical: 
	Yes
	PHKL_38430: CORRUPTION
	PHKL_38299: PANIC
	PHKL_34534: HANG
	PHKL_26037: PANIC HANG
		The problem may happen only when using the HP-UX
		Virtual Partitions product with dynamic CPU
		migration.

	PHKL_25367: HANG

Category Tags: 
	defect_repair enhancement general_release critical panic
	halts_system corruption manual_dependencies

Path Name: /hp-ux_patches/s700_800/11.X/PHKL_38430

Symptoms: 
	PHKL_38430:
	( QX:QXCR1000816669 )
	The callout data structure may get corrupted because of a
	race condition on a multi processor system.

	PHKL_38299:
	( QX:QXCR1000802590 )
	Panic:Data page fault while holding a spinlock in the
	callout expiration path. The stack trace is,
	Event #0  : proc_list{315} pid=12178 tid=43058
	cmd="/app1/BI/ias92/opmn/bin/opmn -"
	==============  EVENT  ============================
	= Event #0 is PANIC on CPU #14
	= p crash_event_t 0xa6e000
	= p rpb_t 0xa67100
	= Using pc from pim.wide.rp_rp_hi = 0x29cf74
	==============  EVENT  ============================ SR4=0x0
	LVL  FUNC   ( ARG0, ARG1, ARG2, ARG3 )
	 0)  panic+0x6c   ( n/a, n/a, n/a, n/a )
	 1)  report_trap_or_int_and_panic+0x94   ( 0x2, 0xf,
	0x26ca900, 0x8c4d80 )
	 2)  interrupt+0x208   ( n/a, 0x26ca900, n/a, n/a )
	 3)  ihandler+0x930   ( n/a, n/a, n/a, n/a )
	+-------------  TRAP #1  ----------------------------
	|  Trap type 15 in KERNEL mode at 0x34bd4 (spinlock+0x14)
	|  p struct save_state 0.0x26ca900
	+-------------  TRAP #1  ----------------------------
	SR4=0x0
	LVL  FUNC   ( ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6 )
	 4)  spinlock+0x14   ( 0x0, n/a, n/a, n/a, n/a, n/a, n/a )
	 5)  chanq_timer_expire+0x28   ( 0xa82a1040, n/a, n/a, n/a,
	n/a, n/a, n/a )
	 6)  invoke_callouts_for_self+0x9c   ( 0x1, n/a, n/a, n/a,
	n/a, n/a, n/a )
	 7)  sw_service+0x108   ( 0x18, 0x26ca000, n/a, n/a, n/a,
	n/a, 0xed00080000000000 )
	 8)  mp_ext_interrupt+0x3ec   ( 0x26ca000, n/a, n/a, n/a,
	n/a, n/a, n/a )
	 9)  ihandler+0x90c   ( n/a, n/a, n/a, n/a, n/a, n/a, n/a )
	+-------------  TRAP #2  ----------------------------
	|  Trap type 4 in KERNEL mode at 0x1aff2c
	(find_timeout_on_spu+0x1d4)
	|  p struct save_state 0.0x26ca000
	+-------------  TRAP #2  ----------------------------
	SR5=0x71d5c00
	LVL  FUNC   ( ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6 )
	10)  find_timeout_on_spu+0x1d4   ( 0x48c1b8, 0xafbdc040,
	0xe, 0x1, n/a, n/a, n/a )
	11)  find_timeout_on_spu+0x160   ( 0x48c1b8, 0xafbdc040,
	n/a, 0x1, 0x1, n/a, n/a )
	12)  find_timeout+0x38   ( n/a, n/a, 0x1, n/a, n/a, n/a, n/a
	)
	13)  untimeout+0x14   ( 0x48c1b8, 0xafbdc040, n/a, n/a, n/a,
	n/a, 0x400003ffffff0000 )
	14)  ksleep_one+0x194   ( 0x21, 0x401ae3f0, 0x401ae3f8,
	0x400003ffffff0dd0, n/a, n/a, n/a )
	15)  ksleep+0xa4   ( 0x400003ffffff03a0, n/a, n/a, n/a, n/a,
	n/a, n/a )
	16)  syscall+0x738   ( n/a, n/a, n/a, n/a, n/a, n/a, n/a )
	17)  syscallinit+0x55c   ( n/a, n/a, n/a, n/a, n/a, n/a, n/a
	)

	PHKL_34534:
	( QX:QXCR1000556648 SR:8606424910 CR:JAGaf84430 )
	An application using pthread library can hang
	intermittently.

	PHKL_30837:
	( QX:QXCR1000529542 SR:8606338067 CR:JAGae99066 )
	If the system time is changed explicitly while an
	application has a pthread_cond_timedwait(2) call with an
	absolute time specified in progress, this could in some
	situations cause the timeout to expire either too early or
	too late.

	PHKL_26037:
	( SR:8606230908 CR:JAGae00146 )
	This change provides pre-enablement of the Real Time
	Extensions to the HP-UX Processor Sets (PROCSETS)
	product.

	This change will have no impact on your system until the
	Real Time Extensions are fully enabled.

	( SR:8606233949 CR:JAGae03172 )
	A system panic or hang may result from the corruption of
	callout data structures.  This may happen with the HP-UX
	Virtual Partitions product when dynamic CPU migration across
	virtual partitions is used.  This defect was discovered
	through inspection, but due to timing issues involved with
	this defect, internal testing did not produce this panic.

	PHKL_24546:
	( SR:8606197207 CR:JAGad66401 )
	This patch is a member of a set of patches needed to enable
	the HP-UX Virtual Partitions product. When the HP-UX Virtual
	Partitions product (VPARSBASE or T1335AA) is installed, it
	will install the full set of required patches for that
	product, including this patch.

	If the HP-UX Virtual Partitions product is not installed,
	this change will have no impact on your system.

	PHKL_27316:
	( QX:QXCR1000514745 SR:8606266056 CR:JAGae30309 )
	This product update is a member of a set needed to enable
	the optional HP-UX Shared Synchronization Primitives
	Performance enhancement. Upon installation, the HP-UX
	Shared Synchronization Primitives Performance bundle
	(SSPP11i) will install the full set of product updates
	(including this one) to enable this performance
	enhancement.

	If the HP-UX Shared synchronization Primitives
	Performance product is not installed, this product
	update will have no impact on your system.

	PHKL_26468:
	( QX:QXCR1000511258 SR:8606231620 CR:JAGae00858 )
	Enhancement:  This product update is a member of a set
	needed to enable "Release mode" functionality for
	PTHREAD_PROCESS_SHARED mutexes.
	The full list of product updates required for this feature
	are: PHKL_26467, PHKL_26468, PHKL_26469 and PHCO_26466.

	If any member of this set of product updates is not
	installed, this product update will have no impact on
	your system.

	PHKL_25367:
	( QX:QXCR1000505664 SR:8606167399 CR:JAGad36685 )
	Occasionally a thread would miss a timeout interrupt and
	sleep forever or until it was sent a signal.  The sleeping
	thread could cause an application hang.

	( SR:8606194815 CR:JAGad64021 )
	Occasionally a thread holding a resource was starved
	for cpu time; this starvation in turn delayed other threads
	waiting for that resource.

Defect Description: 
	PHKL_38430:
	( QX:QXCR1000816669 )
	Under certain remote scenario, on a multi processor system a
	race condition can happen in the kernel callout subsystem
	which can lead to corruption of certain flags in the callout
	data structure.

	Resolution:
	The fix is to close this window of the race in the callout
	subsystem to avoid this corruption.

	PHKL_38299:
	( QX:QXCR1000802590 )
	Under certain remote conditions, a sleeping thread could
	erroneously wakeup due to the aliasing of the internal sleep
	channels. The erroneous wakeup could cleanup the necessary
	data structures while an associated callout is on the way to
	expire, which can result in panic on their access by
	internal callout expiration routines.

	Resolution:
	The fix is to avoid the aliasing of the internal sleep
	channel, thus preventing erroneous wakeups.

	PHKL_34534:
	( QX:QXCR1000556648 SR:8606424910 CR:JAGaf84430 )
	When a thread waiting on a time based condition variable is
	awakened, a signal might be posted to it before it starts
	running. In this case the kernel returns a 'timed out'
	status to the libpthread library instead of a 'woken'
	status. This causes erroneous bookkeeping in the library
	and the potential for subsequent application hangs.

	Resolution:
	In processing the interrupted sleep, a check has been added
	to see if the thread has also received a wakeup. If so, a
	'wake up' status is returned to the caller rather than a
	'timed out' status. This resolves the libpthread bookkeeping
	inconsistencies and prevents subsequent application hangs.

	PHKL_30837:
	( QX:QXCR1000529542 SR:8606338067 CR:JAGae99066 )
	A timeout is registered for the delta between the absolute
	time specified to the pthread_cond_timedwait(2) call and
	current system time. This delta is not adjusted when the
	system time is changed.

	Resolution:
	Modify the code to adjust the pthread_cond_timedwait(2)
	timeout, if the system time is changed.

	PHKL_26037:
	( SR:8606230908 CR:JAGae00146 )
	This change contains minor enhancements required to
	pre-enable the Real Time Extensions to the HP-UX Processor
	Sets product.

	Resolution:
	Enable Callout Migration functionality for Real Time
	Extensions to Processor Sets product.  This functionality
	was previously enabled only for the Virtual Partitions
	product.

	( SR:8606233949 CR:JAGae03172 )
	The HP-UX callout subsystem uses per-CPU-callout locks to
	protect callout data structures and synchronize callout
	operations.  The operating system identifies and takes the
	callout lock based on the CPU assigned to the callout.  If
	the callout gets migrated to another CPU after the function
	has read its CPU assignment, but before it can take the
	associated callout lock, the code may end up with an
	incorrect callout lock leading to potential race conditions
	and data structure corruption.

	Resolution:
	Handle the race condition in callout module by re-validating
	the assigned CPU of the callout after acquiring the per CPU
	callout lock. If we are not holding the callout lock for the
	assigned CPU, drop the lock and try again.

	PHKL_24546:
	( SR:8606197207 CR:JAGad66401 )
	This patch contains minor enhancements required to support
	the HP-UX Virtual Partitions product.

	Resolution:
	Enhancements added to support CPU migration.

	PHKL_27316:
	( QX:QXCR1000514745 SR:8606266056 CR:JAGae30309 )
	This product update contains enhancements that improve
	the performance of shared synchronization primitives
	such as LWP semaphores, pthread condition variables
	and pthread RW locks.

	Resolution:
	The solution provided with this product update
	will mitigate the contention for kernel internal
	synchronization by increasing the granularity.

	PHKL_26468:
	( QX:QXCR1000511258 SR:8606231620 CR:JAGae00858 )
	This product update contains minor enhancements
	required to enable the "Release mode" functionality
	for PTHREAD_PROCESS_SHARED mutexes.

	Resolution:
	The changes in this product update include support
	for new locking primitives introduced in the product
	update PHKL_26469 which also provides support for
	release mode in PTHREAD_PROCESS_SHARED mutexes.

	PHKL_25367:
	( QX:QXCR1000505664 SR:8606167399 CR:JAGad36685 )
	A timing window existed in the sleep routines such that
	if the timeout interrupt occurred before the thread had
	gone to sleep, the thread would miss the timeout and
	sleep forever or until it was sent a signal.

	Resolution:
	Modified the timeout interrupt routine to correctly handle
	the case where the thread is not yet asleep when the timeout
	interrupt occurs.

	( SR:8606194815 CR:JAGad64021 )
	A thread exiting ksleep() retained its normal
	low priority, leading to its starvation while holding the
	resource.

	Resolution:
	Modified ksleep() to temporarily boost the thread's user
	priority when the sleep ends.

Enhancement: 
	No (superseded patches contained enhancements)
	PHKL_30837:
		Enhancements were delivered in a patch this one has
		superseded.  Please review the Defect Description
		text for more information.
	PHKL_27316:
	        Enhancements added to improve performance
		of shared synchronization primitives.

		Additional enhancements were delivered in a patch
		this one has superseded.  Please review the Defect
		Description text for more information.

SR: 
	8606167399 8606194815 8606197207 8606230908 8606231620
	8606233949 8606266056 8606338067 8606424910 QXCR1000505664
	QXCR1000511258 QXCR1000514745 QXCR1000529542 QXCR1000556648
	QXCR1000802590 QXCR1000816669

Patch Files: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libpm.a(pm_callout.o)
	/usr/conf/lib/libpm.a(subr_ksleep.o)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libpm.a(pm_callout.o)
	/usr/conf/lib/libpm.a(subr_ksleep.o)

what(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libpm.a(pm_callout.o):
		pm_callout.c $Date: 2008/07/11 08:23:30 $Revision: r
			11.11/4 PATCH_11.11 (PHKL_38430)
	/usr/conf/lib/libpm.a(subr_ksleep.o):
		subr_ksleep.c $Date: 2008/05/29 15:03:13 $Revision: 
			r11.11/6 PATCH_11.11 (PHKL_38299)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libpm.a(pm_callout.o):
		pm_callout.c $Date: 2008/07/11 08:23:30 $Revision: r
			11.11/4 PATCH_11.11 (PHKL_38430)
	/usr/conf/lib/libpm.a(subr_ksleep.o):
		subr_ksleep.c $Date: 2008/05/29 15:03:13 $Revision: 
			r11.11/6 PATCH_11.11 (PHKL_38299)

cksum(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	518275864 21180 /usr/conf/lib/libpm.a(pm_callout.o)
	331621451 11436 /usr/conf/lib/libpm.a(subr_ksleep.o)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	1020524934 51776 /usr/conf/lib/libpm.a(pm_callout.o)
	3415544095 28544 /usr/conf/lib/libpm.a(subr_ksleep.o)

Patch Conflicts: None

Patch Dependencies: None

Hardware Dependencies: None

Other Dependencies: 
	PHKL_26468:  To enable the process shared mutex performance,
	the following must be installed:  PHKL_26467, PHKL_26468,
	PHKL_26469 and PHCO_26466.  These product updates may be
	installed in any order.  If any of these product updates are
	not installed, this product update will have no impact on
	your system.

Supersedes: 
	PHKL_38299 PHKL_34534 PHKL_30837 PHKL_27316 PHKL_26468 PHKL_26037
	PHKL_25367 PHKL_24546

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_38430

	5. Run swinstall to install the patch:

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

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

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

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

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

Special Installation Instructions: None




» top of page
Printable version
Privacy statement Using this site means you accept its terms
© 2009 Hewlett-Packard Development Company, L.P.