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_29080

» 

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_30073
The most recent patch is :  PHKL_30073

   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_29080

Patch Description: s700_800 11.00 dyn semphores; big data space; msgmn; msgsnd

Creation Date: 03/06/05

Post Date: 03/07/10

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.KERN2-RUN,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
	OS-Core.KERN2-RUN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP

Automatic Reboot?: Yes

Status: General Superseded

Critical: 
	Yes
	PHKL_29080: HANG
		Application hang.

Category Tags: 
	defect_repair enhancement general_release critical
	halts_system

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

Symptoms: 
	PHKL_29080:
	( SR:8606306960 CR:JAGae69995 )
	Applications may hang using Sys V message sends.

	PHKL_26136:
	( SR:8606229781 CR:JAGad98832 )
	Can not allocate new semaphores despite enough space being
	available.

	PHKL_25417:
	( SR:8606198599 CR:JAGad67788 )
	Can not allocate new semaphores despite enough space being
	available.

	PHKL_21039:
	The maximum number of IPC semaphores per set (SEMMSL) is
	presently a hard-coded value with a limit of 2048 in
	./sys/sem.h.; it is not a kernel tunable.

	PHKL_21518:
	( 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
	(SysV IPC changes) plus PHKL_21684 (pstat(2) support) and
	PHKL_21778 (new tunables range limits, used by SAM).
	PHKL_21684 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_21684, this change will have no impact
	on the system.

	PHKL_20901:
	(SR: 8606110995 CR: JAGab83745)
	Call to semget() with number of semaphores (nsems) set to
	zero correctly returns EINVAL but still allocates semaphore.

	PHKL_20229:
	( SR: 8606107525 DTS: JAGab77768 )
	This patch is one of 8 patches necessary to add support
	for the 3 Gb private address space feature.

Defect Description: 
	PHKL_29080:
	( SR:8606306960 CR:JAGae69995 )
	If during the usage of message operations, an application
	erroneously attempts a message send that is too large,
	the application can hang and become unkillable.  This can
	happen only if the system and the application are setup
	in the following manner:

	Patches PHKL_26136, PHKL_26008 and PHKL_24487 need to be
	installed on the system to allow the tuning of the msgmnb
	>65535 (enable big message queues) and msgmax >65535
	(allow big individual messages).

	The application must be compiled without the
	-D__BIGMSGQUEUE_ENABLED option and it attempts to enqueue
	a large single message >65535 bytes.

	Resolution:
	The application hang is due to the code not releasing
	the semaphore lock in the error reporting code.  The
	resolution is to release this lock when reporting the
	error.

	PHKL_26136:
	( SR:8606229781 CR:JAGad98832 )
	The space allocated for use by semaphores becomes fragmented
	under heavy use of semaphores.  Semaphore allocation may be
	prevented due to this fragmentation.

	Resolution:
	System V IPC semaphore allocation has been replaced by full
	dynamic allocation, so the memory space for semaphores is
	no longer limited to that allocated at boot time.

	PHKL_25417:
	( SR:8606198599 CR:JAGad67788 )
	The space allocated for use by semaphores becomes fragmented
	under heavy use of semaphores.  Semaphore allocation may be
	prevented due to this fragmentation.

	Resolution:
	The semmap[] structure originally used to allocate a new
	semaphore is maintained unless there is no longer a memory
	chunk that can fit it due to fragmentation. At that point
	the needed chunk is dynamically allocated through malloc().

	PHKL_21039:
	( SR: 8606126584 DTS: JAGac57149 )
	Description:
	Enhancement to the IPC semaphore sub-system:  changes the
	SEMMSL hard-coded value of 2048 to a kernel tunable with a
	default value of 2048.

	Resolution:
	SEMMSL, the hard-coded max number of semaphores per ID, has
	been superceded by a new 'semmsl_override' kernel tunable
	which will have a minimum (and default) value of 2048. SAM
	can increase the value of the new tunable up to a maximum
	of 10240. The value of SEMMSL read by pstat() will still
	correctly reflect the value set in semmsl_override.

	PHKL_21518:
	( SR: 5003460949 DTS: JAGab15326 )
	This patch, PHKL_21518, is the primary patch of a
	three-patch-set which, all together, increase the SysV IPC
	MSGMNB message queue capacity from the 16bit(ushort) limit
	of 65Kbytes to a 32bit(int) (64Mbyte core-hpux limit)
	maximum.  The following patches are required:

	  o PHKL_21518 (this patch):  providing the core
	    functionality for the enhancement

	  o PHKL_21684, providing pstat(2) support

	  o PHKL_21778, providing the new tunables limit values for
	    SAM

	The following patch will make maintenence of the
	patch-set enhancement possible via SAM:

	  o PHCO_21187 providing the necessary SAM upgrades

	To enable this enhancement after installing all of the
	above patches, user applications are required to either
	include a #define __BIGMSGQUEUE_ENABLED in every application
	or use a -D__BIGMSGQUEUE_ENABLED flag and then re-compile.

	Without this patch set, applications are limited to <=64k
	of message queue space.  With this patch set installed,
	the limit is increased to <=64M.

	Not installing the PHKL_21518 (sysV_msg.o) patch will
	mean that the large message queue enhancement is not
	available.

	Resolution:
	After the above patch set is installed, the following
	guidelines, rules and issues will apply:

	Note; in this context:
	  o 'small-queue' refers queues <=64Kbytes
	  o 'big-queue' refers queues >64Kbytes
	  o 'patch-set' refers to at least the minimum patch
	       set of PHKL_21518 plus PHKL_21684

	  o Old 'small-queue' apps will run unaffected whether
	    they are re-compiled or not.

	  o New 'big-queue' apps can ignore the patch and run
	    with the old 'small-queue' model and remain unaffected
	    by the patches

	  Application guidelines:
	  -----------------------
	  o Read all applicable text in /usr/include/sys/ipc.h,
	    /usr/include/sys/msg.h and the patch documents

	  o New 'big-queue' apps can enable 32bit queues by
	    #define __BIGMSGQUEUE_ENABLED PRIOR to ipc.h and
	    msg.h #includes  -OR-  use -D__BIGMSGQUEUE_ENABLED
	    when compiling

	  o If an application attempts to use message queues larger
	    than 64K (by defining __BIGMSGQUEUE_ENABLED) and the
	    PHKL_21684 (pstat.o) patch is missing, an EINVAL error
	    code will be returned (from msgget(2)) and a message
	    will be placed into the system log (just on first
	    occurrence).

	  o Messages can be passed between new 'big-queue' apps
	    and old 'small-queue' apps but with some restrictions

	  o If a new 'big-queue' app (as root) expands its queue
	    from less-than max ushort [created as a 'small-queue']
	    to greater-than maxushort, that queue will then
	    automatically be re-tagged as a 'big-queue'.

	  o Old apps using msgctl(IPC_STAT) will report msg_qbytes
	    and msg_cbytes as 'full' for any real value of
	    msg_qbytes/msg_cbytes => max ushort; thus the
	    msgctl(IPC_STAT) result can 'under-report' msg_qbytes
	    and/or msg_cbytes.  However, pstat results will always
	    correctly report msg_cbytes.  It is not known how apps
	    may interpret this condition.

	  o Applications using queues >64k may misbehave where that
	    queue is used in common with a client or other
	    application that was not re-compiled with the #define
	    __BIGMSGQUEUE_ENABLED.

	  o There is no effect on any program if the admin keeps
	    the max queue size <=64K.  Even where the admin
	    configures the message queue size >64K, there is no
	    effect as long as no programs sharing a common message
	    queue have been recompiled with the special symbol
	    __BIGMSGQUEUE_ENABLED.

	  o A program compiled with __BIGMSGQUEUE_ENABLED defined
	    (and the patch-set installed) which is later executed on
	    a system without the patch-set may:

	    o fail a msgget(IPC_CREAT) with errno set to ENOENT
	    o or succeed in the msgget() if the queue already
	      exists, but it will not grow beyond MSGMNB/64K in size
	      or return zero for queue sizes from msgctl(IPC_STAT)
	    o or set the queue size via msgctl(IPC_SET) to some
	      arbitrary size (<=64K) because the new fields were
	      not initialized int the old structure.

	  o The "GROUP", "CBYTES", "QNUM" and "QBYTES" fields listed
	    by the 'ipcs' command may "run together" when the queue
	    size exceeds 999,999

	PHKL_20901:
	(SR: 8606110995 CR: JAGab83745)
	An uninitialized variable (sem_perm.mode) caused the
	semaphore to still remain allocated after calling procedure
	ipcgetperm().

	Resolution:
	This variable is now correctly being reset to 0 after
	calling ipcgetperm().

	PHKL_20229:
	( SR: 8606107525 DTS: JAGab77768 )
	This is one of 8 patches necessary to add support for the
	3 Gb private address space feature. This feature allows a
	process to have a private 3rd quadrant (normally the 3rd
	quadrant, which is a 1 Gb range of address space from
	0x80000000 to 0xC0000000, is used for shared objects). The
	chatr command must be used to enable this feature for an
	executable (chatr +q3p enable <a.out>). Note that this
	feature is only enabled for 32 bit processes running on the
	64 bit version of HP-UX.

	The other 7 patches necessary to enable this feature are
	PHKL_20222, PHKL_20223, PHKL_20224, PHKL_20225, PHKL_20226,
	PHKL_20227 and PHKL_20228. Each patch may be installed
	independently of the others - if enabling the 3 Gb private
	address space feature is not desired. If fewer than all
	8 patches are installed, the 3 Gb private address space
	feature will not be enabled. The code in this patch that
	is part of this feature will not have any impact on the
	system until all 8 patches are installed.

	Resolution:
	A subset of the code to support the 3 Gb private address
	space feature was added. When all 8 patches are installed
	the following code changes to support this feature will
	have been added:

	    1) Code to recognize the request for a private 3rd
	       quadrant (Q3) during exec() of an executable.
	       An executable that requests a private 3rd
	       quadrant will be referred to as a q3p process
	       below.
	    2) Code to prevent allocation of shared objects
	       in q3p processes.
	    3) Code to allow data to extend over the 2nd/3rd
	       quadrant boundary for q3p processes.
	    4) Code to put the stack for the primary thread
	       in the 3rd quadrant for q3p processes.
	    5) Code to map a shared library into the private
	       address space if there is no more room in the
	       4th shared quadrant for q3p processes.

Enhancement: 
	No (superseded patches contained enhancements)
	PHKL_29080:
		Enhancements were delivered in a patch this one has
		superseded.  Please review the Defect Description
		text for more information.

SR: 
	5003460949 8606107525 8606110995 8606126584 8606198599
	8606229781 8606306960

Patch Files: 
	
	OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/conf/h/ipc.h
	/usr/conf/h/msg.h

	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/include/sys/ipc.h
	/usr/include/sys/msg.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(sysV_ipc.o)
	/usr/conf/lib/libhp-ux.a(sysV_msg.o)
	/usr/conf/lib/libhp-ux.a(sysV_sem.o)
	/usr/conf/lib/libhp-ux.a(sysV_shm.o)

	OS-Core.KERN2-RUN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/master.d/sysvipc-tune
	/usr/conf/space.h.d/sysvipc-tune.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(sysV_ipc.o)
	/usr/conf/lib/libhp-ux.a(sysV_msg.o)
	/usr/conf/lib/libhp-ux.a(sysV_sem.o)
	/usr/conf/lib/libhp-ux.a(sysV_shm.o)

	OS-Core.KERN2-RUN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/master.d/sysvipc-tune
	/usr/conf/space.h.d/sysvipc-tune.h

what(1) Output: 
	
	OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/conf/h/ipc.h:
		ipc.h $Date: 2000/06/05 13:48:46 $Revision: r11ros/4
			 PATCH_11.00 (PHKL_21518) MSGMNB
	/usr/conf/h/msg.h:
		msg.h $Date: 2000/06/22 10:02:44 $Revision: r11ros/4
			 PATCH_11.00 (PHKL_21518) MSGMNB

	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	/usr/include/sys/ipc.h:
		ipc.h $Date: 2000/06/05 13:48:46 $Revision: r11ros/4
			 PATCH_11.00 (PHKL_21518) MSGMNB
	/usr/include/sys/msg.h:
		msg.h $Date: 2000/06/22 10:02:44 $Revision: r11ros/4
			 PATCH_11.00 (PHKL_21518) MSGMNB

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/lib/libhp-ux.a(sysV_ipc.o):
		sysV_ipc.c $Date: 2000/05/26 14:29:08 $Revision: r11
			ros/2 PATCH_11.00 (PHKL_21518) MSGMNB
	/usr/conf/lib/libhp-ux.a(sysV_msg.o):
		sysV_msg.c $Date: 2003/05/29 13:22:11 $Revision: r11
			ros/9 PATCH_11.00(PHKL_29080)
	/usr/conf/lib/libhp-ux.a(sysV_sem.o):
		sysV_sem.c $Date: 2002/01/18 15:11:40 $Revision: r11
			ros/11 PATCH_11.00 (PHKL_26136)
	/usr/conf/lib/libhp-ux.a(sysV_shm.o):
		sysV_shm.c $Date: 2000/06/05 13:48:46 $Revision: r11
			ros/7 PATCH_11.00 (PHKL_21518) MSGMNB

	OS-Core.KERN2-RUN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	/usr/conf/master.d/sysvipc-tune:
		sysvipc-tune $Date: 2000/09/13 17:03:15 $Revision: r
			11ros/1 PATCH_11.00 (PHKL_21039)
	/usr/conf/space.h.d/sysvipc-tune.h:
		sysvipc-tune.h $Date: 2000/09/13 17:03:15 $Revision:
			 r11ros/1 PATCH_11.00 (PHKL_21039)

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/lib/libhp-ux.a(sysV_ipc.o):
		sysV_ipc.c $Date: 2000/05/26 14:29:08 $Revision: r11
			ros/2 PATCH_11.00 (PHKL_21518) MSGMNB
	/usr/conf/lib/libhp-ux.a(sysV_msg.o):
		sysV_msg.c $Date: 2003/05/29 13:22:11 $Revision: r11
			ros/9 PATCH_11.00(PHKL_29080)
	/usr/conf/lib/libhp-ux.a(sysV_sem.o):
		sysV_sem.c $Date: 2002/01/18 15:11:40 $Revision: r11
			ros/11 PATCH_11.00 (PHKL_26136)
	/usr/conf/lib/libhp-ux.a(sysV_shm.o):
		sysV_shm.c $Date: 2000/06/05 13:48:46 $Revision: r11
			ros/7 PATCH_11.00 (PHKL_21518) MSGMNB

	OS-Core.KERN2-RUN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	/usr/conf/master.d/sysvipc-tune:
		sysvipc-tune $Date: 2000/09/13 17:03:15 $Revision: r
			11ros/1 PATCH_11.00 (PHKL_21039)
	/usr/conf/space.h.d/sysvipc-tune.h:
		sysvipc-tune.h $Date: 2000/09/13 17:03:15 $Revision:
			 r11ros/1 PATCH_11.00 (PHKL_21039)

cksum(1) Output: 
	
	OS-Core.CORE-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	1417744864 5980 /usr/conf/h/ipc.h
	1462845435 9015 /usr/conf/h/msg.h

	ProgSupport.C-INC,fr=B.11.00,fa=HP-UX_B.11.00_32/64,v=HP:
	1417744864 5980 /usr/include/sys/ipc.h
	1462845435 9015 /usr/include/sys/msg.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	3343021987 1748 /usr/conf/lib/libhp-ux.a(sysV_ipc.o)
	3746105385 15880 /usr/conf/lib/libhp-ux.a(sysV_msg.o)
	1361464872 21220 /usr/conf/lib/libhp-ux.a(sysV_sem.o)
	2328942000 11048 /usr/conf/lib/libhp-ux.a(sysV_shm.o)

	OS-Core.KERN2-RUN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP:
	1530785713 349 /usr/conf/master.d/sysvipc-tune
	1858305369 246 /usr/conf/space.h.d/sysvipc-tune.h

	OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	2688313537 3720 /usr/conf/lib/libhp-ux.a(sysV_ipc.o)
	2708463588 41888 /usr/conf/lib/libhp-ux.a(sysV_msg.o)
	293780355 48648 /usr/conf/lib/libhp-ux.a(sysV_sem.o)
	4076208488 26728 /usr/conf/lib/libhp-ux.a(sysV_shm.o)

	OS-Core.KERN2-RUN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP:
	1530785713 349 /usr/conf/master.d/sysvipc-tune
	1858305369 246 /usr/conf/space.h.d/sysvipc-tune.h

Patch Conflicts: None

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

Hardware Dependencies: None

Other Dependencies: 
	PHKL_21518:  PHKL_21684, PHKL_21778, and PHKL_21518 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.

Supersedes: 
	PHKL_20901 PHKL_20229 PHKL_26136 PHKL_25417 PHKL_21518 PHKL_21039

Equivalent Patches: 
	PHKL_29070:
	s700: 11.11
	s800: 11.11

Patch Package Size: 150 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_29080

	5. Run swinstall to install the patch:

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

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

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

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

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

Special Installation Instructions: 
	Max number of semas per ID
	--------------------------
	  For the PHKL_21039 patch, SAM is used to change the
	  maximum number of semas per ID (previously SEMMSL) by
	  adjusting the new 'semmsl_override' tunable.  The SEMMNS
	  (max number of semas in the system) tunable value MUST be
	  greater than or equal to 'semmsl_override' otherwise
	  applications will be limited to the smaller of the two
	  values.

	  SEMMNS   MAX # of semas in the system [must be >= SEMMSL]
	  SEMMSL   MAX # of semas per ID [presently 64 IDs MAX]

	  To make the semas-per-ID (previously SEMMSL) adjustable,
	  the 'semmsl_override' kernel tunable has been added.  The
	  value can be set and adjusted up from (the minimum and
	  default value of 2048) to an arbitrary maximum of 10240
	  (0x2800).  This global 'semmsl_override', is the only way
	  to adjust the maximum number of semas per ID and the
	  changes take effect only after re-boot.

	  Because a new tunable is being added, it is highly
	  reccommended that you install patch PHCO_19047, which has
	  the necessary SAM upgrades.  Without the upgrades, SAM
	  will still be aware of the new tunable but will not be
	  aware of the new range limitations for that tunable.
	  Therefore, SAM will show a warning message to this effect
	  when attempting to access the tunable.  With PHCO_19047
	  installed, SAM will automatically update the range values.
	  The tunable can still be set by SAM using values within
	  the range limits specified in the
	  /usr/conf/master.d/sysvipc-tune file but it is not the
	  reccommended procedure as SAM will not perform the
	  necessary checks and SAM will not guarantee a successful
	  kernel creation if the tunable is modified.

	SysV IPC MSGMNB message queue capacity
	--------------------------------------
	  o The PHKL_21518 (sysV_msg.o) (or superseding) patch
	    and the pstat.o patch (PHKL_21684 or superseding patch)
	    MUST BOTH be installed on the system together to enable
	    the MSGMNB enhancement.

	  o It is also highly recommended that patches PHKL_21778
	    (core-hpux) PHCO_21187 (with the necessary SAM
	    enhancements) also be installed.

	  o Installing only the PHKL_21778 (core-hpux) patch
	    will allow the admin to set MSGMNB >64k but the change
	    will have no effect as the kernel will hard-limit the
	    value to 64k.

	  o Applications compiled with __BIGMSGQUEUE_ENABLED will
	    not run on systems which do not have the appropriate
	    patches installed.

	  o Not having either the PHKL_21518 (sysV_msg.o) patch or
	    the PHKL_21684 (pstat.o) patch installed means that
	    applications compiled with the #define
	    __BIGMSGQUEUE_ENABLED may not run or may not run
	    correctly.

	  o Not installing PHKL_21778 (core-hpux) and PHCO_21187
	    (SAM) patches will make it more difficult to adjust the
	    kernel message tunables.

	  o If an application attempts to use message queues larger
	    than 64K (by defining __BIGMSGQUEUE_ENABLED) and the
	    PHKL_21684 (pstat.o) companion patch is missing, an
	    EINVAL error code will be returned (from msgget(2))
	    and a message will be placed into the system log (but
	    only on the first occurrence).

	  Kernel Tunables:
	  ----------------
	  o Follow the procedures below for setting the kernel
	    tunables and tunable ranges using SAM.

	  o Follow these guidelines for setting new message queue
	    kernel tunables:

	    o MSGMNB [max number of bytes per queue]
	      Set >= the largest queue required.  If single large
	      messages are expected, also set >= the largest single
	      message expected.

	    o MSGMAX [max message size in bytes]
	      Set <= MSGMNB dependent on the need to use single
	      large messages which may fill the queue.

	    o MSGTQL [max number of message headers]
	      Set >= the largest number of messages expected.

	    o MSGSSZ [number of bytes in one "segment"]
	      MSGSEG [number of segments]
	      MSGSSZ*MSGSEG [total message storage space]
	        o Set MSGSSZ*MSGSEG >= at least to the maximum a
	          single large message queue can hold.
	        o If multiple large queues are expected, that
	          will need to be factored in.
	        o MSGSSZ is the "granularity" for message storage.
	          If MSGSSZ=256 then a 257-byte message will
	          consume two segments.
	        o Note that MSGSEG must be < 32768 so that if 32M
	          were allocated, the segment size MSGSSZ would
	          need to be set to 1K bytes.

	  Updating MSGMNB/MSGMAX Tunable Ranges:
	  --------------------------------------
	  Presently, the "range" values in master/core-hpux will
	  prevent users of SAM from configuring MSGMNB and MSGMAX to
	  >64K.  In order to allow larger queues, the admin should
	  install PHCO_21187 (SAM) patch as a companion to
	  PHKL_21778 (core-hpux) which will automatically update
	  SAM's range values.  If that is not desired, the admin can
	  follow the following special procedure outlined below:

	  SAM, as installed on customer systems, may prevent the
	  administrator from selecting queue (and message) sizes in
	  excess of 64Kbytes.  This is due to the range values in
	  /usr/conf/master.d/core-hpux or SAM's "params.tx" file
	  (significant in older versions of SAM).

	  We are providing the PHKL_21778 (core-hpux) patch for the
	  "core-hpux" files (for both 32bit and 64bit kernels).
	  However, due to SAM version differences, the customer has
	  several procedural options, as described below.

	  o If installation of the PHKL_21778 (core-hpux) patch to
	    /usr/conf/master.d/core-hpux is desired, follow
	    these steps:

	    make a backup copy of /usr/conf/master.d/core-hpux
	    install the patch
	    inspect changes to /usr/conf/master.d/core-hpux

	  o Note that installation of this patch will overwrite
	    any local changes, these should be merged back in.

	  o This particular patch will make the following changes:

	    Old:
	    *range msgmax<=64*1024
	    *range msgmnb<=64*1024

	    New:
	    *range msgmax<=64*1024*1024
	    *range msgmnb<=64*1024*1024

	  o Any other changes are due to: having not been
	    previously up-to-date with superseded patches to
	    this file; superseding patches to this file; or
	    prior local changes to this file.

	  o Once statisfied with /usr/conf/master.d/core-hpux,
	    perform one of the following procedures.

	    a) If the PHCO_21187 (SAM) patch is installed, the
	       procedure is:

	       - make backup copy of /var/sam/boot.config
	       - execute /usr/sam/lbin/getkinfo -b
	       - inspect changes made to /var/sam/boot.config

	       o The "KC_PARAM_MAX" values for "msgmax" and
	         "msgmnb" should have change from 65536 (64Kbytes)
	         to 67108863 (64Mbytes).  If there are any other
	         changes to this file, they represent additional
	         core-hpux changes from superseding patches,
	         or changes which from superseded patches,
	         but not rolled into SAM.

	       o Start SAM, change MSGMAX/MSGMNB kernel parameters
	         to desired values.  These values will depend upon
	         the application's needs.  You may also need to
	         adjust the MSGSEG/MSGSSZ parameters to allocate
	         more memory for total message storage (the upper
	         limits for these do not change).  Then regenerate
	         and reboot the kernel in the usual manner.

	    or:

	    b) If the PHCO_21187 (SAM) patch is not installed,
	       install it then follow procedure for "a".

	    or:

	    c) If installing the PHCO_21187 (SAM) patch is not
	       desired, first:

	       o Edit the /usr/sam/lib/kc/params.tx file to change
	         the upper limits:

	         Old:
	         msgmax:65536:0:Message:8192:Message Max Size...
	         msgmnb:0x10000:0:Message:16384:Max Number ...

	         New:
	         msgmax:67108863:0:Message:8192:Message Max Size...
	         msgmnb:67108863:0:Message:16384:Max Number...

	       o Do not change any other message queue parameters.

	       o After editing, follow the procedure under "a", as
	         if the patch was installed.

	  o If installation of the PHKL_21778 (core-hpux) patch is
	    not desired (despite the recommendation that it be
	    installed), then the administrator will need to edit
	    /usr/conf/master.d/core-hpux directly to change the
	    upper limits:

	          Old:
	          *range msgmax<=64*1024
	          *range msgmnb<=64*1024

	          New:
	          *range msgmax<=64*1024*1024
	          *range msgmnb<=64*1024*1024

	        o Once this is done, follow one of the above
	          procedures, "a", "b", or "c", as appropriate.

	  o If SAM is not the means for kernel configuration at
	    the site, the PHKL_21778 (core-hpux) patch (or editing
	    core-hpux may not be needed.  In this case the
	    tunables for MSGMNB, MSGMAX, MSGSEG, and MSGSSZ should
	    be modified, and the kernel regenerated and rebooted,
	    in the usual manner for the site.  (For example: edit
	    the /stand/system file then build a new kernel via
	    'mk_kernel -s /stand/system'). The maximum for MSGMNB
	    and MSGMAX is now 67108863 rather than 65536.

	3GB Private Address Space
	-------------------------
	  This patch contains part of the enhancement to enable the
	  3 Gb private address space feature.  It is one of 8
	  patches.  The other 7 patches necessary to enable this
	  feature are PHKL_20222, PHKL_20223, PHKL_20224,
	  PHKL_20225, PHKL_20226, PHKL_20227 and PHKL_20228.  Each
	  patch may be installed independently of the others - if
	  enabling the 3 Gb private address space feature is not
	  desired.  If fewer than all 8 patches are installed, the 3
	  Gb private address space feature will not be enabled.  The
	  code in this patch that is part of this feature will not
	  have any impact on the system until all 8 patches are
	  installed.

	  In order to be able to use this feature you will need to
	  reconfigure the kernel with a larger value for the kernel
	  configurable variable "maxdsiz".  In order to do this with
	  SAM, you will also need to install patch PHKL_20174.
	  Without PHKL_20174 installed SAM will not allow maxdsiz to
	  exceed ~1.9 Gb.  Note that if PHKL_20174 is not installed
	  it is still possible to manually configure a kernel with a
	  larger value of maxdsiz (up to 3 Gb) using config(1M).




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