 |
≫ |
|
|
 |
パッチ名: PHSS_35528
パッチ摘要: s700_800 11.23 Aries累積パッチ
作成日: 07/03/27
公開日: 07/03/28
ハードウェアプラットフォームおよびOSリリース:
s700: 11.23
s800: 11.23
現象:
PHSS_35528:
01)JAGag08724:
Ariesの下で、PA-RISCシステムコールトレーサtuscが機能しません。
02)JAGag10078:
Ariesは、FPSRレジスタにアクセスするPA-RISCの基本ブロックを変換する必要
があります。
03)JAGag10083:
性能を最適化するために、AriesはエミュレートするFPレジスタコンテキスト
を汎用レジスタスタックにマップする必要があります。
04)JAGag11823:
Ariesがoget(set)context()システムコールを正しくエミュレートしません。
05)JAGag18675:
Ariesの下で実行すると、Sybaseがエラー0x408でハングします。
06)JAGag35929:
Ariesの下で、PA JVMが断続的にハングするか、SIGBUSで異常終了します。
07)JAGag35932:
Ariesのエラー/警告メッセージを改善する必要があります。
08)JAGag35933:
フルコードキャッシュフラッシュが、Ariesでの制限付きコードキャッシュフ
ラッシュでマスクされることがあります。
09)JAGag35935:
Aries内でのメモリーリークにより、PA JVMベースアプリケーションが異常終
了することがあります。
10)JAGag35936:
AriesがTT_PROC_SET_SCBM ttrace()システムコールを正しくエミュレートしま
せん。
11)JAGag35938:
Ariesでのオプション処理とRCファイル検索に関連したいくつかの問題。
12)JAGag35957:
Ariesが書き込んだコアファイル内で、シグナルを受け取っていないスレッド
のシグナル数が0ではなく-1に設定されています。
13)JAGag35960:
コアファイルを書き込んだ後、Ariesはraise()ではなく_lwp_kill()を使って
プロセスを強制終了する必要があります。
14)JAGag35964:
Ariesのコード内で同期シグナルを受け取ると、プロセスがハングします。
15)JAGag35967:
STBYのAries変換が不正なため、libcデータが破壊されます。
問題点の説明:
PHSS_35528:
01)JAGag08724:
Ariesは、ttrace()システムコールのエミュレーションはサポートしていまし
たが、Ariesの下では、システムコールトレーサtuscが機能しませんでした。
エミュレートするPA-RISCアプリケーションのシステムコールをトレースする
PA-RISCシステムコールトレーサtuscをサポートするようにttrace()システム
コールのAriesエミュレーションを拡張しました。
02)JAGag10078:
Ariesは、FPSR(fr0L)にアクセスするPA-RISCの基本ブロックを変換していませ
んでした。PA-RISCプロセッサとItaniumプロセッサのアーキテクチャが異なる
ため、Ariesでは以前から、そのようなPA-RISCの基本ブロックを変換せずに逐
次解釈(interpret)していました。しかし、FPSRに頻繁にアクセスするアプリ
ケーションの場合、これでは性能が低下します。FPSRにアクセスするPA-RISC
の基本ブロックを変換するようにAriesを拡張しました。
03)JAGag10083:
PA-RISCプロセッサの遅延FP例外を正しくエミュレートするために、Ariesは、
エミュレートするレジスタコンテキストをメモリー上に保持していました。
そのため、変換済みコード内で過剰なメモリー操作が生じていました。
性能を最適化するために、エミュレートするFPレジスタコンテキストを汎用レ
ジスタスタックにマップし、setf/getf命令を使ってFPのオペランドを内蔵FP
レジスタに/から設定/取得するようにAriesを拡張しました。
04)JAGag11823:
ogetcontext()システムコールは、PA-RISCではほとんど有効な操作を行いませ
んが、QCReplayのような一部の旧PA-RISCアプリケーションはこのシステムコ
ールに依存しているようです。ところが、Ariesは不正に、このシステムコー
ルをネイティブカーネルに渡していました。
ogetcontext()システムコールの場合は、PA-RISCと同じ静的文字列へのポイン
タを返すようにAriesのコードを修正しました。osetcontect()システムコール
はサポート対象外です。
05)JAGag18675:
Ariesの下で、Sybaseがエラーコード0x408で断続的にハングしていました。
PA-RISCプロセッサがメモリーを変更せずに、単にキャッシュラインを"dirty"
とマークすると、Ariesは同じ内容のメモリーを変更していました。しかし、
このワード境界アドレス付きSTBY,eのAries変換は不適切です。
ワード境界アドレス付きの場合はなにも行わないようにSTBY,eのAries変換を
修正しました。Sybaseのコードは、セマフォ命令LDCWより前にワード境界アド
レス付きSTBY,eを使用していました。
06)JAGag35929:
SPECjbb2000ワークロードの実行中に、PA JVMがハングするか、SIGBUSで異常
終了していました。最終ビットがセットされていたため、障害アドレスが未整
列アドレスになっていました。Aries内での競合がこの問題の原因です。つま
り、あるスレッドが"translated"とマークしたAriesアドレスマップエントリ
タイプを、他のスレッドがまだ"interpret"タイプとみなしてそのアドレスを
増分していました。
アドレスマップエントリタイプが"translated"とマークされているかチェック
し、そのアドレスの最後の2ビットをマスクするようにAriesのコードを修正し
ました。
07)JAGag35932:
Ariesはエラー/警告メッセージをstderrに出力します。ところが、これらのメ
ッセージの生成元がAriesなのかそれともアプリケーションなのかが不明確で
した。
32ビットプロセスの場合は接頭辞[HP ARIES32]付きで、64ビットプロセスの場
合は接頭辞{HP ARIES64]付きでエラー/警告メッセージを出力するようにAries
のコードを修正しました。
08)JAGag35933:
FIC命令のエミュレーションの場合、性能を最適化するために、Ariesは制限付
きコードキャッシュフラッシュを行います。この場合、Ariesはアドレスマッ
プエントリをリセットするだけで、実際の変換コードバッファフラッシュを行
いません。ところが、制限付きコードキャッシュフラッシュの設定時に、
Ariesは、フルコードキャッシュフラッシュがプロセス内の他のスレッドによ
ってすでに設定されているかチェックしていませんでした。そのため、フルコ
ードキャッシュフラッシュが取り消されていました。しかし、ライブラリのア
ンロードのような操作ではフルコードフラッシュは必須です。
制限付きコードキャッシュフラッシュを設定する前に、必要なチェックを行う
ようにAriesのコードを修正しました。
09)JAGag35935:
PA JVMベースアプリケーションを数日間実行すると、Ariesがその固有のヒー
プスペースを使い果たし、アプリケーションが異常終了していました。Aries
のヒープサイズを増やすと、エラーは遅れて発生します。Ariesはメモリーを
割り当てて、アプリケーションが実行する各mprotect()システムコールを追跡
します。ところが、アプリケーションがスレッドの作成/切り離し/作成後結合
を続けると、同じアドレスに対するmprotect()コールが生じます。そのため、
Ariesは割り当て済みメモリーを解放するタイミングを逸していました。
記録済みのmprotect()の詳細がアプリケーションによって実行される新たな
mprotect()コールと一致しているかチェックして、新たなメモリーの割り当て
を回避するようにAriesのコードを修正しました。また、Ariesはコアファイル
の書き込み時に、アプリケーションのmprotect()システムコールの使用回数を
記録します。
10)JAGag35936:
新たなバージョンのPA-RISC GDBはTT_PROC_SET_SCBM付きのttrace()システム
コールを使って、システムコールがデバッガを停止させる必要があることを示
すビットマップをカーネルに渡します。ところが、Ariesはこのビットマップ
をカーネルに直接渡していました。また、Ariesは一部のシステムコールを内
部で処理していました。
アプリケーションからのTT_PROC_SET_SCBM要求に対する応答時にシステムコー
ルビットマップの固有のコピーを保守し、ビットマップ内で有効になっている
システムコールイベントをデバッガに報告するようにAriesのコードを修正し
ました。
11)JAGag35938:
アプリケーションの絶対パスを指定しても、AriesのRCファイルとアプリケー
ション名が一致しないことがありました。
オプション処理に問題があったため、AriesはRCファイルの位置と行数を出力
しませんでした。
Ariesは、/(パス)または#(コメント)で始まるように各行の最初のカラムを強
制設定しませんでした。
AriesのRCファイル検索とオプション処理でのこれらの問題を解決しました。
これで、AriesはRCファイルから1行ずつ処理し、最終的には以前の完全なファ
イル処理と比較します。
12)JAGag35957:
Ariesが生成したコアファイル内で、シグナルを受け取っていないスレッドの
シグナル数が0ではなく-1に設定されていました。これは、多くのコアファイ
ル読み取りプロセスに取っては不都合です。シグナル数は0以上でなければな
りません。
シグナルを受け取っていないスレッドのシグナル数を0として書き込むように
コードを修正しました。
13)JAGag35960:
HP-UX 11i V2の問題により、raise()ではプロセスを強制終了できませんでし
た。全スレッドがstopped/blocked状態の場合、この問題が起きていました。
この問題の回避策として、アプリケーションのコアファイルを書き込んだら、
_lwp_kill(_lwp_self(), signo)を使ってプロセスを強制終了するようにAries
のコードを変更しました。
14)JAGag35964:
(エミュレーションコードではなく)Ariesのコード内で同期シグナルを受け取
ると、Ariesのシグナルハンドラはなにもせずに制御をカーネルに戻し、カー
ネルは再度シグナルを送出するという状態がいつまでも続いていたため、大量
のCPUサイクルが消費されていました。
Ariesのコード内でシグナルを受け取ったら、シグナルハンドラをアンインス
トールしてカーネルにプロセスを強制終了させるようにAriesのコードを修正
しました。
15)JAGag35967:
常にワード全体を読み取るSTBYの場合、Aries変換は必要なバイトを変更し、
変更済みワードをそのメモリー位置に格納していました。そのため、異なるス
レッドが同じアドレスの同じワードの異なるバイトを同時に検査/変更する可
能性のあるマルチスレッドアプリケーションの場合に問題が起きていました。
特別な負荷テスト時に、libcデータが破壊されることがわかりました。たとえ
ば、割り当て済みの小ブロックを保持するlibcデータが破壊されていました。
ただし、SBAがオフ(_M_SBA_OPTS=0:0:0)の場合、この問題はマスクされます。
1バイトずつ変更するようにSTBYのAries変換を修正しました。
-----------------------------------------------------------------------------
Patch Name: PHSS_35528
Patch Description: s700_800 11.23 Aries cumulative patch
Creation Date: 07/03/27
Post Date: 07/03/28
Hardware Platforms - OS Releases:
s700: 11.23
s800: 11.23
Products: N/A
Filesets:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP
Automatic Reboot?: No
Status: General Release
Critical:
Yes
PHSS_35528: ABORT HANG CORRUPTION MEMORY_LEAK
JAGag11823: Aries does not correctly emulate system
calls oget(set) correctly.
JAGag18675: Sybase hangs with error code 0x408
when run under Aries.
JAGag35929: PA JVM intermittently hangs or fails
with SIGBUS.
JAGag35964: Process hangs if synchronous signal is
received inside Aries code.
JAGag35967: Wrong STBY translation in Aries causes
libc data structure corruption.
PHSS_35045: ABORT HANG
JAGaf95615: Java applications using lseek64 system
call failed if system call gets interrupted.
JAGaf96691: While debugging PA-RISC application gdb
hangs after the fork() system call.
JAGag01379: PA-RISC 1.0 applications using LDIL to
GR0 fail under Aries.
JAGag08487: Some long running Java applications
intermittently hang under Aries.
PHSS_34201: HANG CORRUPTION
JAGaf63109: JAVA applications intermittently hang
when running under Aries.
JAGaf77297: Emulation of lseek64() system call in
Aries was causing corruption of return value if the
system call discovers pending asynchronous signal
while returning from kernel.
PHSS_32502: ABORT
JAGaf46956: PA application may abort with a
spurious FP underflow error.
PHSS_32213: ABORT
JAGaf43124: Application under Aries aborted due to
sigprocmask() returning with EINTR errno.
PHSS_30779: HANG ABORT CORRUPTION
JAGaf19718: PA applications hang when making a
system call beyond 540.
JAGaf25574: PA applications hang intermittently
with infinite SIGILLs.
PHSS_30674: ABORT
JAGaf07351: PA application fails with coredump
with SIGILL after running for many days.
PHSS_30237: ABORT
JAGaf05999: Aries aborts emulation with error
message - unable to continue, insufficient
resources.
Also the patch fixes defects which cause PA
application to fail with core dump.
PHSS_30015: ABORT
JAGae99126: Aries returns incorrect stack pointer
from pstat() when PA app is compiled with _PSTAT64.
This might cause the PA app to abort by accessing
the incorrect stack pointer.
PHSS_29658: ABORT
This patch fixes defects that cause PA application
to fail with unexpected abort with core dump under
Aries.
Category Tags:
defect_repair enhancement general_release critical
halts_system corruption memory_leak
Path Name: /hp-ux_patches/s700_800/11.X/PHSS_35528
Symptoms:
PHSS_35528:
JAGag08724: PA-RISC system call tracer tusc does not work
under Aries.
JAGag10078: Aries needs to translate PA-RISC basic blocks
which access FPSR register.
JAGag10083: Aries needs to map emulated FP register
context on general register stack for better
performance.
JAGag11823: Aries does not correctly emulate system calls
oget(set)context().
JAGag18675: Sybase hangs with error 0x408 when run under
Aries.
JAGag35929: PA JVM intermittently hangs or fails under
Aries with SIGBUS.
JAGag35932: Aries error and warning messages need to be
streamlined.
JAGag35933: Possibility of full code cache flush being
masked off by limited code cache flush in Aries.
JAGag35935: PA JVM based application fails due to possible
memory leak in Aries.
JAGag35936: Aries does not correctly emulate
TT_PROC_SET_SCBM ttrace() system call.
JAGag35938: Some issues related to Aries option processing
and RC file search.
JAGag35957: Aries written core file has the signal no, set
to -1 instead of 0 for non-signal receiving threads.
JAGag35960: After writing the core file Aries should use
_lwp_kill() instead of raise() to kill the process.
JAGag35964: Process hangs if synchronous signal is received
inside Aries code.
JAGag35967: Wrong STBY translation in Aries cause libc
data corruption.
PHSS_35045:
JAGaf95615: Java applications using lseek64 system call
abort if system call gets interrupted.
JAGaf95794: Gdb throws ttrace error (invalid argument)
while debugging PA-RISC application.
JAGaf96691: While debugging PA-RISC application gdb
hangs after the fork() system call.
JAGag01379: PA-RISC 1.0 applications using LDIL to GR0
aborts with SIGSEGV under Aries.
JAGag08473: Aries does not cleanup the temporary file
from /tmp directory after debugger exits.
JAGag08479: Aries fails to get full absolute path of the
application and Aries options from .ariesrc file
do not apply.
JAGag08481: More efficient management of Aries code cache
and address map data structure required for better
performance of Java based applications.
JAGag08484: Aries translation lookup buffer table size is
too small causing excessive collisions.
JAGag08487: Some long running Java applications
intermittently hang under Aries.
JAGag08581: Aries does not translate PA-RISC basic blocks
that end in complicated branch combinations involving
NIT branch in delay slot.
JAGag08586: Aries needs to do superblock scheduling and
optimizations.
JAGag09223: Aries should manage the option -noasync_chk
automatically.
JAGag10127: Aries fails to get full path name to executable
while doing 11.22 to 11.23 system upgrade.
PHSS_34201:
JAGaf63109: JAVA applications intermittently hang when
running under Aries.
JAGaf63273: Incorrect emulation of FCNVFX(T) PA opcode in
Aries for out of range FP values.
JAGaf77297: Emulation of lseek64() system call in Aries
was causing corruption of return value if the system
call discovers pending asynchronous signal while
returning from kernel.
JAGaf82326: Aries fails to create complete corefile when
PA-RISC JAVA program fails.
JAGaf86374: Aries performance for emulation of PA-RISC
divide and remainder millicode routines very poor.
JAGaf86375: Aries does not translate PA-RISC opcodes LDCW,
LDCD, FDC and PROBE. This results in performance
degradation under Aries.
JAGaf86376: Multithreaded applications having poor code
locality experience slow performance under Aries.
JAGaf86377: PA-RISC 1.1 compiled binaries making heavy use
of instruction pointer reads perform slow under Aries.
JAGaf86379: Aries should not generate translation for NOP
PA-RISC opcode.
JAGaf86380: Emulation of thread synchronization operation
e.g suspend, resume etc, is slow under Aries.
JAGaf86381: Aries should optimize LDIL/LDO and similar
pair of operations as single operation if the
instructions have constant operands.
JAGaf86382: Aries generated code is not optimally scheduled
for Itanium2 and has many stalls.
JAGaf88158: Aries does not correctly translate PA-RISC
strongly ordered store operations.
PHSS_32502:
JAGaf46156: Aries does not correctly emulate generation of
corefile from gdb.
JAGaf46956: PA application may abort with a spurious FP
underflow error.
JAGaf47828: PA gdb emulated by Aries needs to be able to
attach to a running PA process also being emulated
by Aries.
JAGaf48018: Aries does not emulate uc_link parameter of the
PA save state thus causing swapcontext system call to
fail.
PHSS_32213:
JAGaf37580: Translation for PA basic blocks which end with
indirect branches need not do async check.
JAGaf40164: Aries64 creates less number of threads than
possible with available Aries heap.
JAGaf43124: Application under Aries aborted due to
sigprocmask() returning with EINTR errno.
JAGaf45095: On HP-UX Sept 2004 release PA applications
may fail under Aries with system calls failing with
errno set to EFAULT.
JAGaf45522: Aries translation for FIC instruction should
not discard translation buffer if the FIC address
is not already translated.
PHSS_31816:
JAGaf33788: The _lw_mxn_setsigmask system call does
not work as expected when MxN PA applications run
under Aries.
PHSS_30779:
JAGaf19718: PA applications hang when making a system call
beyond 540. This product update is pre-enablement for
Aries handling of new system calls that may be added
in future HP-UX releases.
JAGaf21975: Pre-enablement for future expansion of the
maximum length of system nodename and hostname in
utsname structure. Any actual expansion capability
may be provided in a future HP-UX nodename and
hostname expansion product. Upon installation, the
nodename and hostname expansion bundle
(NodeHostNameXpnd) will install the full set of
product updates (including this one) needed to enable
the expansion. If the nodename and hostname expansion
bundle is not installed, this product update will not
have any effect on the system. This product update
provides Aries changes to emulate uname(2) system
call with large utsname structure if HP-UX nodename
and hostname expansion product bundle is installed on
the system.
JAGaf21978: This product update provides pre-enablement for
Aries capability to generate PA-RISC application core
file in new core file format for future expansion of
the maximum length of the system nodename and hostname.
Any actual expansion capability may be provided in
future HP-UX nodename and hostname expansion product
NodeHostNameXpnd. If this bundle is not installed on
the system, this product update will have no effect on
the system.
JAGaf22148: Thread creation causes hang sometimes when PA
app runs under ARIES
JAGaf25574: PA applications hang intermittently with
infinite SIGILLs.
JAGaf25951: PA64 core file generated by Aries does not
contain PA64 dld.sl data segment.
JAGaf30208: Aries rendered image for a graphics application
is heavily distorted.
PHSS_30674:
JAGaf07351: PA application fails with SIGILL coredump after
running for many days. The PA core file is corrupt.
JAGaf14627: While writing PA core file if current working
directory is root, Aries prints the core file name
beginning with //.
JAGaf18011: Aries does not handle multiple asynchronous
signals which arrive in system call.
JAGaf19149: lw_mcas_util_unlock system call does not work
correctly under Aries.
PHSS_30237:
JAGae90842: Aries async signal handling needs to be
modified for better performance.
JAGaf05999: vxsvc fails with Aries error - insufficient
resources.
JAGaf06545: Emulated application stack size set, should
be inheritable to different types of executables.
JAGaf06806: makecontext/swapcontext don't work correctly
under Aries if app is compiled with +DA1.1.
JAGaf07720: Aries runs out of memory when repeated mmap/
shmat/shmdt system calls are made.
JAGaf08077: stat or any other system call which takes in
a pointer as an argument, occasionally fail under
Aries with errno set to EFAULT; if passed a
uninitialized local variable address as argument to
system call.
JAGaf10821: execve system call may fail under Aries if
argv argument is NULL.
JAGaf14318: getrlimit64 and setrlimit64 system calls do
not work correctly for setting and getting stack size
limits for PA32 program under Aries.
PHSS_30015:
JAGaf01019: Aries cannot emulate PA applications that
allocate private stack regions in shared memory area.
JAGaf00844: Aries emulated FCMP instruction incorrectly
when operands to FCMP are unordered values.
JAGae94257: Aries dumps incomplete stack details in the
core file when emulated PA program aborts due to
stack growth failure.
JAGae99126: Aries returns incorrect stack pointer from
pstat() when PA app is compiled with _PSTAT64. This
might cause the PA app to abort by accessing the
incorrect stack pointer.
JAGae95064: Aries does not support PA-RISC applications
that invoke execve(2) system call with NULL
arguments.
JAGae91695: Performance degradation due to unimplemented
FCMP and MFCTL instruction in Aries dynamic
translator.
JAGae91550: Aries does not emulate lio_listio(2) system
call correctly.
JAGae91549: Aries does not emulate settune(2) system call
correctly.
JAGae90973: Performance degradation due to new dynamic
translator in Aries not translating ADDI instruction
PHSS_29658:
JAGae74194: Aries did not suspend threads while emulating
fork system call.
JAGae79229: Aries emulation for FCNV opcode with unordered
values is incorrect.
JAGae80642: PA applications using probe instruction to find
access rights on a memory location, may observe
incorrect behaviour while running through Aries.
JAGae80912: Aries64 shifts load_info parameter that causes
caliper to fail.
JAGae81311: Aries does not dump core if asynchronous
SIGXCPU/SIGXFSZ signal arrived when the process was
in middle of system call.
JAGae81759: Aries does not write out shared memory segment
to core file.
JAGae82598: Aries prints wrong error message if there was
stack growth failure for PA application emulated
stack, generation of application core file is normal
under this situation.
JAGae83281: Aries needs to honor stack and core file size
limits set in shell and also Aries should inherit
these limits from parent PA process.
JAGae83314: Aries emulation for FCNV opcode is incorrect
if conversion results in unordered value.
JAGae84933: Aries emulation for system call timer_create
fails if second argument is NULL.
JAGae84938: PA64 application using mcas system call
through 32 bit gateway page, fails with core dump
with SIGSYS, while running under Aries.
JAGae85165: Aries emulation of getcontext system call
does not return correct ss_flags.
JAGae85167: PA64 program using swapcontext fails with
core dump while running under Aries.
JAGae86862: Setting corefile size to a very low value in
shell causes generation of Aries and PA application
core file instead of just application core file.
JAGae87409: Aries should process config file .ariesrc in
additive manner. Aries should process system wide
and user specified .ariesrc file both.
Defect Description:
PHSS_35528:
JAGag08724: Though Aries support emulation of ttrace()
system call - the system call tracer tusc does not
work under Aries. Aries emulation of ttrace() system
call has been enhanced to support PA-RISC system
call tracer tusc for tracing system calls of
emulated PA-RISC applications.
JAGag10078: Aries does not translate PA-RISC basic blocks
which access FPSR (fr0L). Because of architectural
differences between PA-RISC and Itanium processor
and for simplicity it was decided earlier that such
PA-RISC basic block will only be interpreted in
Aries. This however, cause performance penalty for
applications that access FPSR frequently. Aries is
enhanced to translated PA-RISC basic blocks that
access FPSR.
JAGag10083: To correctly emulate delayed FP exception of
PA-RISC processor Aries keeps the emulated FP
register context in memory. This causes excessive
memory operations in translated code. To achieve
better performance Aries is enhanced to map emulated
FP register context on general register stack and
uses setf/getf instructions to set FP operands to
and from native FP registers.
JAGag11823: Though the system call ogetcontext() does not
do any useful operation on PA-RISC. Some old PA-RISC
application like QCReplay seem to rely on this
system call. Aries was passing this system call to
native kernel which was wrong. Aries now returns
a pointer to static string as on PA-RISC for
ogetcontext() system call. osetcontect() system
call is unsupported.
JAGag18675: Sybase intermittently hangs under Aries with
error code 0x408. Aries translation for STBY,e
with word aligned address was wrong as Aries
modifies memory with same contents while PA-RISC
processor just marks the cache line dirty without
modifying the memory. Aries translation for STBY,e
for word aligned address case is changed to do
nothing. This resolve the Sybase problem. Sybase
code was using STBY,e with word aligned address
prior to semaphore instruction LDCW.
JAGag35929: PA JVM hangs or fails with SIGBUS while running
SPECjbb2000 work load. The faulting address has the
last bit set making it unaligned address. The issue
occurs due to a race condition in Aries due to which
while one threads marks the Aries address map entry
type as translated, other thread increments the
address thinking that it was still interpret type.
To fix the issue Aries checks if the address map
entry type is marked translated and masks off last
two bits of the address.
JAGag35932: Aries prints it's error and warning messages
on stderr. No fixed pattern of Aries messages
make it difficult to identify if the message is from
Aries or from application. Aries error and warning
messages are now printed with prefix [HP ARIES32]
and {HP ARIES64] for 32 bit and 64 bit processes
respectively.
JAGag35933: For better performance Aries does limited
code cache flush for FIC instruction emulation. This
just resets the address map entries and does not
perform actual translation code buffer flush. At the
of setting the limited code cache flush Aries did
not check if the full code cache flush is already
marked by other threads in the process. This causes
full code cache flush to be cancelled. Full code
flush is required for operations like library
unload etc. This problem is resolved by making
necessary checks before marking limited code cache
flush in Aries.
JAGag35935: PA JVM based application runs for few days
and fails when Aries runs out of it's own heap
space. The failure gets delayed if Aries heap size
is increased. Aries allocates memory to keep track
of each mprotect() system call made by application.
If application goes on creating/detaching/create-
with-join threads there are mprotect() calls for
same address. Aries does not get chance to free up
earlier allocated memory. To fix this issue Aries
checks if an already recorded mprotect() detail
matches with the new mprotect() call made by
the application to avoid allocating new memory.
Aries records application's mprotect() system call
for use at the time of core file writing.
JAGag35936: Newer versions of PA-RISC GDB use ttrace()
system call with TT_PROC_SET_SCBM to pass a bit map
to kernel to indicate which system calls should
cause debugger stop. Aries was directly passing
this bit map to kernel. Aries handles some system
calls internally. To resolve the problem Aries
maintains it's own copy of system call bit map
in response to application's call to
TT_PROC_SET_SCBM and reports to debugger any system
call event that is enabled in the bit map.
JAGag35938: Aries RC file could not match application
name even if full path to application was specified.
Aries does not print the RC file location and line
no. in case there is problem in options processing.
Aries did not force the first column in any line
to begin with / (path) or # (comment). These problems
are resolved in Aries RC file search and options
processing. Now Aries processes one line at a time
from the RC file compared to earlier full file
processing at the end.
JAGag35957: Aries generated core file has the signal no.
set to -1 instead of 0 for non-signal receiving
threads. This does not go well for many core file
readers. The signal no. should be greater than or
equal to zero. This problem is resolved by writing
signal no. as 0 for threads that did not receive
the signal.
JAGag35960: Due to an issue on HP-UX 11i V2 the process
does not get killed if raise() is called. This
happens when all the threads are in stopped/blocked
state. To work around this issue Aries now uses
_lwp_kill (_lwp_self(), signo) to kill the process
after writing the core file for the application.
JAGag35964: If a synchronous signal is received inside
Aries code (not emulation code), the Aries signal
handler does nothing and returns to kernel. Kernel
sends the signal agains and this continues forever
wasting lot of CPU cycles. To fix this issue Aries
now uninstalls the signal handler if a synchronous
signal is received inside Aries code, to let the
kernel kill the process.
JAGag35967: Aries translation for STBY used reading the
whole word, modify the required bytes and store the
modified word at the memory location. This causes
problems in multi-threaded applications as different
threads could be examining/modifying different
bytes of same word at same address at the same time.
In a particular load test we found that libc data
got corrupted such that holding block for small
allocated block was corrupt. This problem however,
gets masked if SBA is turned off _M_SBA_OPTS=0:0:0 .
To fix the issue Aries translation for STBY now
modifies one byte at a time.
PHSS_35045:
JAGaf95615: Aries did not properly handle the special case
of some system calls (lseek64, sendfile64, ulimit64,
sendpath64) which return 64 bit value in ret0 and
ret1. If such system call is interrupted in Aries -
before returning from sigcleanup() Aries was forcing
ret1 to 0. That caused the system call to return
wrong value.
JAGaf95794: Newer versions of gdb (beyond 3.2) use ttrace
request TT_PROC_SET_SCBM which is used to set and
unset mask for reporting of TT_EVT_SYSCALL_ENTRY and
TT_EVT_SYSCALL_RETURN. Aries did not implement the
TT_PROC_SET_SCBM ttrace request.
JAGaf96691: In newer versions of gdb (beyond 3.2) some
ttrace events are added if the debugged process
calls fork(). As a result Aries was waiting for the
response from wrong PID (that of parent instead of
child).
JAGag01379: Aries had implemented optimization to fold
LDIL/LDO pair of PA-RISC opcodes into single movl
opcode in translation. Older PA-RISC 1.0 applications
use LDIL to GR0 to mark line no. information for
debugging. Aries did not handle the case of LDIL
with target GR0 for LDIL/LDO optimization.
JAGag08473: Aries fails to cleanup the temporary file
from /tmp directory which is used for communication
between PA-RISC debugger and debugged processes. This
happens due to an implementation error in a check.
JAGag08479: Aries incorrectly assumed that
load_info->li_aout_path passed by kernel contains
full absolute path to the invoked application. But
it contains what shell passed in as first argument
to exec*() system call. Shell does not always
expand the invoked command to full absolute path.
To resolve the issue Aries now uses libc API
realpath() and search in the application's
environment strings.
JAGag08481: Aries has unified address map for non modifying
and self modifying code. In the event of FIC address
found to be translated - Aries discards all
translations including the ones for non modifying
code. Aries now implements two address maps - one
for non modifying code and other for self modifying
code. For FIC address flush Aries only resets the
address map for self modifying code. As a result
translations for non modifying code is preserved.
JAGag08484: 32 bit Aries has global Translation Lookup
Buffer (TLB) table with size of 4096 entries. For
large applications there is excessive collisions
that result in lookup failure. A high level lookup
happens after TLB miss which is significantly slower.
To reduce the TLB contention it's size is increased
from 4096 entries to 16536 entries. This problem
does not apply to 64 bit Aries which has per thread
TLB.
JAGag08487: Aries incorrectly treated some translated
PA-RISC basic blocks as being interpreted and
corrupted the pointer to the translated address.
This causes misaligned address fault and the process
hangs.
JAGag08581: When a PA-RISC basic block ends with a NIT
branch in delay slot of a non-NIT branch - Aries
dynamic translator bails out to interpreter. This is
unnecessary and now Aries dynamic translator handles
this case.
JAGag08586: Aries is enhanced to do superblock scheduling
in a two phase dynamic translation. Many low level
optimizations are implemented which are applied
after code generation. This functionality in Aries
can be turned on by passing option -sched_trace in
Aries resource configuration file.
JAGag09223: For non-threaded applications Aries relies on
user to specify -noasync_chk option with which
performance is slightly better. Aries is enhanced to
generate async_check stub only for PA-RISC basic
blocks which form the back edges of loops. Also the
Aries option -noasync_chk is removed.
JAGag10127: While performing system upgrade from 11.22 to
11.23 Aries failed while trying to get full path
name to executable. Aries did not handle the case
of PATH environment variable containing strings that
do not begin with either '/' or '.' . The failure to
get full path name to executable should not be a
fatal error for Aries to abort to abort emulation.
Removed the error checking code that caused abort
due to failure to get full path name to executable.
PHSS_34201:
JAGaf63109: _lwp_suspend_unlock() system call in Aries was
being done as a single operation and relied on the
fact that target thread's suspension safeness was not
changed between the check for suspension safeness and
the actual system call. This was leading to possible
deadlock if target thread had left the suspension
safe zone an acquired another mutex lock. To correct
the problem now _lwp_suspend_unlock() system call is
emulated as two operations - suspend and unlock.
Unlock only if target thread is still suspension safe.
JAGaf63273: Conversion of out of range FP value to fixed
point integer is undefined operation on PA-RISC and
IA-64 processor. Both processors deliver different
results to target register in such situations. To fix
this problem Aries generated code checks the FP
register value and if out of range then explicitly
emulates the PA-RISC native behavior.
JAGaf77297: lseek64() system call returns 64 bit offset in
registers ret0 and ret1. In Aries sigcleanup()
emulation for EOSYS_NORMAL case, the register ret1
was being forced to 0. Thus if the lseek64() system
call when returning from kernel discovers a signal
its return value was getting corrupted while returning
from Aries emulated sigcleanup().
JAGaf82326: For corefile writing while reading PA-RISC JAVA
program's stack region Aries encountered some pages
with PROT_NONE protection bits. This caused Aries
corefile writing to be aborted and generated corefile
was incomplete. To fix the problem Aries converts all
pages with PROT_NONE protection in application's data
segment to PROT_READ and reverts the original
protection bits after the corefile writing is
complete.
JAGaf86374: PA-RISC divide an remainder millicode routines
use ADDC an DS (divide step) instructions repeatedly
and the whole sequence involves more than 60 such
instructions. IA-64 does not have DS operation and
Aries generated code simulated PA-RISC DS with
multiple instructions. The translation of such
divide and remainder routines resulted in
inefficient IA-64 code. To fix the problem Aries
matches the pattern of PA-RISC basic blocks with the
PA-RISC divide and remainder millicode routines. If
detected IA-64 native divide and remainder routines
are copied as translation.
JAGaf86375: Aries did not translate PA-RISC opcodes LDCW,
LDCD, FDC and PROBE and emulated these opcodes as
'interpret only'. This results in performance
degradation of PA-RISC applications which are heavy
users of these opcodes e.g. multi-threaded
applications use LDCW frequently for mutex locks and
condition variables. To fix this problem translations
were added for these opcodes to Aries dynamic
translator.
JAGaf86376: In multithreaded environment Aries protects
it's PA vip to IA-64 translated address mapping data
structures with thread mutex locks. The mutex is
required for readers and writer of the data structure.
There are always far more no. of reads of this data
structure. To fix this problem the requirement for
data structure readers to acquire mutex lock has been
removed and data structure write operation is modified
to ensure that reader always read the consistent
value.
JAGaf86377: PA-RISC 1.1 processor does not have MFIA
instruction to move the instruction pointer to general
register. Compiler generated code synthesizes this
operation as a local branch with link to next_pc+4.
This situation creates too many small basic blocks
under Aries and restricts code optimization. To fix
this problem Aries detects the MFIA operation
synthesis and replaces it with MFIA opcode
translation.
JAGaf86379: PA-RISC unoptimized code can have many NOPs.
Also branch opcodes have delay slots and if compiler
does not find a suitable candidate then fills it with
a NOP. IA-64 processor does not have such restrictions
and Aries need not translate PA-RISC NOP opcodes.
JAGaf86380: Aries emulation of thread synchronization
operations like suspend, resume etc is slow as Aries
used mutex lock in busywait loop to check for target
thread's suspension safeness. To fix this problem
Aries now uses timed wait on condition variable to
detect target thread's suspension safeness.
JAGaf86381: PA-RISC applications frequently use opcode pairs
like LDIL/LDO, ADDIL/LDO, ADDIL/BVE to use 32 bit
immediate values. These operations can be folded into
single operation on IA-64 as movl opcode can handle
immediate values upto 64 bit.
JAGaf86382: Aries scheduling of translated code contains
unnecessary stop bits, wrong template selection for
branch opcodes and an unnecessary subtract instruction
for translation of ADDIB PA-RISC opcode.
JAGaf88158: The PA-RISC perl-5.8.3 test case .../ext/threads
/t/libc.t which uses gmtime() libc operation fails
intermittently with incorrect result. The problem was
due to Aries translating strongly ordered PA-RISC
store operation as weakly ordered store and a
memory fence operation. To fix the problem Aries
translation now emits strongly ordered store
for strongly ordered PA-RISC store operation.
PHSS_32502:
JAGaf46156: The defect was caused as Aries could not keep
in sync with the kernel changes after the support for
generation of corefile was implemented in Aries long
back. This change relates to fixing the semantics of
core file when it is explicitly created using the
ttrace TT_PROC_CORE mechanism.
JAGaf46956: This problem stems from the difference in
precedence between the D (Denormalise As Zero) bit
and the U (underflow trap enable) bit. On PA , if the
FPSR has both D-bit and U-bit on , and
denormalisation occurs, then the D-bit gets
precedence and the result of the operation is
flushed to zero, and no Underflow trap is signaled.
Whereas on IA64 processors, if both U-bit and FTZ-bit
are on in the FPSR (AR40) , and denormalisation
occurs, then the U-bit gets precedence and the
Underflow trap is signaled.
JAGaf47828: When a PA process is running under Aries, a PA
gdb should be able to attach to the PA process and
provide PA debugging facilities as is existent in a
PA machine. This is an enhancement over the existing
support for debugging a PA process by executing it
from gdb.
JAGaf48018: The ARIES binary emulator does not use the
uc_link parameter provided in the context supplied
as a parameter to the setcontext(2) system call.
This causes applications running under Aries to
finish prematurely.
PHSS_32213:
JAGaf37580: Aries translation for PA basic blocks which
end with indirect branches is such that the control
goes out of translated code and pending async events
are checked. So translations for PA basic blocks
ending with indirect branches need not do any async
check.
JAGaf40164: Aries64 fails to create more than 256 threads
with default values of Aries and relevant kernel
tunable parameters. While it should be able to
create more than 400 threads. This is because of the
memory fragmentation in Aries heap which allocates
memory of the next higher size which is power of 2.
JAGaf43124: When PA application received more than 1
signal with ss_flags set to SS_INSYSCALL while
returning from system call and enters the signal
handler for one of the signal which masks out other
received signals - Aries is unable to handle the
situation when the signal handler unmasks one of
the signals which was received earlier, before
completion of the signal handler.
JAGaf45095: Aries assembly stub which is used to make
native system call was storing the current ar.pfs
value in a local non-static register, before making
the system call. Kernel does not guarantee the value
of ar.pfs to be unmodified if the same was not stored
in r11.
JAGaf45522: Aries emulation of FIC instruction was causing
translation buffer discard even if the FIC address
was not already translated. This causes significant
performance overhead as translation buffer discard
is costly operation as it waits for all others
threads to suspend.
PHSS_31816:
JAGaf33788: The _lw_mxn_setsigmask system
call uses a special runtime architecture. It passes
its arguments in unconventional registers and the
kernel too returns the previous mask is a non
standard fashion. This special behaviour was
not correctly captured in the Aries emulation of
this system call.
PHSS_30779:
JAGaf19718: Aries syscall emulation code would result in a
synchronous SIGSEGV if the syscall number was outside
the range of syscall numbers Aries implemented i.e 540
Now Aries handles upto syscall number 1023 and aborts
with a meaningful message if the range is outside that.
This product update is pre-enablement for Aries
handling of new system calls that may be added in
future HP-UX releases.
JAGaf21975: This product update contains some minor
enhancements required to pre-enable a future HP-UX
nodename and hostname expansion product bundle
(NodeHostNameXpnd). Aries explicitly handles uname(2)
system call. Handling of this system call in Aries
is updated for future expansion of the maximum
length of the nodename and hostname in utsname
structure.
JAGaf21978: This product update contains some minor
enhancements required to pre-enable a future HP-UX
nodename and hostname expansion product bundle
(NodeHostNameXpnd). Since Aries writes out core file
for PA-RISC application. This product update contains
Aries changes to write out PA-RISC application core
file in new format if HP-UX nodename and hostname
expansion product bundle is installed on the system.
JAGaf22148: Aries did not handle the case where a junk
non-zero parameter is sent as fourth argument to the
system call _lwp_create(). In such cases, the junk
non-zero fourth argument would be dereferenced by
Aries , and since this dereferencing happens in a
signals-blocked region, the process would hang. This
situation is now rectified by making sure that no
dereferencing happens if the fourth argument is not
valid.
JAGaf25574: Some PA applications hang intermittently
with infinite SIGILLs after running for long time.
This happens as Aries did not bring the I-Cache and
instruction stream in memory in sync after writing
out pre-fabricated dynamically translated code to
translation buffer. This results in malformed
instructions execution in I-Cache and that results
in SIGILL. Since the signal is generated synchronously
and the fault is not cleared by signal handler,
same signal keeps arriving infinitely.
JAGaf25951: PA64 core file generated by Aries does not
contain data segment of emulated PA64 dld.sl. This
happens as Aries wrongly loaded data segment of dld.sl
in Aries's privated area and did not explicitly
write out PA64 dld.sl's data segment to core file.
JAGaf30208: For a graphics oriented application Aries
renders image wrongly and the image is heavily
distorted. This happened due to wrong translation
for some subops in FCMP opcode.
PHSS_30674:
JAGaf07351: PA application fails with coredump with SIGILL
after running for many days. Aries did not block
signals in the code regions which update RSE settings.
Asynchronous signals were arriving at a very high
rate and the probability of signal arriving while
Aries was updating RSE was high. If asynchronous
signal arrives while Aries was updating RSE, it would
cause the emulated context to get corrupt including
iaoq_front and iaoq_back emulated registers. This
caused emulation to resume at trashed iaoq_front and
Aries received SIGILL and killed PA process with
core dump. Since the emulated PA context was corrupt,
the PA core file had all registers values trashed.
Now Aries blocks all signals while it is updating
RSE.
JAGaf14627: Aries prints core file name after writing out
core file for PA application. In case the current
working directory is root at the time of core dump,
Aries was printing the core file name as //core.app.
This caused confusion to users as they though that
Aries got NULL current working directory name. Now
Aries checks if the current working directory is
root, in that case Aries does not append / to current
working directory name while constructing core file
name.
JAGaf18011: If multiple asynchronous signals arrive while
Aries was in emulated system call - Aries did not
deliver all the signals in a nested fashion. One of
signals was not delivered and it's signal handler was
not emulated. This caused the context to get corrupt
in post signal delivery emulation. The data pointer
was pointing to other load module while in libc. This
caused the application to fail with SIGSEGV. Aries
now checks if there are other signals pending while
emulating sigcleanup() system call of PA application.
If there are any more signals pending, Aries makes
sure that they are delivered before resuming the
emulation post signal delivery.
JAGaf19149: lw_mcas_util_unlock is MxN related system
call and Aries was wrongly emulating it as simple
mcas system call. This caused wrong emulation of
lw_mcas_util_unlock. Now Aries passes this system
call to native kernel.
PHSS_30237:
JAGae90842: Aries emits a single bundle at the start of
each dyncode which check for pending async events
every time the dyncode block is entered. The check is
recoded to delay the pending event by one iteration.
This allows more flexibility to scheduler to consume
less cycles.
JAGaf05999: vxsvc command aborts with Aries error message
- unable to continue, insufficient resources. The
error was caused as Aries dynamic translator was
running out of memory. The problem was fixed by
increasing the memory allocated for dynamic
translator.
JAGaf06545: Aries implementation did not allow different
types of executables to inherit stack size limits
from process that issues execve() system call. The
current emulation allowed only PA32 process to
inherit stack size from PA32 process and similarly
PA64 processes to inherit stack size limits from
PA64 processes. Aries emulation of PA stack and stack
size limits was modified such that PA processes can
inherit stack size limits from IPF processes and
vice versa. This also holds good for 32 bit and 64
bit processes.
JAGaf06806: If the PA app was compiled for PA-RISC 1.1
with +DA1.1, setcontext system call did not work
correctly under Aries. The problem was that Aries
was wrongly updating emulated stack frame with values
from uc_spares; while this was not to be done.
JAGaf07720: Aries keeps track of application's mmap/shmat/
shmdt system calls by maintaining a linked list for
private mmap regions and shared memory segments.
There was memory leak in Aries if a particular
segment was unmapped or shared memory segment
detached. In such case, Aries did not free up the
memory consumed by the corresponding node in the
linked list.
JAGaf08077: Aries emulation of PA stack growth relies
on reception of SIGSEGV corresponding to memory
access in PA stack region beyond allocated pages. It
was possible to pass a address to system call which
happens to be from currently unallocated PA stack
memory address. In such case, kernel returned EFAULT.
To fix this problem, Aries ensures that few pages
are allocated for PA stack if required, before going
to emulate PA application's system call.
JAGaf10821: If PA application has passed NULL argv
argument to execve() system call, it may fail under
Aries with EFAULT. This is because Aries necessarily
adds argv[0] to indicate program executable name
to argv strings. The error was that in such case
Aries did not initialize argv[1] to null string.
JAGaf14318: PA32 program which tries to get and set the
value of PA stack size limits by using getrlimit64 and
setrlimit64 system calls, does not work correctly
under Aries. This is because Aries did not read
and write upper 32 bits of rlim_cur and rlim_max
64 bit fields of return structure. This caused
getrlimit64 to return bogus value for PA stack and
setrlimit64 to always set the stack limits to min
i.e. 256 kb.
PHSS_30015:
JAGaf01019: Aries handles stack growth for the emulated PA
application. This job is normally done by the kernel.
While growing the stack Aries needs to check if the
stack growth is going to succeed. The problem occurred
as the check did not consider the possibility of stack
being mapped to shared memory area.
JAGaf00844: The problem occurred as the Aries instruction
interpreter did not correctly handle FCMP instruction
when the compare condition is "unord" and any of
"less-than", "greater-than" or "equal".
JAGae94257: The problem occurs because if the emulated PA
application causes a stack growth failure then Aries
fails to dump the complete stack details in the core
file. Note that the stack growth failure is caused by
the PA application and not Aries itself.
JAGae99126: The problem occurs because _PSTAT64 uses
different data structures than those in the narrow
mode interface. Aries needs to use wide mode data
structures when emulating an application compiled
with _PSTAT64. Using the narrow mode data structures
in a wide mode pstat() call may result in return of
incorrect stack pointer which if accessed may cause
a program abort.
JAGae95064: The problem occurs because some legacy
PA-RISC applications may be invoking execve(2)
system call with NULL argument. This is not allowed
by the HPUX 11.23 kernel but is allowed by HPUX 11.11
kernel and earlier. Aries needs to accommodate this
difference.
JAGae91695: Due to unimplemented op-codes of FCMP and
MFCTL in the Aries dynamic translator the performance
of graphics applications were degraded.
JAGae91550: The problem occurs due to incorrect emulation
of lio_listio(2) system call by Aries. Aries was
returning EINVAL error code when lio_listio() was
invoked with the fourth argument as NULL.
JAGae91549: System call settune(2) has a 64bit second
argument which Aries was passing as a 32bit value.
This resulted the settune call to return EINVAL.
JAGae90973: Aries new dynamic translator did not handle
ADDI instruction translation. This caused
application performance to degrade with new dynamic
translator.
PHSS_29658:
JAGae74194: Aries emulation of fork system call was
incorrect. Aries did not suspend all threads in
emulated process while emulating fork. This could
lead to unpredictable behaviour.
JAGae79229: Aries dynamic translator does not generate
code for correctly delivering converted value to
target register if the result was unordered value.
JAGae80642: Aries did not make sure that a failing
probe instruction should modify the target. On PA
RISC processor failing probe instruction modifies the
target, while on IPF processor failing probe
instruction is jumped over by kernel as if it was
nullified.
JAGae80912: Aries64 for it's internal use shifted the
location of kernel passed load_info parameter from
arg3 to arg4. This caused caliper to fail on PA64
application as caliper was unable to retrieve
load_info parameter from arg3 register.
JAGae81311: Aries conditionally passes SIGXCPU/SIGXFSZ
signal to emulated PA application in order to
correctly emulate the difference among CLASSIC and
UNIX95 environments. The Aries check for doing so
did not take into account the errno when the signal
arrived in the middle of a system call (EINTR).
JAGae81759: Aries did not write out shared memory
segment to PA application core file. This was
because of a wrong check for shmflag for shared
segments used by PA application.
JAGae82598: Aries prints wrong error message in case there
is PA emulated application stack growth failure. In
such case, Aries did not take care of correctly
printing error message when it could not service
stack growth of PA application. The fix is only
about printing correct error message about stack
growth failure, before generating PA application core
file which is normal.
JAGae83281: Aries emulation of PA stack did not have
provision for honoring the stack size limits in
shell (set through ulimit -s). Also it did not
inherit stack size limits from parent PA process.
Same is true for core file size limits.
JAGae83314: Aries interpreter did not correctly emulate
FCNV opcode when the result of conversion was
unordered.
JAGae84933: Aries emulation of system call timer_create
was not correct. Aries did not check for NULL
second parameter and so could not correctly
deliver EFAULT to application.
JAGae84938: Aries64 did not correctly emulate mcas
system call if the system call goes to 32 bit
PA gateway page. The Aries check to determine
that a PA branch is a system call did not take into
account that mcas system calls do not go to start of
32 bit gateway page.
JAGae85165: Aries emulation of getcontext did not emulate
ss_flag.
JAGae85167: Aries64 emulation of setcontext system call
did not take into account the extra work done by
PA kernel. On PA, kernel copies the value of
ucontext pointer to ret1 for setcontext system call.
Aries did not emulate this semantics of PA kernel.
JAGae86862: Aries design made sure that in any case
one of the core file - for Aries or for PA
application, should be correct. Setting corefile size
to be very low causes Aries to encounter error while
writing core file for PA application. In such case
Aries proceeded letting kernel dump core file for
Aries, while Aries partially generated core file for
PA application. Since core file for Aries is of no
debugging aid, id does not make sense to generate
core file for Aries.
JAGae87409: Aries processing of .ariesrc file did not
have provision of reading .ariesrc file from home and
root directory cumulatively.
Enhancement:
Yes
PHSS_35528:
This patch delivers following enhancements -
- Ability to use PA-RISC system call tracer like tusc
to be used on emulated processes.
- For better performance PA-RISC basic blocks which
access FPSR are now translated.
- For better performance emulated FP register context is
now mapped on to general register stack. This feature
can be turned off with Aries option -noopt_fpgr.
PHSS_35045:
This patch delivers Aries performance improvements for
Java based applications. Also, superblock scheduling is
supported in the Aries dynamic translator.
PHSS_34201:
This patch delivers several Aries performance enhancements
including thread mutex lock contention reduction, better
code scheduling and optimization of translated code.
PHSS_32502:
This patch delivers new functionality for attaching a PA
gdb running under Aries to a PA process also running under
Aries.
PHSS_30779:
Support added for future maximum length expansion of
nodename and hostname.
PHSS_30237:
This patch delivers better performance for compute
intensive PA-RISC applications.
SR:
8606451815 8606453337 8606453342 8606455260 8606462827
8606482006 8606482010 8606482011 8606482013 8606482014
8606482016 8606482039 8606482042 8606482046 8606482049
8606437430 8606437624 8606438628 8606443743 8606451543
8606451549 8606451551 8606451555 8606451559 8606451659
8606451664 8606452393 8606453390 8606403175 8606403340
8606417464 8606422502 8606426893 8606426894 8606426895
8606426896 8606426898 8606426899 8606426900 8606426901
8606428677 8606386002 8606386802 8606387675 8606387865
8606385368 8606377302 8606379928 8606382914 8606384941
8606373396 8606369664 8606364937 8606365316 8606359022
8606361285 8606361288 8606361458 8606346527 8606353833
8606357311 8606358450 8606329719 8606345149 8606345699
8606345961 8606346897 8606347254 8606350000 8606353524
8606340099 8606339923 8606333162 8606338152 8606333980
8606330572 8606330427 8606330426 8606329850 8606311354
8606316514 8606318107 8606318400 8606318821 8606319269
8606320112 8606320799 8606320832 8606322465 8606322470
8606322698 8606322700 8606324556 8606325119
Patch Files:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux64/aries64.so
/usr/lib/hpux64/pa_boot64.so
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux32/aries32.so
/usr/lib/hpux32/pa_boot32.so
what(1) Output:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux64/aries64.so:
HP ARIES (64bit) () B.11.23.00 (PHSS_35528) Ver: 2.0
.00007 Mar 24, 2007 1:53:26.
/usr/lib/hpux64/pa_boot64.so:
HP ARIES (64bit) () B.11.23.00 (PHSS_35528) Ver: 2.0
.00007 Mar 24, 2007 1:55:16.
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
/usr/lib/hpux32/aries32.so:
HP ARIES (32bit) () B.11.23.00 (PHSS_35528) Ver: 2.0
.00007 Mar 24, 2007 1:46:53.
/usr/lib/hpux32/pa_boot32.so:
HP ARIES (32bit) () B.11.23.00 (PHSS_35528) Ver: 2.0
.00007 Mar 24, 2007 1:48:37.
cksum(1) Output:
OS-Core.CORE2-64SLIB,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
3836988487 2990448 /usr/lib/hpux64/aries64.so
3428039193 164536 /usr/lib/hpux64/pa_boot64.so
OS-Core.CORE2-SHLIBS,fr=B.11.23,fa=HP-UX_B.11.23_IA,v=HP:
1308632992 3069836 /usr/lib/hpux32/aries32.so
995794097 158468 /usr/lib/hpux32/pa_boot32.so
Patch Conflicts: None
Patch Dependencies: None
Hardware Dependencies: None
Other Dependencies: None
Supersedes:
PHSS_29658 PHSS_30015 PHSS_30237 PHSS_30674 PHSS_30779 PHSS_31816
PHSS_32213 PHSS_32502 PHSS_34201 PHSS_35045
Equivalent Patches: None
Patch Package Size: 1780 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 PHSS_35528
5. Run swinstall to install the patch:
swinstall -x autoreboot=true -x patch_match_target=true \
-s /tmp/PHSS_35528.depot
By default swinstall will archive the original software in
/var/adm/sw/save/PHSS_35528. 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 PHSS_35528.text file is
available in the product readme:
swlist -l product -a readme -d @ /tmp/PHSS_35528.depot
To put this patch on a magnetic tape and install from the
tape drive, use the command:
dd if=/tmp/PHSS_35528.depot of=/dev/rmt/0m bs=2k
Special Installation Instructions:
This patch requires manual restarting of operational
PA-RISC processes and daemons after the installation to
ensure that those processes use patched Aries.
|