Jump to content 日本-日本語
日本HPホーム 製品とサービス サポートとドライバ ソリューション ご購入方法
≫ お問い合わせ
日本HPホーム
企業ユーザ向けサポート情報   >  HP-UX サポート  >  セキュリティ報告&パッチダイジェスト翻訳版

PHSS_35528 s700_800 11.23 Aries累積パッチ

企業ユーザ向けサポート情報

HP-UX サポート
Tru64 サポート
OpenVMS サポート
セキュリティ報告&パッチダイジェスト翻訳版
技術情報ツリー
ソフトウェアアップデート情報
ITRC日本フォーラム

ITRC

パッチデータベース
技術情報ベースの検索
サポートケースマネージャ
ソフトウェア アップデート マネージャ (SUM)
ご利用の手順
日本HPサイトマップ
コンテンツに進む
パッチ名:   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.

ページトップへ
セキュリティ報告&パッチダイジェスト翻訳版に戻る
プライバシー 本サイト利用時の合意事項 ウェブマスターに連絡
© 2008 Hewlett-Packard Development Company, L.P.