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_26233

» 

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_35564
The most recent patch is :  PHKL_35564

   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 » 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_26233

Patch Description: s700_800 11.11 VM-JFS ddlock, mmap,thread perf, user limits

Creation Date: 02/02/03

Post Date: 02/02/11

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 Superseded

Critical: 
	Yes
	PHKL_26233: PANIC
	PHKL_25614: CORRUPTION PANIC ABORT
		JAGad62420:  a process with a private 3rd quadrant
		can obtain an erroneous address when calling mmap(2)
		for a large mapping ( size > 1 GB).  The erroneous
		address can match an already existing address for
		that process.  If this is the case, subsequent use
		of this address could lead to corruption of data
		already at that address, as now 2 pointers with
		different meaning refer to the same block of data.
		The corruption is limited to the own address space
		of the process, and possibly files mapped by the
		process.
		The corruption is limited to the calling process
		address space, and will not affect system or other
		process memory.

	PHKL_25129: CORRUPTION
	PHKL_24073: HANG

Category Tags: 
	defect_repair enhancement general_release critical panic
	halts_system corruption

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

Symptoms: 
	PHKL_26233:
	( SR:8606230627 CR:JAGad99677 )
	System panic with the following stack trace.
	panic+0x6c
	report_trap_or_int_and_panic+0x94
	trap+0xed4
	thandler+0xd20
	hdl_vfault+0x80
	vfault+0x12c
	trap+0x234
	thandler+0xd20

	PHKL_25614:
	( SR:8606193208 CR:JAGad62420 )
	A 32 bit process with the 3rd quadrant private (obtained
	with the command chattr +q3 enable) can obtain an incorrect
	address when requesting a large (~1 GB) mapping with the
	mmap(2) call.
	Observed symptoms are :
	  -process aborted because of a memory fault
	   (signals SIGBUS or SIGSEGV).
	  -corruption of the memory for the calling process,
	   including files that are mapped in memory by the process.
	System memory and memory from other processes are not
	impacted.

	( SR:8606212954 CR:JAGad82141 )
	When a 32 bit process uses mmap64(2) to mmap(2) a large file
	on a 64 bit kernel, if the offset is bigger than 4 GB, the
	call returns EINVAL.

	( SR:8606188767 CR:JAGad57983 )
	Applications requiring large amounts of private memory
	address space (greater than 2GB) may use shared memory space
	to offset their private memory space needs.  This is done by
	using the mmap(2) flags:
	MAP_ANONYMOUS|MAP_GLOBAL|MAP_SHARED.
	Even with this effort to conserve private memory space,
	these applications are running out of private memory space.
	A close examination shows that allocations intended for
	shared space were put into private memory space in error.

	( SR:8606205797 CR:JAGad74972 )
	A panic "Returning ID that is already free" may occur as a
	result of a process (proc A) calling mmap(2) with MAP_FIXED
	and an address that overlaps with an existing text mapping.
	This will result in a panic in one of the following ways:

	 (1) Panic occurs when process proc A exits.

	 (2) The process proc A does a munmap(2) of the previous
	     mmap(2) (as mentioned above) and subsequent mmap(2)
	     calls from any process (proc X) get assigned the same
	     address.  When process proc X exits (case 1) the panic
	     occurs.

	A stack trace may look similar to the following:

	panic+0x6c
	hdl_return_id+0xb8
	hdl_free_protid+0x1c
	hdl_detach+0x17c
	attachreg+0x228
	mmap_anon_object+0xc4
	smmap_common+0x35c
	smmap+0x50
	syscall+0x750
	$syscallrtn+0x0

	PHKL_25129:
	( SR:8606215349 CR:JAGad84536 )
	Memory corruption may occur after the installation of
	PHKL_24679.

	PHKL_24679:
	( SR:8606201639 CR:JAGad70813 )
	The system takes a lot of time in creating a large number of
	threads. The cost of creating threads increases
	exponentially as the number of threads increases and so the
	system appears to be very slow when one tries to create a
	lot of threads.

	PHKL_25227:
	( SR:8606188435 CR:JAGad57643 )
	Narrow mode (32bit) HP-UX 11.11 programs cannot mmap64() any
	part of a large file beyond the first 2GB.

	PHKL_24743:
	( SR:8606205558 CR:JAGad74733 ) Duplicate
	( SR:8606204858 CR:JAGad74036 )
	Decreased performance for mmap() operations has occasionally
	been observed in superdome systems with more than 32 cpus.
	These symptoms are not specific to superdomes, but could
	possibly occur on other high end systems as well.

	PHKL_24073:
	( SR:8606189205 CR:JAGad58421 )
	A multi-threaded process hangs and cannot be killed. This
	process will have been repeatedly mmap()ing parts of the
	same file, while at the same time reading or writing to it
	with the read(), write(), readv(), or writev() system calls
	from a different thread. That file must also be on a JFS
	file system.

	The Netscape Messaging Server's smtpd process is the only
	application we've seen do the particular combination of
	operations required to get into this state.

Defect Description: 
	PHKL_26233:
	( SR:8606230627 CR:JAGad99677 )
	Kernel incorrectly handles some of the parameters to
	setrlimit.

	Resolution:
	The kernel is fixed to handle the particular parameters
	correctly.

	PHKL_25614:
	( SR:8606193208 CR:JAGad62420 )
	On 64 bit systems, calls to mmap(2) by 32 bit processes with
	sizes in the range of 1 GB or greater cause the allocation
	algorithm to allocate a segment in the 64 bit address space
	instead of the 32 bit address space.  The 64 bit address is
	truncated to 32 bits on return to the 32 bit calling
	process.  The cause of this error is an incorrect boundaries
	checking in the allocation algorithm.  When using a
	debugger, one can observe a 64 bit segment in the process
	address space.

	Resolution:
	The allocation algorithm now checks boundary conditions
	correctly, producing a correct memory address.

	( SR:8606212954 CR:JAGad82141 )
	One kernel structure associated with the mapped file is
	based on the type of the process address space.  Thus a 32
	bit process creates a 32 bit mapped file kernel structure.
	The kernel structure should be independent from the type of
	the calling process.

	Resolution:
	The creation of the kernel structure associated with a mmap
	file has been made independent from the type of the process.

	( SR:8606188767 CR:JAGad57983 )
	The mmap(2) system call ignores the MAP_GLOBAL flag when
	used in combination with the MAP_SHARED and MAP_ANONYMOUS
	flags.

	Resolution:
	Checking for the MAP_GLOBAL option in mmap(2) when the
	MAP_ANONYMOUS and MAP_SHARED flags are used.  The allocation
	is then made from the appropriate quadrant.

	( SR:8606205797 CR:JAGad74972 )
	This panic results from trying to free the same ID twice as
	a result of the system allowing a mapping that overlaps with
	an existing mapping of text.

	Resolution:
	mmap(2) calls with addresses that overlap with existing text
	mappings will now fail.

	PHKL_25129:
	( SR:8606215349 CR:JAGad84536 )
	In one corner case the fix for "PHKL_24679" overwrites some
	memory beyond the allocated limit for an internal data
	structure.

	Resolution:
	Overwriting of memory is fixed by checking for a corner
	case.

	PHKL_24679:
	( SR:8606201639 CR:JAGad70813 )
	When ever a range of virtual address space is allocated for
	a thread the OS always searches for a hole from the highest
	possible address so as to give maximum possible space for
	the heap to grow. When large number of threads are created
	and all space in the proximity of the highest address is
	occupied it takes a while before the search could get a
	hole of required size, which slows down the thread creation
	process.

	Resolution:
	The fix to the problem is to keep a hint for starting the
	search next time so we do not have to start always from the
	highest address.

	PHKL_25227:
	( SR:8606188435 CR:JAGad57643 )
	The kernel code was limited by design to allow narrow
	mode mmap64() to 2GB or less only.

	Resolution:
	The kernel was enhanced to remove this limitation. Narrow
	mode mmap64() can now map up to 4GB.

	PHKL_24743:
	( SR:8606205558 CR:JAGad74733 ) Duplicate
	( SR:8606204858 CR:JAGad74036 )
	Unnecessary acquisition and release of region locks in
	common execution paths can cause unpredictable performance
	degradation.

	Resolution:
	ltered code path to minimize frequency of region
	lock/release in procedures mmap_file_pieces() and
	mmap_file_object().  Note that this is only one of the
	causes for unpredictable performance degradation in mmap.

	PHKL_24073:
	( SR:8606189205 CR:JAGad58421 )
	This problem was caused by a lock ordering problem between
	VM and JFS. JFS can call VM while holding an inode lock;
	the routines called may require a vas lock. VM can call JFS
	while holding a vas lock; the routines called may require
	an inode lock. If we get unlucky, we hit the same vas/inode
	lock combination from both directions, and the threads
	deadlock. Because the vas lock potentially held by VM is
	a per process resource, this situation can only be
	encountered by a multithreaded process.

	Resolution:
	The fix is to have the VM routine drop the vas lock before
	calling the file system code; fortunately, the VM routine
	can safely drop and reacquire the lock around the call ...
	it was mostly holding it to avoid dropping and reacquiring
	it repeatedly in a loop.

SR: 
	8606188435 8606188767 8606189205 8606193208 8606201639
	8606204858 8606205558 8606205797 8606212954 8606215349
	8606230627

Patch Files: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libvm-pdk.a(hdl_policy.o)
	/usr/conf/lib/libvm.a(vm_mmap.o)
	/usr/conf/lib/libvm.a(vm_pregion.o)
	/usr/conf/lib/libvm.a(vm_vas.o)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libvm-pdk.a(hdl_policy.o)
	/usr/conf/lib/libvm.a(vm_mmap.o)
	/usr/conf/lib/libvm.a(vm_pregion.o)
	/usr/conf/lib/libvm.a(vm_vas.o)

what(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	/usr/conf/lib/libvm-pdk.a(hdl_policy.o):
		hdl_policy.c $Date: 2001/10/31 14:13:17 $Revision: r
			11.11/3 PATCH_11.11 (PHKL_25614)
	/usr/conf/lib/libvm.a(vm_mmap.o):
		vm_mmap.c $Date: 2001/10/31 14:13:17 $Revision: r11.
			11/4 PATCH_11.11 (PHKL_25614)
	/usr/conf/lib/libvm.a(vm_pregion.o):
		vm_pregion.c $Date: 2002/01/25 16:45:06 $Revision: r
			11.11/3 PATCH_11.11 (PHKL_26233)
	/usr/conf/lib/libvm.a(vm_vas.o):
		vm_vas.c $Date: 2001/07/23 16:14:54 $Revision: r11.1
			1/1 PATCH_11.11 (PHKL_24679)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	/usr/conf/lib/libvm-pdk.a(hdl_policy.o):
		hdl_policy.c $Date: 2001/10/31 14:13:17 $Revision: r
			11.11/3 PATCH_11.11 (PHKL_25614)
	/usr/conf/lib/libvm.a(vm_mmap.o):
		vm_mmap.c $Date: 2001/10/31 14:13:17 $Revision: r11.
			11/4 PATCH_11.11 (PHKL_25614)
	/usr/conf/lib/libvm.a(vm_pregion.o):
		vm_pregion.c $Date: 2002/01/25 16:45:06 $Revision: r
			11.11/3 PATCH_11.11 (PHKL_26233)
	/usr/conf/lib/libvm.a(vm_vas.o):
		vm_vas.c $Date: 2001/07/23 16:14:54 $Revision: r11.1
			1/1 PATCH_11.11 (PHKL_24679)

cksum(1) Output: 
	
	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP:
	2159002234 18940 /usr/conf/lib/libvm-pdk.a(hdl_policy.o)
	233533624 32276 /usr/conf/lib/libvm.a(vm_mmap.o)
	3289452295 16560 /usr/conf/lib/libvm.a(vm_pregion.o)
	301446982 15668 /usr/conf/lib/libvm.a(vm_vas.o)

	OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP:
	1988923650 42680 /usr/conf/lib/libvm-pdk.a(hdl_policy.o)
	3546936449 70072 /usr/conf/lib/libvm.a(vm_mmap.o)
	283607748 32976 /usr/conf/lib/libvm.a(vm_pregion.o)
	1617405510 36288 /usr/conf/lib/libvm.a(vm_vas.o)

Patch Conflicts: None

Patch Dependencies: None

Hardware Dependencies: None

Other Dependencies: None

Supersedes: 
	PHKL_25614 PHKL_25227 PHKL_25129 PHKL_24743 PHKL_24679 PHKL_24073

Equivalent Patches: None

Patch Package Size: 300 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_26233

	5. Run swinstall to install the patch:

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

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

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

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

		dd if=/tmp/PHKL_26233.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.