 |
≫ |
|
|
 |
パッチ名: PHKL_36468
パッチ摘要: s700_800 11.23 gethrtime(3C); Itanium-2およびPA-64のサポート
作成日: 07/05/11
公開日: 07/08/03
ハードウェアプラットフォームおよびOSリリース:
s700: 11.23
s800: 11.23
現象:
PHKL_36468:
(SR:8606477109 CR:JAGag31587)
稀に、gethrtime(3C)インタフェースが非単調増加時間値を返すことがありま
す。
問題点の説明:
PHKL_36468:
(SR:8606477109 CR:JAGag31587)
割り込みが長時間起きないと、各プロセッサ上のクロックのずれを補正するア
ルゴリズムが不正な結果を生成することがありました。そのため、
gethrtime(3C)が、前回返した値より若干小さい値を返すことがありました。
解決方法:
gethrtime(3C)配下のシステムコールから返された最後の値をスレッドごとに
保存し、それより小さい値を返さないようにコードを修正しました。
-----------------------------------------------------------------------------
Patch Name: PHKL_36468
Patch Description: s700_800 11.23 gethrtime(3C); Itanium-2 and PA-64 Support
Creation Date: 07/05/11
Post Date: 07/08/03
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
ProgSupport.C2-INC,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
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP
Automatic Reboot?: Yes
Status: General Release
Critical:
Yes
PHKL_36468: OTHER
gethrtime(3C) returns a non-monotonically increasing
interval time
PHKL_36300: PANIC HANG
PHKL_33494: OTHER
Incorrect argument handling
PHKL_34082: PANIC
Category Tags:
defect_repair hardware_enablement enhancement
general_release critical panic halts_system
Path Name: /hp-ux_patches/s700_800/11.X/PHKL_36468
Symptoms:
PHKL_36468:
( SR:8606477109 CR:JAGag31587 )
Under rare circumstances, the gethrtime(3C) interface
returns non-monotonically increasing time values.
PHKL_36300:
( SR:8606458893 CR:JAGag15087 )
On Itanium2 based Integrity systems the kernel may hang or
panic in certain circumstances.
PHKL_35391:
( SR:8606457533 CR:JAGag13841 )
Perfmon update for Dual-Core Intel(r) Itanium(r) 2
processors.
New 32-bit versions of the Java Hotspot product may have
limited functionality or not work properly without this
product update. See the respective documentation for the
versions you are using to obtain specific kernel software
upgrade requirements.
If the version of Caliper or Java Hotspot Compiler you are
using is a 64-bit application or does not require this
product update, its installation will have no effect.
PHKL_33820:
( SR:8606408821 CR:JAGaf68723 )
Shared mutex unlock operations have a significant
degradation in performance in 11i v2 compared to 11i v1 for
64 bit PA applications.
PHKL_33494:
( SR:8606402933 CR:JAGaf62868 )
The mmap64(2) will fail if any 32-bit application passes a
value greater than or equal to 2147483648 (2 GIG) in the
'len' argument.
PHKL_32542:
( SR:8606387015 CR:JAGaf47168 )
The gethrtime() call can be interrupted during its
computation. This can result in incorrect time computations.
This has been seen very infrequently, and only on systems
with large numbers of processors.
PHKL_32360:
( SR:8606379329 CR:JAGaf39578 )
swapcontext(2) returns EFAULT on a valid address passed
to it.
PHKL_34082:
( SR:8606419398 CR:JAGaf79228 )
On IPF systems, the system panics with the following
message:
More Bad News: loc_ksp (<addr>) != ksp (<addr))
Stack Trace:
IP Function Name
0xe000000000b51b30 more_bad_news+0x4b0
0xe000000000b4f260 uw_eaddr_bub
End of Stack Trace
Defect Description:
PHKL_36468:
( SR:8606477109 CR:JAGag31587 )
If interrupts are held off for an extended period of time,
the algorithm used to compensate for drift between clocks on
different processors can produce incorrect results. This can
make gethrtime(3C) return values slightly older than
previously returned.
Resolution:
Save the last value returned by the underlying system call
for gethrtime(3C) for each thread, and don't return a value
lower than this.
PHKL_36300:
( SR:8606458893 CR:JAGag15087 )
The kernel may not handle the internal register state
properly.
Resolution:
Corrected kernel code to handle internal register state
properly.
PHKL_35391:
( SR:8606457533 CR:JAGag13841 )
Update to the 32-bit Perfmon system call interface
implemented for the Java Hotspot product.
Resolution:
Corrected the 32-bit system call interface to parse 64-bit
parameters without masking the upper 32-bits.
PHKL_33820:
( SR:8606408821 CR:JAGaf68723 )
In 11i v2, the shared mutex unlock for PA for 64 bit
applications takes the heavy weight path instead of the
light wight path even in the non contented case, as compared
to 11i v1.
Resolution:
The shared mutex unlock code for PA 64 bit applications
will now take the light weight path in the non contented
case in 11i v2.
PHKL_33494:
( SR:8606402933 CR:JAGaf62868 )
The max size that can mmap'ed using mmap64(2) is limited to
TWO_GIG as the 'len' parameter is wrongly interpreted as
signed long by the kernel instead of unsigned long.
Resolution:
Changed the Kernel data type interpretation of len parameter
of mmap64(2) system call from signed long to size_t
(unsigned long).
PHKL_32542:
( SR:8606387015 CR:JAGaf47168 )
The problem results from the current implementation of
gethrtime(); this implementation re-enables interrupts too
quickly, resulting in incorrect time calculations.
Resolution:
Disable interrupts completely during the computations in
gethrtime().
PHKL_32360:
( SR:8606379329 CR:JAGaf39578 )
If the memory address passed to swapcontext(2) has been
paged out, swapcontext(2) returns EFAULT.
Resolution:
Remove probe instructions that check for access errors.
PHKL_34082:
( SR:8606419398 CR:JAGaf79228 )
During the processing of an interrupt, the internal state
was not updated correctly.
Resolution:
Update the internal state correctly.
Enhancement:
No (superseded patches contained enhancements)
PHKL_33820:
This patch enhances the performance for PA 64 bit
applications which use shared mutex unlocking in 11i
v2.
SR:
8606477109 8606458893 8606457533 8606408821 8606379329
8606387015 8606402933 8606419398
Patch Files:
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/conf/lib/libscall-pdk.a(asm_scall.o)
/usr/conf/lib/libsvc-pdk.a(bubbleup.o)
/usr/conf/lib/libscall-pdk.a(gateway_init.o)
/usr/conf/lib/libscall.a(init_sent.o)
/usr/conf/lib/libscall-pdk.a(scall_stubs.o)
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/include/sys/scall_define.h
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
/usr/conf/lib/libscall-pdk.a(asm_scall.o)
/usr/conf/lib/libscall-pdk.a(gateway.o)
/usr/conf/lib/libscall.a(init_sent.o)
/usr/conf/lib/libscall-pdk.a(lw_scall.o)
/usr/conf/lib/libscall-pdk.a(scall_stubs.o)
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
/usr/include/sys/scall_define.h
what(1) Output:
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/conf/lib/libscall-pdk.a(asm_scall.o):
asm_scall.s $Date: 2007/04/20 09:49:30 $Revision: r1
1.23/5 PATCH_11.23 (PHKL_36468)
/usr/conf/lib/libsvc-pdk.a(bubbleup.o):
bubbleup.s $Date: 2007/03/29 14:14:42 $Revision: r11
.23/3 PATCH_11.23 (PHKL_36300)
/usr/conf/lib/libscall-pdk.a(gateway_init.o):
gateway_init.c $Date: 2007/03/29 14:14:59 $Revision:
r11.23/1 PATCH_11.23 (PHKL_36300)
/usr/conf/lib/libscall.a(init_sent.o):
init_sent.c $Date: 2004/08/05 12:06:29 $Revision: i3
80/2 PATCH_11.23 (PHKL_31500)
/usr/conf/lib/libscall-pdk.a(scall_stubs.o):
None
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/include/sys/scall_define.h:
None
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
/usr/conf/lib/libscall-pdk.a(asm_scall.o):
None
/usr/conf/lib/libscall-pdk.a(gateway.o):
gateway.s $Date: 2004/08/05 12:48:46 $Revision: i380
/2 PATCH_11.23 (PHKL_31500)
/usr/conf/lib/libscall.a(init_sent.o):
init_sent.c $Date: 2004/08/05 12:06:29 $Revision: i3
80/2 PATCH_11.23 (PHKL_31500)
/usr/conf/lib/libscall-pdk.a(lw_scall.o):
lw_scall.s $Date: 2007/04/20 09:49:38 $Revision: r11
.23/4 PATCH_11.23 (PHKL_36468)
/usr/conf/lib/libscall-pdk.a(scall_stubs.o):
None
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
/usr/include/sys/scall_define.h:
None
cksum(1) Output:
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
3472979036 81856 /usr/conf/lib/libscall-pdk.a(asm_scall.o)
1171831099 11568 /usr/conf/lib/libsvc-pdk.a(bubbleup.o)
112677433 11336 /usr/conf/lib/libscall-pdk.a(gateway_init.o)
2026430220 157104 /usr/conf/lib/libscall.a(init_sent.o)
1280833037 127504 /usr/conf/lib/
libscall-pdk.a(scall_stubs.o)
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
3111770297 23656 /usr/include/sys/scall_define.h
OS-Core.CORE2-KRN,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
1169965469 11472 /usr/conf/lib/libscall-pdk.a(asm_scall.o)
4128913599 68784 /usr/conf/lib/libscall-pdk.a(gateway.o)
825153308 156464 /usr/conf/lib/libscall.a(init_sent.o)
1863000462 18920 /usr/conf/lib/libscall-pdk.a(lw_scall.o)
2113726757 157856 /usr/conf/lib/
libscall-pdk.a(scall_stubs.o)
ProgSupport.C2-INC,fr=B.11.23,fa=HP-UX_B.11.23_PA,v=HP:
2804812592 23700 /usr/include/sys/scall_define.h
Patch Conflicts: None
Patch Dependencies:
s700: 11.23: PHKL_31500 PHKL_36301
s800: 11.23: PHKL_31500 PHKL_36301
Hardware Dependencies: None
Other Dependencies: None
Supersedes:
PHKL_36300 PHKL_35391 PHKL_34082 PHKL_33820 PHKL_33494 PHKL_32542
PHKL_32360
Equivalent Patches:
PHKL_36469:
11.31
Patch Package Size: 200 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_36468
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHKL_36468.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHKL_36468. 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_36468.text file is
available in the product readme:
swlist -l product -a readme -d @ /tmp/PHKL_36468.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHKL_36468.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions: None
|