Patch Name: PHSS_30214 Patch Description: s700_800 11.22 Aries cumulative patch Creation Date: 04/03/12 Post Date: 04/03/23 Hardware Platforms - OS Releases: s700: 11.22 s800: 11.22 Products: N/A Filesets: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHSS_30214: ABORT JAGaf05999: Aries aborts emulatino with error message - unable to continue, insufficient resources. JAGae99126: Aries returns incorrect stack pointer from pstat() when PA app is compiled with _PSTAT64. This might cause the PA app to abort by accesssing the incorrect stack pointer. Also the patch fixes defects which cause PA application to fail with core dump. PHSS_29654: ABORT This patch fixes defects that cause PA application to fail with unexpected abort with core dump under Aries. PHSS_28827: OTHER This patch fixes a critical problem reported with superseded patch PHSS_27292. A critical warning is issued for superseded patch PHSS_27292. This patch fixes the problem of swverify/swagent unexpectedly aborting with error messages like below ERROR: RPC exception: "Connection closed (dce / rpc)" Category Tags: defect_repair enhancement general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHSS_30214 Symptoms: PHSS_30214: JAGae90842: Aries async signal handling needs to be modified for better performance. JAGae90973: Performance degradation due to new dynamic translator in Aries not translating ADDI instruction JAGae91549: Aries does not emulate settune(2) system call correctly. JAGae91550: Aries does not emulate lio_listio(2) system call correctly. JAGae91695: Performance degradation due to unimplemented FCMP and MFCTL instruction in Aries dynamic translator. JAGae94257: Aries dumps incomplete stack details in the core file when emulated PA program aborts due to stack growth failure. JAGae95064: Aries does not support PA-RISC applications that invoke execve(2) system call with NULL arguments. JAGae99126: Aries returns incorrect stack pointer from pstat() when PA app is compiled with _PSTAT64. This might cause the PA app to abort by accesssing the incorrect stack pointer. JAGaf00844: Aries emulated FCMP instruction incorrectly when operands to FCMP are unordered values. JAGaf01019: Aries cannot emulate PA applications that allocate private stack regions in shared memory area. 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_29654: JAGae79229: Aries emulation for FCNV opcode with unordered values is incorrect. JAGae79958: Aries64 fails due to enhanced VM address space limits on 11.23 system. 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. JAGae84455: Aries emulation for system call _lw_get_thread_times is incorrect. 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. PHSS_28974: JAGae45193: _lwp_getstate() with invalid lwpid causes Aries to fail. JAGae45201: Invalid stack pointer in _lwp_create does not return correct error code. JAGae45205: pstat_getlwp returns PS_SLEEP even when thread is not sleeping. JAGae45215: _lwp_terminate() hangs under Aries on Itanium2 single processor system. JAGae51381: Aries64 does not correctly emulate sigsetstate mask() system call. JAGae68150: Aries does not correctly emulate system call _lwp_proc_info for sigmask. JAGae68153: Aries implementation of AMA need to be redesigned for flexibility. JAGae70949: Aries does not correctly emulate asynchronous I/O related system calls. JAGae73624: Unnecessary calls to aries_purge() slows down PA application performance having many BOR symbols. JAGae74194: Regression test multi_thread_sigwait hangs under Aries. This involves forking in multithreaded processes. PHSS_28827: JAGae52562: PHSS_27292 introduced behavior that can cause PA-RISC applications running through the Aries(5) PA-RISC emulator on 11.22 to fail under certain conditions. In certain rare, timing-dependent scenarios PA-RISC applications invoking a blocking system call may find the system call returning an incorrect or undefined value if the system call was interrupted by a signal. This may lead to unexpected behavior including the possible termination of the application. This behavior does not affect blocking system calls that are not interrupted by a signal. One manifestation of this issue is that has been observed is that the Software Distributor commands such as swinstall(1M), swremove(1M), swcopy(1M), swverify(1M) may fail with messages similar to the following: ERROR: RPC exception: "Connection closed (dce / rpc)" PHSS_27292: JAGae30820: Aries cannot dump core when exiting orcle's svrmgrl prompt. JAGae31177: Aries does not correctly emulate return value of interrupted lwp system calls. JAGae31178: PA application passing bad pointers to system calls hangs under Aries. JAGae32645: PA applications making blocking system calls expect 2x slowdown on B.11.22 Aries. JAGae33523: Signals ignored by PA application can cause sigwait() system call to return under Aries. JAGae34700: FPSR T bit set to true across basic block boundary causes Aries to hang. JAGae34834: Aries does not correctly deliver signals to exec'ed process. JAGae35251: Space registers not modified correctly in _lwp_setstate() and not retrieved in _lwp_getstate() system calls. JAGae35931: If PA application passes bad pointer for timeout arg. in sigtimedwait() system call - it will hang under Aries. JAGae35423: B.11.22 Aries hangs if the environment strings size exceed initial allocated PA stack under Aries (default 64 kb). JAGae43270: tuneinfo obsoleted in 11.22. Aries gives SIGSYS for PA tuneinfo syscall. JAGae29910: Pa applications using dce (or any user space) threads do not produce correct corefile while running under Aries. JAGae29920: Disabling watchpoint while using PA GDB under Aries can cause spurious SIGTRAP signals to be reported by PA GDB to the PA application. JAGae30373: While debugging a PA application using PA GDB under Aries, if the user invokes backtrace command from a signal handler, not all stack frames are displayed. JAGae29917: Aries dynamic code generator does not generate correct code for LDCW, LDCD PA instructions with index format. Defect Description: PHSS_30214: JAGae90842: Aries emits a single bundle at the start of each dyncode which check for pending async events everytime the dyncode block is entered. The check is recoded to delay the pending event by one iteration. This allows more flexibility to schedular to consume less cycles. JAGae90973: Aries new dynamic translator did not handle ADDI instruction translation. This caused application performance to degrade with new dynamic translator. 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. 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. JAGae91695: Due to unimplemented op-codes of FCMP and MFCTL in the Aries dynamic translator the performance of graphics applications were degraded. 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. 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 accomodate this difference. 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. 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". 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 occured as the check did not consider the possibility of stack being mapped to shared memory area. 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 corresponsing 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_29654: JAGae79229: Aries dynamic translator does not generate code for correctly delivering converted value to target register if the result was unordered value. JAGae79958: Aries64 checks for range of addresses to determine if a data address points to a valid OPD. On 11.23, kernel VM changed the upper limits for data quadrant virtual address space. This caused Aries64 check for OPD to fail. 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. JAGae84455: Aries emulation for system call _lw_get_thread_times did not take care of correctly updating special registers (r20, r21, ret0, ret1 emulated PA registers) to pass kernel returned value to emulated application. 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. PHSS_28974: JAGae45193: Aries was using the pointer returned by thread_lookup() before checking for it's non-NULL value. Aries should return EFAULT for null pointer returned by thread_lookup() function. JAGae45201: For returning EFAULT in _lwp_create() Aries was just relying on PA application passed gr30 to be 0. Aries should return EFAULT even if gr30 is non-zero but an invalid address. JAGae45205: The problem occured as Aries passed pstat_ getlwp() system call to native kernel. Native kernel can return PS_SLEEP for target thread due to Aries induced nanosleep() calls for internal locking. Now if native kernel returns PS_SLEEP we check if Aries was in system call emulation code, if yes, then return PS_SLEEP to application. JAGae45215: On single processor Itanium2 system a testcase involving _lwp_terminate() hangs. This happens because Aries was just marking target thread's suspension pending bit true and did not increased it's suspension count. That caused target thread to enter sus-safe zone and leave immediately, causing _lwp_terminate() caller to wait indefinitely. JAGae51381: A simple PA64 testcase involving setjmp/ longjmp and signals hanged after first signal reception. There was a porting problem in Aries64 from Aries32 code for sigsetstatemask() system call emulation. JAGae68150: Aries was passing _lwp_proc_info system call to native kernel and returned the sigmask field filled by native kernel to application. Aries should virtualize the sigmask field filled by kernel and then pass it on to application. Also for filling lwp_sig (list of pending signals to target lwp) Aries should lookup it's own data structure also for any pending signals to target lwp. JAGae68153: Aries's implementation of AMA (Aries managed area) needed to redesigned by better flexibility. This involved addition of new Aries options. The new design takes care of optimal usage of memory (AMA) for Aries heap, emulated PA stack, code cache region etc. For details on new Aries options please contact Aries support. JAGae70949: Aries was not converting sigevent structure from PA format to IPF before passing the aio_* calls to native kernel. Fixed the assembly stubs in Aries to correctly pass 64 bit arguments to native kernel for system calls sendfile64, sendpath64, pread64 and pwrite64. JAGae73624: Aries called aries_purge() (to discard already translated code) every time it discovered FIC instruction in PA instruction stream. Aries did this even when there was no translated code in code cache. This had unnecessay overhead. Now Aries calls aries_purge() only if there are some translated blocks in Aries code cache. JAGae74194: A program that involves forking from multi- threaded process might hang under Aries. There was a problem in memory free in Aries child process. The area that was reclaimed from other threads right after fork, had a guard page with PROT_NONE protection. This free'ed area was added to free list. Subsequent use of this memory in child process can cause SIGSEGV/SIGBUS. PHSS_28827: JAGae52562: The problem in Aries was two fold as follows 1. Aries makes certain native system calls on it's own in order to emulate a PA system call. At the system call boundaries of such system calls, Aries can discover a pending signal from the kernel, in which case the sc_eosys field in sigcontext structure is EOSYS_NORMAL. After receiving this signal Aries may proceed to deliver these signals before completing the PA system call. In this case, the PA application wold reveive a EOSYS_NORMAL signal and continue assuming that the system call had finished whereas Aries never completed that system call. The problem was futher componded by Aries's conversion of sc_eosys, sc_flags delivered to PA application. 2. For blockable system calls, if Aries received signal in a region where the system call was not really blocking in the kernel, would deliver the signal to application such that application sees the blocking system call interrupted. PHSS_27292: JAGae30820: Aries while writing core file for PA application in 32 bit opens the file for reading file header which is written to core file. In this case, Aries was using argv[0] as real name for application executable path - which was wrong. Application had set argv[0] to something that does not corresponds to application executable path name. Instead, Aries should use load_info->li_aout_path for getting the pathname of executable. JAGae31177: In case of interrupted lwp system calls, Aries was setting PA application gr22 incorrectly to 1. Instead, for lwp system calls, Aries should set gr22 to 0. JAGae31178: For some system calls Aries makes use of pointers passed as argument to system calls without checking the same to be a valid address. Instead, Aries should do COPYIN/COPYOUT just like kernel does with application passed pointer values in system calls. JAGae32645: This was side effect of fix for JAGae23773. Additional calls to sigprocmask() around blocking system calls in Aries exhibited around 2x slowdown for PA applications that make large no. of blocking system calls. JAGae33523: Signals ignored by PA application were being added to the set to be waited for sigwait() system call. This would cause sigwait() system call to return even in case, a signal that application has ignored, arrives. JAGae34700: If application executes a floating point instrution that sets up FPSR T bit across basic block boundary - it will hang under Aries. JAGae34834: Execve() system call emulation in Aries did not take care of pending signals being passed properly to the exec'ed process. JAGae35251: Space registers were not being set in _lwp_setstate() and not being retrieved correctly in _lwp_getstate() system call. JAGae35931: Aries was making use of pointer passed as timeout argument to sigtimedwait() system call without checking for it's validity. JAGae35423: Aries did not take into account the size of the environment and argument strings while allocating the initial PA stack. JAGae43270: In 11.20 tuneinfo system call was implemented by IPF kernel and Aries was passing this system call to native kernel. On 11.22 IPF kernel obsoleted this system call and so Aries was receiving SIGSYS for this system call. JAGae29910: Correct ss_flags were not being passed to ss_flags field of save_state in proc_info, which is written to corefile. Due to this debugger was unable to read state of some threads in program from corefile. JAGae29920: Aries was treating SIGTRAP as asynchronous signal even when they occured synchronously. JAGae30373: Aries was allocating much more stack space than required as that on PA native system while delivering signal to PA application. Due to this, debugger was unable to backtrace from signal handler. JAGae29917: Aries was not generating complete code for load and clear part of LDCW, LDCD (index format) PA instructions. Enhancement: Yes PHSS_30214: This patch delivers better performance for compute intensive PA-RISC applications. PHSS_28974: This patch delivers better implementation of AMA (Aries Managed Area) for improved utilization of Aries private memory. SR: 8606329719 8606329850 8606330426 8606330427 8606330572 8606333162 8606333980 8606338152 8606339923 8606340099 8606345149 8606345699 8606345961 8606346897 8606347254 8606350000 8606353524 8606316514 8606317398 8606318107 8606318400 8606318821 8606319269 8606320112 8606320799 8606320832 8606321987 8606322465 8606322470 8606322698 8606322700 8606324556 8606325119 8606281247 8606281256 8606281260 8606281270 8606287442 8606305101 8606305104 8606307914 8606310761 8606311354 8606288631 8606266575 8606266932 8606266933 8606268407 8606269288 8606270464 8606270598 8606271015 8606271752 8606271188 8606279214 8606265653 8606265663 8606266121 8606265660 Patch Files: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux64/aries64.so /usr/lib/hpux64/pa_boot64.so OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux32/aries32.so /usr/lib/hpux32/pa_boot32.so what(1) Output: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux64/aries64.so: HP0000 ARIES64 B.11.22.00 ((TAHOE.11.22.PATCH_STABLE , ARIES64_TAHOE.11.22.PATCH_STABLE, ARIES64_ TAHOE.11.22.PATCH_040319.030633, ISO_ARIES_1 122_PATCH_PHSS_30214)) (PHSS_30214) INum:0 M ar 19, 2004 22:28:43. /usr/lib/hpux64/pa_boot64.so: HP0000 ARIES64 B.11.22.00 ((TAHOE.11.22.PATCH_STABLE , ARIES64_TAHOE.11.22.PATCH_STABLE, ARIES64_ TAHOE.11.22.PATCH_040319.030633, ISO_ARIES_1 122_PATCH_PHSS_30214)) (PHSS_30214) INum:0 M ar 19, 2004 22:29:19. OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: /usr/lib/hpux32/aries32.so: HP0000 ARIES B.11.22.00 ((TAHOE.11.22.PATCH_STABLE, ARIES_TAHOE.11.22.PATCH_STABLE, ARIES_TAHOE. 11.22.PATCH_040319.030042, ISO_ARIES_1122_PA TCH_PHSS_30214)) (PHSS_30214) INum:0 Mar 19, 2004 22:25:7. /usr/lib/hpux32/pa_boot32.so: HP0000 ARIES B.11.22.00 ((TAHOE.11.22.PATCH_STABLE, ARIES_TAHOE.11.22.PATCH_STABLE, ARIES_TAHOE. 11.22.PATCH_040319.030042, ISO_ARIES_1122_PA TCH_PHSS_30214)) (PHSS_30214) INum:0 Mar 19, 2004 22:27:56. cksum(1) Output: OS-Core.CORE2-64SLIB,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: 1938436024 2315088 /usr/lib/hpux64/aries64.so 115447267 148848 /usr/lib/hpux64/pa_boot64.so OS-Core.CORE2-SHLIBS,fr=B.11.22,fa=HP-UX_B.11.22_IA,v=HP: 1497755353 18404340 /usr/lib/hpux32/aries32.so 989497572 119460 /usr/lib/hpux32/pa_boot32.so Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHSS_27292 PHSS_28827 PHSS_28974 PHSS_29654 Equivalent Patches: PHSS_30237: s700: 11.23 s800: 11.23 Patch Package Size: 4270 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_30214 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHSS_30214.depot By default swinstall will archive the original software in /var/adm/sw/save/PHSS_30214. 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_30214.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHSS_30214.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHSS_30214.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None