 |
» |
|
|
 |
 |
 |
|
|
 |
|
Patch Name: PHCO_25226
Patch Description: s700_800 11.11 Initialised TLS, Psets, Mutex performance
Creation Date: 01/10/23
Post Date: 01/11/16
Hardware Platforms - OS Releases:
s700: 11.11
s800: 11.11
Products: N/A
Filesets:
OS-Core.C-MIN-32ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
OS-Core.C-MIN-64ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
OS-Core.CORE-64SLIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
OS-Core.CORE-SHLIBS,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
ProgSupport.PAUX-ENG-A-MAN,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP
Automatic Reboot?: No
Status: General Superseded
Critical:
Yes
PHCO_25226: OTHER
Performance degradation and sudden increase in
CPU utilization due to mutex contention.
Category Tags:
defect_repair enhancement general_release critical
manual_dependencies
Path Name: /hp-ux_patches/s700_800/11.X/PHCO_25226
Symptoms:
PHCO_25226:
( SR:8606186378 CR:JAGad55582 )
Heavy mutex contention seen when large number of
threads try to acquire a single mutex lock, leading
to performance degradation and sudden jump in CPU
utilization.
PHCO_24584:
( SR:8606200799 CR:JAGad69975 )
This patch is a member of a set of patches needed to enable
the HP-UX Processor Sets product (PROCSETS). When PROCSETS
product is installed, it will install the full set of
required patches for that product, including this patch.
If the HP-UX Processor Sets product is not installed, this
change will have no impact on your system.
PHCO_23846:
( SR:8606184540 CR:JAGad53747 )
This enhancement is to support initialized tls support for
Fortran OpenMP. Changes are made in pthread library.
Defect Description:
PHCO_25226:
( SR:8606186378 CR:JAGad55582 )
When large number of threads contend for a single
mutex, there is lot of contention for the internal
locks used in the library. This results in
unnecessary yielding and sleeping by the waiters
preventing the lock owner to complete the job.
Resolution:
Modified existing implementation to reduce contention
and dependency on the internal lock.
PHCO_24584:
( SR:8606200799 CR:JAGad69975 )
This patch contains minor enhancements in pthreads library
to support the HP-UX Processor Sets product.
Resolution:
Enhancements added to support new pthread_pset_bind_np()
interface in pthreads library when Processor Sets product
is enabled.
PHCO_23846:
( SR:8606184540 CR:JAGad53747 )
This is an enhancement for Initialized Thread local storage
support for Fortran OpenMP.
Resolution:
Libpthread allocates memory for TLS and it is initialized
to zero. With new enhancement the allocated TLS memory will
be initialized with the initialization image for each load
module the pointer to which is passed by libc/linker.
SR:
8606184540 8606186378 8606200799
Patch Files:
OS-Core.C-MIN-32ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/libpthread.a
/usr/lib/libpthread_tr.a
OS-Core.C-MIN-64ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/pa20_64/libpthread.a
/usr/lib/pa20_64/libpthread_tr.a
OS-Core.CORE-64SLIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/pa20_64/libpthread.1
/usr/lib/pa20_64/libpthread_tr.1
OS-Core.CORE-SHLIBS,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/libpthread.1
/usr/lib/libpthread_tr.1
ProgSupport.PAUX-ENG-A-MAN,fr=B.11.11,
fa=HP-UX_B.11.11_32/64,v=HP:
/usr/share/man/man3.Z/pthread_ldom_bind_np.3t
/usr/share/man/man3.Z/pthread_ldom_id_np.3t
/usr/share/man/man3.Z/pthread_num_ldomprocs_np.3t
/usr/share/man/man3.Z/pthread_num_ldoms_np.3t
/usr/share/man/man3.Z/pthread_num_processors_np.3t
/usr/share/man/man3.Z/pthread_processor_bind_np.3t
/usr/share/man/man3.Z/pthread_processor_id_np.3t
/usr/share/man/man3.Z/pthread_pset_bind_np.3t
/usr/share/man/man3.Z/pthread_spu_to_ldom_np.3t
what(1) Output:
OS-Core.C-MIN-32ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/libpthread.a:
Pthread Interfaces
$Revision: libpthread.a: @(#) depot-32pa CUP11.11
_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue Oc
t 23 14:04:19 PDT 2001 $
/usr/lib/libpthread_tr.a:
Pthread Interfaces
$Revision: libpthread_tr.a: @(#) depot-32pa CUP11
.11_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue
Oct 23 14:05:08 PDT 2001 $
OS-Core.C-MIN-64ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/pa20_64/libpthread.a:
Pthread Interfaces
$Revision: libpthread.a: @(#) depot-64pa CUP11.11
_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue Oc
t 23 14:12:07 PDT 2001 $
/usr/lib/pa20_64/libpthread_tr.a:
Pthread Interfaces
$Revision: libpthread_tr.a: @(#) depot-64pa CUP11
.11_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue
Oct 23 14:12:57 PDT 2001 $
OS-Core.CORE-64SLIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/pa20_64/libpthread.1:
Pthread Interfaces
$Revision: libpthread.1: @(#) depot-64pa CUP11.11
_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue Oc
t 23 14:08:13 PDT 2001 $
/usr/lib/pa20_64/libpthread_tr.1:
Pthread Interfaces
$Revision: libpthread_tr.1: @(#) depot-64pa CUP11
.11_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue
Oct 23 14:09:07 PDT 2001 $
OS-Core.CORE-SHLIBS,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
/usr/lib/libpthread.1:
Pthread Interfaces
$Revision: libpthread.1: @(#) depot-32pa CUP11.11
_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue Oc
t 23 14:00:09 PDT 2001 $
/usr/lib/libpthread_tr.1:
Pthread Interfaces
$Revision: libpthread_tr.1: @(#) depot-32pa CUP11
.11_BL2001_1023_2 PATCH_11.11 PHCO_25226 Tue
Oct 23 14:01:07 PDT 2001 $
ProgSupport.PAUX-ENG-A-MAN,fr=B.11.11,
fa=HP-UX_B.11.11_32/64,v=HP:
/usr/share/man/man3.Z/pthread_ldom_bind_np.3t:
None
/usr/share/man/man3.Z/pthread_ldom_id_np.3t:
None
/usr/share/man/man3.Z/pthread_num_ldomprocs_np.3t:
None
/usr/share/man/man3.Z/pthread_num_ldoms_np.3t:
None
/usr/share/man/man3.Z/pthread_num_processors_np.3t:
None
/usr/share/man/man3.Z/pthread_processor_bind_np.3t:
None
/usr/share/man/man3.Z/pthread_processor_id_np.3t:
None
/usr/share/man/man3.Z/pthread_pset_bind_np.3t:
None
/usr/share/man/man3.Z/pthread_spu_to_ldom_np.3t:
None
cksum(1) Output:
OS-Core.C-MIN-32ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
727470144 221410 /usr/lib/libpthread.a
2442508787 251266 /usr/lib/libpthread_tr.a
OS-Core.C-MIN-64ALIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
148832110 421128 /usr/lib/pa20_64/libpthread.a
1399994996 475090 /usr/lib/pa20_64/libpthread_tr.a
OS-Core.CORE-64SLIB,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
4261798791 168760 /usr/lib/pa20_64/libpthread.1
2973966243 202496 /usr/lib/pa20_64/libpthread_tr.1
OS-Core.CORE-SHLIBS,fr=B.11.11,fa=HP-UX_B.11.11_32/64,v=HP:
1807005241 155648 /usr/lib/libpthread.1
78312690 180224 /usr/lib/libpthread_tr.1
ProgSupport.PAUX-ENG-A-MAN,fr=B.11.11,
fa=HP-UX_B.11.11_32/64,v=HP:
3153021285 8531 /usr/share/man/man3.Z/
pthread_ldom_bind_np.3t
3153021285 8531 /usr/share/man/man3.Z/pthread_ldom_id_np.3t
3153021285 8531 /usr/share/man/man3.Z/
pthread_num_ldomprocs_np.3t
3153021285 8531 /usr/share/man/man3.Z/
pthread_num_ldoms_np.3t
3153021285 8531 /usr/share/man/man3.Z/
pthread_num_processors_np.3t
3153021285 8531 /usr/share/man/man3.Z/
pthread_processor_bind_np.3t
3153021285 8531 /usr/share/man/man3.Z/
pthread_processor_id_np.3t
3153021285 8531 /usr/share/man/man3.Z/
pthread_pset_bind_np.3t
3153021285 8531 /usr/share/man/man3.Z/
pthread_spu_to_ldom_np.3t
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies:
Perf changes enabled by pthread_mutex_disable_handoff_np()
or pthread_mutexattr_disable_handoff_np() or by setting the
environment variable PTHREAD_DISABLE_HANDOFF=ON. By default
these perf changes are disabled. The first API pthread_
mutex_disable_handoff_np() is for process wide disabling of
handoff mode in all mutexes. So is the env. variable. The
pthread_mutexattr_disable_handoff_np() takes as argument
pointer to pthread_mutexattr_t and can be used to disable
handoff mode for a particular mutex. The pthread_mutex_
disable_handoff_np() has no arguments and has to be called
by the main thread before any new threads are created.
"Handoff mode" is used to strictly adhere to certain
characteristics of POSIX real-time threads. If your
application does not use any real-time threads trying to
take mutex locks, you can call this new API to get the
performance benefits. To enable the TLS feature, the
following patches should also be installed: PHCO_23427 libc
cumulative patch PHSS_23441 linker cumulative patch
PHSS_23794 linker startup patch PHSS_23953 Fortran90 B.11.01
patch
Supersedes:
PHCO_24584 PHCO_23846
Equivalent Patches: None
Patch Package Size: 2090 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 PHCO_25226
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHCO_25226.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHCO_25226. 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 PHCO_25226.text file is
available in the product readme:
swlist -l product -a readme -d @ /tmp/PHCO_25226.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHCO_25226.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
|