 |
≫ |
|
|
 |
パッチ名: PHKL_33563
パッチ摘要: s700_800 11.23 mmap(2)およびmadvise(2)の修正
作成日: 05/09/12
公開日: 05/10/26
警告: 07/01/12 - これは、当社からの警告(Non-Criticalレベル)です。
- PHKL_33364をインストールしたシステムで、5GBを超えるサイズのShared
Global Area(SGA)セグメントを使用するOracleデータベースに複数のユーザ
ーが同時に接続し、かつ、"非同期入出力(asyncio)"を使用するように
Oracleが構成されていると、パフォーマンスが低下する可能性があります。
- この問題の詳細は、サービス要求4000128670(JAGag23329)を参照してくださ
い。
- 後継パッチPHKL_33552、PHKL_33563、PHKL_34596およびPHKL_35229でも同じ
問題が起きます。
- パッチPHKL_33364は、システムハングを引き起こす可能性のあるカーネル内
での重大な競合問題(サービス要求8606390848(JAGaf50993)を参照)に対処し
ているので、このパッチを削除せずに、/dev/asyncのマイナー番号を256に
設定することによって"非同期入出力"のメモリーロックをオフにするようお
勧めします。このようにすると、Shared Global Area(SGA)ページのメモリ
ーロックにより、それらのページはページアウトの対象から除外されます。
メモリー使用量が通常の動作範囲内であれば、これで、この問題は起きませ
ん。ただし、システムがメモリー不足状態になると、Shared Global Area
(SGA)ページがページアウトされる可能性があるため、メモリー不足状態が
持続している間はパフォーマンスが低下します。しかし、メモリー不足が緩
和すれば、パフォーマンスは回復します。
- この問題は、まもなくリリースされる後継パッチで解決されます。
ハードウェアプラットフォームおよびOSリリース:
s700: 11.23
s800: 11.23
現象:
PHKL_33563:
(SR:8606389332 CR:JAGaf49480)
引き数として無効なページサイズヒントを渡すと、madvise(2)システムコール
が誤動作します。
問題点の説明:
PHKL_33563:
(SR:8606389332 CR:JAGaf49480)
渡されたページサイズヒントが正しいかチェックしていなかったため、引き数
として無効なページサイズヒントを渡すと、madvise(2)システムコールが誤動
作していました。
解決方法:
引き数として渡されたページサイズヒントが正しいか必ずチェックするように
madvise(2)システムコールを修正しました。
-----------------------------------------------------------------------------
Patch Name: PHKL_33563
Patch Description: s700_800 11.23 mmap(2) and madvise(2) fix
Creation Date: 05/09/12
Post Date: 05/10/26
Warning: 07/01/12 - This Non-Critical Warning has been issued by HP.
- PHKL_33364 introduced behavior that can cause performance
degradation when multiple users connect simultaneously to
Oracle databases with Shared Global Area (SGA) segments
of sizes more than 5GB and Oracle is configured to use
"asyncio".
- Additional information on this behavior may be found in
Service Request 4000128670 (JAGag23329).
- The same behavior is experienced with superseding patches
PHKL_33552, PHKL_33563, PHKL_34596 and PHKL_35229.
- As patch PHKL_33364 addresses a critical kernel race
condition that can cause a system hang (see Service
Request 8606390848 (JAGaf50993)), HP recommends to not
remove the patch(es) but to turn off "asyncio" memory
locking by setting the minor number of /dev/async to 256.
This will prevent memory locking of the Shared Global
Area (SGA) pages making them potential targets for page
outs.
This condition is benign when memory utilization is
within normal operating limits. However, if the system
is under memory pressure, the Shared Global Area (SGA)
pages could get paged out leading to performance
degradation as long as memory pressure persists. Once
the memory pressure is relieved performance will return
to normal.
- This behavior will be addressed in a superseding patch to
be released as soon as possible.
Hardware Platforms - OS Releases:
s700: 11.23
s800: 11.23
Products: N/A
Filesets:
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP
Automatic Reboot?: Yes
Status: General Superseded With Warnings
Critical:
Yes
PHKL_33563: OTHER
improper operation of madvise(2) when passed invalid
arguments.
PHKL_33552: CORRUPTION
PHKL_33364: HANG
Category Tags:
defect_repair general_release critical halts_system
corruption
Path Name: /hp-ux_patches/s700_800/11.X/PHKL_33563
Symptoms:
PHKL_33563:
( SR:8606389332 CR:JAGaf49480 )
Passing invalid page size hint as an argument to madvise(2)
causes improper operation of the system call.
PHKL_33552:
( SR:8606405310 CR:JAGaf65230 )
On a kernel with InfiniBand driver, applications may see
data corruption after fork() is executed.
PHKL_33364:
( SR:8606390848 CR:JAGaf50993 )
If two or more kernel threads are trying to mlock(2)the same
segment of memory simultaneously, a race condition may
result in system/process hang due to resource
contention/deadlock.
PHKL_32264:
( SR:8606373282 CR:JAGaf33674 )
On IPF platforms at the first instance of modification
of pages in mmap(2) segments which are constructed using
the lazy swap feature results in SIGSEGV signal if swap
swap space reservation fails. However, the mmap(2) man page
specifies that condition will result in SIGBUS delivered to
the faulting process.
Defect Description:
PHKL_33563:
( SR:8606389332 CR:JAGaf49480 )
Invalid page size hint arguments prevent proper operation
of the madvise(2) system call because there is no check in
place to ensure the correctness of the page size hint.
Resolution:
A check was added to ensure the correctness of the page size
hint argument passed to the madvise(2) system call.
PHKL_33552:
( SR:8606405310 CR:JAGaf65230 )
Data corruption takes place during the resolution of
copy-on-write fault while handling fork(). During the fault
handling the handler thread may sleep and resume on another
processor. When that happens it doesn't cleanup the
processor context of the previous processor, thus leaving
stale translation information on the previous processor.
This can cause incorrect data access and corruption.
Resolution:
Cleanup the processor context before using any translations.
This ensures that any stale translations are cleared and
not used erroneously.
PHKL_33364:
( SR:8606390848 CR:JAGaf50993 )
Two or more threads trying to kernel lock a large memory
segment can cause system hang if they are locking the
memory segment simultaneously.
Resolution:
If the request is to mlock(2) for the kernel then we fault
in all pages in the part of the region in question
regardless of whether some (or all) of the pages were
already faulted in. User locking remains unaffected
PHKL_32264:
( SR:8606373282 CR:JAGaf33674 )
Kernel implementation on IPF platforms was inconsistent
with documentation for the signal type returned on
an access failure to mmap(2) segments which requested
lazy swap reservation. The access failure occured due
due to swap exhaustion when the page was accessed.
Resolution:
Kernel implementation on IPF platforms is made consistent
with the documentation.
Enhancement:
No
SR:
8606389332 8606373282 8606390848 8606405310
Patch Files:
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/conf/lib/libvm.a(pregion.o)
/usr/conf/lib/libvm-pdk.a(pregion_hdl.o)
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
/usr/conf/lib/libvm.a(pregion.o)
what(1) Output:
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/conf/lib/libvm.a(pregion.o):
pregion.c $Date: 2005/09/12 00:04:59 $Revision: r11.
23/8 PATCH_11.23 (PHKL_33563)
/usr/conf/lib/libvm-pdk.a(pregion_hdl.o):
pregion_hdl.c $Date: 2005/07/13 05:02:22 $Revision:
r11.23/6 PATCH_11.23 (PHKL_33552)
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
/usr/conf/lib/libvm.a(pregion.o):
pregion.c $Date: 2005/09/12 00:04:59 $Revision: r11.
23/8 PATCH_11.23 (PHKL_33563)
cksum(1) Output:
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
480888598 181680 /usr/conf/lib/libvm.a(pregion.o)
1500911407 163424 /usr/conf/lib/libvm-pdk.a(pregion_hdl.o)
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
3841986443 98008 /usr/conf/lib/libvm.a(pregion.o)
Patch Conflicts: None
Patch Dependencies:
s700: 11.23: PHKL_31500 PHKL_33562
s800: 11.23: PHKL_31500 PHKL_33562
Hardware Dependencies: None
Other Dependencies: None
Supersedes:
PHKL_33552 PHKL_33364 PHKL_32264
Equivalent Patches: None
Patch Package Size: 180 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_33563
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHKL_33563.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHKL_33563. 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_33563.text file is
available in the product readme:
swlist -l product -a readme -d @ /tmp/PHKL_33563.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHKL_33563.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
|