 |
≫ |
|
|
 |
パッチ名: PHCO_36551
パッチ摘要: 11.31 pthreadライブラリ累積パッチ
作成日: 07/05/08
公開日: 07/05/29
ハードウェアプラットフォームおよびOSリリース:
11.31
現象:
PHCO_36551:
1.(SR:8606469357 CR:JAGag24564)
ロックの争奪は起きていないのに、libpthreadが多くのCPUタイムを消費しま
す。
2.(SR:8606477822 CR:JAGag32198)
シングルスレッドアプリケーションをlibpthreadとリンクする際のオーバーヘ
ッドを減らす必要があります。
問題点の説明:
PHCO_36551:
1.(SR:8606469357 CR:JAGag24564)
ロックの争奪は起きていないのに、libpthreadは多くのCPUタイムを消費して
いました。
解決方法:
ロック争奪がない場合のpthread_mutex_unlock(3T)のパフォーマンスを改善し
ました。
2.(SR:8606477822 CR:JAGag32198)
スレッド対応ライブラリはmutexロックの取得・解放を行う必要があるため、
シングルスレッドアプリケーションをlibpthreadとリンクします。その結果、
パフォーマンスが低下していました。したがって、シングルスレッドアプリケ
ーションがpthread_mutex_lock(3T)やpthread_mutex_unlock(3T)を呼び出す際
のオーバーヘッドを減らす必要があります。
解決方法:
シングルスレッドアプリケーションの場合は軽量パスを使用するように
pthread_mutex_lock(3T)およびpthread_mutex_unlock(3T)のコードを修正しま
した。これで、パフォーマンスは改善されます。
-----------------------------------------------------------------------------
Patch Name: PHCO_36551
Patch Description: 11.31 pthread library cumulative patch
Creation Date: 07/05/08
Post Date: 07/05/29
Hardware Platforms - OS Releases:
11.31
Products: N/A
Filesets:
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP
OS-Core.C-MIN-32ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP
OS-Core.C-MIN-64ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP
Automatic Reboot?: No
Status: General Release
Critical:
No (superseded patches were critical)
PHCO_35996: ABORT
JAGag28593: java applications may occasionally
dump core.
Category Tags:
defect_repair general_release critical halts_system
Path Name: /hp-ux_patches/11.X/PHCO_36551
Symptoms:
PHCO_36551:
( SR:8606469357 CR:JAGag24564 )
libpthread consumes CPU when there is no lock contention.
( SR:8606477822 CR:JAGag32198 )
Reduce overhead of linking with libpthread for single
threaded application.
PHCO_35996:
( SR:8606473991 CR:JAGag28593 )
Java applications may occasionally dump core while
trying to wait on a synchronization object.
Defect Description:
PHCO_36551:
( SR:8606469357 CR:JAGag24564 )
pthread_mutex_unlock(3T) consumes more CPU even
if there is no contention on the lock.
Resolution:
Now pthread_mutex_unlock(3T) works faster when there is
no lock contention.
( SR:8606477822 CR:JAGag32198 )
Single threaded applications linked with libpthread shows
performance degradation because of thread safe libraries
having to acquire and release mutex locks. The requirement
is to reduce the overhead of calling pthread_mutex_lock(3T)
and pthread_mutex_unlock(3T) in a single threaded
application.
Resolution:
Now pthread_mutex_lock(3T) and pthread_mutex_unlock(3T)
will follow a light weight path if the application is
single threaded, thus improving the performance.
PHCO_35996:
( SR:8606473991 CR:JAGag28593 )
The problem happens when a thread which is about to sleep
on a synchronization object like mutex, rwlock or
condition variable is suspended using pthread_suspend().
In this window libpthread does not update the internal
data structures corresponding to the thread, resulting in
the thread faulting with SIGSEGV when it is resumed.
Resolution:
Now libpthread ensures that the data structures are updated
properly.
Enhancement:
No
SR:
8606469357 8606477822 8606473991
Patch Files:
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP:
/usr/lib/pa20_64/liblwp.1
/usr/lib/hpux64/libpthread.so.1
/usr/lib/hpux64/libpthread_tr.so.1
/usr/lib/pa20_64/libpthread.1
/usr/lib/pa20_64/libpthread_tr.1
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP:
/usr/lib/liblwp.1
/usr/lib/hpux32/libpthread.so.1
/usr/lib/hpux32/libpthread_tr.so.1
/usr/lib/libpthread.1
/usr/lib/libpthread_tr.1
OS-Core.C-MIN-32ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/liblwp.a
/usr/lib/libpthread.a
/usr/lib/libpthread_tr.a
OS-Core.C-MIN-64ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/pa20_64/liblwp.a
/usr/lib/pa20_64/libpthread.a
/usr/lib/pa20_64/libpthread_tr.a
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/pa20_64/liblwp.1
/usr/lib/pa20_64/libpthread.1
/usr/lib/pa20_64/libpthread_tr.1
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/liblwp.1
/usr/lib/libpthread.1
/usr/lib/libpthread_tr.1
what(1) Output:
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP:
/usr/lib/pa20_64/liblwp.1:
LWP (LightWeightProcess) Interfaces
$Revision: liblwp.1: R11.31_BL2007_0504_4
/usr/lib/hpux64/libpthread.so.1:
Pthread Interfaces
$Revision: libpthread.so.1: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/hpux64/libpthread_tr.so.1:
Pthread Interfaces
$Revision: libpthread_tr.so.1: R11.31_BL2007_0508
_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/pa20_64/libpthread.1:
Pthread Interfaces
$Revision: libpthread.1: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/pa20_64/libpthread_tr.1:
Pthread Interfaces
$Revision: libpthread_tr.1: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP:
/usr/lib/liblwp.1:
LWP (LightWeightProcess) Interfaces
$Revision: liblwp.1: R11.31_BL2007_0504_4
/usr/lib/hpux32/libpthread.so.1:
Pthread Interfaces
$Revision: libpthread.so.1: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/hpux32/libpthread_tr.so.1:
Pthread Interfaces
$Revision: libpthread_tr.so.1: R11.31_BL2007_0508
_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/libpthread.1:
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
Pthread Interfaces
$Revision: libpthread.1: R11.31_BL2007_0508_2
/usr/lib/libpthread_tr.1:
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
Pthread Interfaces
$Revision: libpthread_tr.1: R11.31_BL2007_0508_2
OS-Core.C-MIN-32ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/liblwp.a:
LWP (LightWeightProcess) Interfaces
$Revision: liblwp.a: R11.31_BL2007_0504_4
/usr/lib/libpthread.a:
Pthread Interfaces
$Revision: libpthread.a: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/libpthread_tr.a:
Pthread Interfaces
$Revision: libpthread_tr.a: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
OS-Core.C-MIN-64ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/pa20_64/liblwp.a:
LWP (LightWeightProcess) Interfaces
$Revision: liblwp.a: R11.31_BL2007_0504_4
/usr/lib/pa20_64/libpthread.a:
Pthread Interfaces
$Revision: libpthread.a: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/pa20_64/libpthread_tr.a:
Pthread Interfaces
$Revision: libpthread_tr.a: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/pa20_64/liblwp.1:
LWP (LightWeightProcess) Interfaces
$Revision: liblwp.1: R11.31_BL2007_0504_4
/usr/lib/pa20_64/libpthread.1:
Pthread Interfaces
$Revision: libpthread.1: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
/usr/lib/pa20_64/libpthread_tr.1:
Pthread Interfaces
$Revision: libpthread_tr.1: R11.31_BL2007_0508_2
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
/usr/lib/liblwp.1:
LWP (LightWeightProcess) Interfaces
$Revision: liblwp.1: R11.31_BL2007_0504_4
/usr/lib/libpthread.1:
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
Pthread Interfaces
$Revision: libpthread.1: R11.31_BL2007_0508_2
/usr/lib/libpthread_tr.1:
pthread_version.c $Date: 2007/05/07 12:09:20 $Revisi
on: r11.31/1 PATCH_11.31 (PHCO_36551)
Pthread Interfaces
$Revision: libpthread_tr.1: R11.31_BL2007_0508_2
cksum(1) Output:
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP:
2520903765 53480 /usr/lib/pa20_64/liblwp.1
4170739355 1526504 /usr/lib/hpux64/libpthread.so.1
296843621 1770160 /usr/lib/hpux64/libpthread_tr.so.1
3558097700 607784 /usr/lib/pa20_64/libpthread.1
1038935746 700320 /usr/lib/pa20_64/libpthread_tr.1
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_IA,v=HP:
3892398265 40960 /usr/lib/liblwp.1
1614831176 1503612 /usr/lib/hpux32/libpthread.so.1
3183333672 1680300 /usr/lib/hpux32/libpthread_tr.so.1
4175620712 569344 /usr/lib/libpthread.1
3145251164 655360 /usr/lib/libpthread_tr.1
OS-Core.C-MIN-32ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
1072439145 88620 /usr/lib/liblwp.a
3109466508 711868 /usr/lib/libpthread.a
766871857 801396 /usr/lib/libpthread_tr.a
OS-Core.C-MIN-64ALIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
1470302465 155468 /usr/lib/pa20_64/liblwp.a
3422332602 1228810 /usr/lib/pa20_64/libpthread.a
3954013518 1375198 /usr/lib/pa20_64/libpthread_tr.a
OS-Core.CORE2-64SLIB,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
2520903765 53480 /usr/lib/pa20_64/liblwp.1
3558097700 607784 /usr/lib/pa20_64/libpthread.1
1038935746 700320 /usr/lib/pa20_64/libpthread_tr.1
OS-Core.CORE2-SHLIBS,fr=B.11.31,fa=HP-UX_B.11.31_PA,v=HP:
3892398265 40960 /usr/lib/liblwp.1
4175620712 569344 /usr/lib/libpthread.1
3145251164 655360 /usr/lib/libpthread_tr.1
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies: None
Supersedes:
PHCO_35996
Equivalent Patches: None
Patch Package Size: 5780 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_36551
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHCO_36551.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHCO_36551. 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_36551.text file is
available in the product readme:
swlist -l product -a readme -d @ /tmp/PHCO_36551.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHCO_36551.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
|