Patch Name: PHKL_27553 Patch Description: s700_800 11.00 PSW, PA-8700, panic, printf cumulative fix Creation Date: 02/08/04 Post Date: 02/08/07 Hardware Platforms - OS Releases: s700: 11.00 s800: 11.00 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_27553: PANIC PHKL_21681: PANIC HANG PHKL_26337: PANIC PHKL_25352: PANIC PHKL_23815: PANIC PHKL_21760: HANG PHKL_20168: PANIC Category Tags: defect_repair hardware_enablement enhancement general_release critical panic halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_27553 Symptoms: PHKL_27553: ( SR:8606248045 CR:JAGae14445 ) A data page fault panic may occur in rare cases when a system is attempting to perform a stack trace. To date, the panic has only been encountered when running an HP internal tool that is used by support personnel to troubleshoot performance and scalability problems. The stack trace may look similar to the following: lev 0) panic+0x14 lev 1) report_trap_or_int_and_panic+0x80 lev 2) interrupt+0x1d4 lev 3) $ihndlr_rtn+0x0 lev 4) stacktrace+0x198 lev 5) spinwatch_tick_handler+0x2a4 lev 6) sampler+0x84 lev 7) mp_ext_interrupt+0x144 lev 8) ivti_patch_to_nop3+0x0 lev 9) pdapage+0xc lev 10) PHKL_21681: (SR: 8606128587 CR: JAGac86134) Turning on kernel profiling may cause the system to hang. (SR: 8606162544 CR: JAGad31860) Turning on kernel profiling may cause a spinlock deadlock panic. The stack trace may be similar to: profiling_set_it+0x94 set_it+0x190 clock_int+0x98 mp_ext_interrupt+0x144 ivti_patch_to_nop3+0x0 mp_ext_interrupt+0x10c ivti_patch_to_nop3+0x0 read16_pdc_iodc+0x88 core_create_child+0x5c core_scan+0x2b0 gio_scan_subtree+0x188 gio_scan_subtree+0x1c4 gio_scan_subtree+0x1c4 io_scan+0x9c do_io_scan+0x48 dev_config_ioctl+0xd8 spubind_cdev_ioctl+0x94 spec_ioctl+0xac vno_ioctl+0x90 ioctl+0x1d8 syscall+0x480 $syscallrtn+0x0 PHKL_26337: ( SR:8606157819 CR:JAGad27149 ) Fast CPU machines such as V class, N class and Superdomes may panic with "spinlock deadlock" Panic stack trace: LVL FUNC 0) panic+0x14 1) too_much_time+0x2e0 2) wait_for_lock+0x14c 3) slu_retry+0x1c 4) hpstreams_option1+0x2dc 5) prf_putchar+0x364 6) prf+0xdb0 7) uprintf+0x50 8) vx_umsgprint2+0x5c 9) vx_nospace+0xd0 10) vx_zero_alloc+0x320 11) vx_alloc_clear+0x34c 12) vx_write1+0xca0 13) vx_rdwr+0x170 14) vno_rw+0x78 15) write+0x104 16) syscall+0x480 17) $syscallrtn+0x0 PHKL_25352: ( SR:8606203957 CR:JAGad73135 ) A system may panic because of an instruction page fault when a device that has been inadvertently closed tries to put a character. LVL FUNC 0) panic+0x14 1) report_trap_or_int_and_panic+0x4c 2) trap+0xefc 3) thandler+0xbe0 4) prf_putchar+0x308 5) prf+0xd4c 6) uprintf+0x30 7) rfscall+0x4b8 8) rfs3call+0x78 9) nfs3lookup+0x2d0 10) nfs3_lookup+0xf4 11) locallookuppn+0xdc 12) lookuppn+0x100 13) vn_remove+0x70 14) unlink+0x24 15) syscall+0x750 16) syscallinit+0x5b0 PHKL_24028: ( SR: 8606167577 DTS: JAGad36863 ) Missing console and/or syslog data when vmunix tries to print more than 4 kilobytes of information at boot time. Possible side effects include: * The console repeats 4k worth of data -- up to 16 times * The "dmesg" command returns information that was printed prior to the first vmunix entry in syslog.log * Important boot time messages may be lost. PHKL_23815: ( SR: 8606188675 DTS: JAGad57891 ) When booting 11.00 on a PA-8700 system, the system panics with the following message : panic: set_machine_parameters_64: Unidentified cpu type returned from PDC_MODEL Panic stack trace: PC-Offset Stack Trace (read down, top of stack is 1st): panic+0x54 set_machine_parameters_64+0x1f8 rm_setmachineparams_64+0x40 DoCalllist+0x50 RDB_patch_int_trap+0xb0 End Of Stack WARNING: Space ID hashing is disabled PHKL_22084: ( SR: 8606128778 DTS: JAGac86325 ) This problem is specific for 32Bit Kernel. While dumping the machine, The message printing on Console is wrong. But when analyzing the dump, it gives correct values. PHKL_21760: ( SR: 8606136363 DTS: JAGad05488 ) A non-existent memory reference can result in hardware lockups when customers port HP-UX to their own systems and implement code which makes IODC calls or dump_pdc calls which return to user mode. This is not a known problem for HP-UX running on HP machines, since such calls are not allowed in normal code. PHKL_20168: ( SR: 8606107507 DTS: JAGab77743 ) New workstations (B1000, C3000, J5000, J7000) and others released after 06/1999 require this patch to properly create a crash dump after a system panic. Without this patch, the system will hang after a panic and will not produce any data that might help to resolve the problem. Defect Description: PHKL_27553: ( SR:8606248045 CR:JAGae14445 ) The kernel stack boundary was calculated incorrectly during stack unwind. Also bound checking was not done in some cases. This resulted in a read from outside the kernel stack and lead to the data page fault. Resolution: Kernel stack boundary is now calculated correctly. PHKL_21681: (SR: 8606128587 CR: JAGac86134) When the time until the next clock tick is calculated as a negative number, we can infinitely loop with interrupts disabled in the kernel profiling routine that schedules the next sampling time. Resolution: The kernel profiling code was changed to allow proper exit from a loop when the time until the next clock tick is negative. (SR: 8606162544 CR: JAGad31860) Spinlock held too long in kernel profiling routines. Resolution: The kernel profiling code was changed to ensure the spinlock was properly released. PHKL_26337: ( SR:8606157819 CR:JAGad27149 ) This defect is a race condition where the stream head has been closed with the process containing hpstreams_option1 still sleeping. When the process wakes up the address of the stream head has been freed. Resolution: The resolution is to increase the device's dt_opencount before calling STREAM interface, and decrease it later. PHKL_25352: ( SR:8606203957 CR:JAGad73135 ) An attempt was made to put a character to a NODEV device. This resulted in a system panic because the device driver function table is not valid for a NODEV device. Resolution: Added a check that causes requests to put a character to a NODEV device to be ignored. PHKL_24028: ( SR: 8606167577 DTS: JAGad36863 ) The old system message buffer was too small, and several defects appeared when it overflowed. (Having a large number of IO devices could trigger a buffer overflow.) Resolution: 1) Increased the size of the system message buffer. 2) Solved the defects by using a cleaner implementation. 3) Maintained full compatibility with dmesg. PHKL_23815: ( SR: 8606188675 DTS: JAGad57891 ) 11.00 does not recognize the PA-8700 processor. Additionally, the PA-8700 processor is not IO-PDIR coherent. Resolution: This patch, PHKL_23815, is one of three 11.00 PA-8700 enablement patches. The other 11.00 PA-8700 enablement patches are PHKL_23813 & PHKL_23814. To support 11.00 on PA-8700, the following changes were made : - Added code to recognize the PA-8700 processor. - Added code to check if non-coherent IO-PDIR is set and perform flushes and syncs whenever IO-PDIR is changed. - Fixed inverted space hash mask to enable the PA-8700 processor. PHKL_22084: ( SR: 8606128778 DTS: JAGac86325 ) In iodc_prf.c, fdb.h is included without defining FDB. FDB is defined only if Kernel is built with FDB debugger. Resolution: Removed the Macro checking (#ifdef FDB_bug) from the function iodc_printf. PHKL_21760: ( SR: 8606136363 DTS: JAGad05488 ) dump_pdc_iodc_common() did not properly save and restore the entire PSW and consequently cleared the C-bit leaving the processor in real-mode when it returns to the calling procedure. Resolution: The code now uses the information from both the Hardware PSW and the PPDP's Global PSW to save the entire word to the stack. It then properly restores it during the call's exit. PHKL_20168: ( SR: 8606107507 DTS: JAGab77743 ) A code buffer is too small to hold the IODC driver needed to interface to a USB keyboard, and the kernel does not do the proper error checking when trying to use the keyboard IODC. This results in the kernel executing random code that causes the system to hang after a panic, instead of creating a core dump. Resolution: The buffer used to hold the keyboard IODC driver is now allocated dynamically and additional error checking was added so that a failure using the keyboard will not prevent a valid crash dump from being produced. SR: 8606107507 8606128587 8606136363 8606157819 8606162544 8606167577 8606188675 8606203957 8606248045 Patch Files: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(iodc_llio.o) /usr/conf/lib/libhp-ux.a(iodc_prf.o) /usr/conf/lib/libhp-ux.a(klog.o) /usr/conf/lib/libhp-ux.a(subr_mcnt.o) /usr/conf/lib/libhp-ux.a(subr_prf.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(iodc_llio.o) /usr/conf/lib/libhp-ux.a(iodc_prf.o) /usr/conf/lib/libhp-ux.a(klog.o) /usr/conf/lib/libhp-ux.a(subr_mcnt.o) /usr/conf/lib/libhp-ux.a(subr_prf.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: /usr/conf/lib/libhp-ux.a(iodc_llio.o): iodc_llio.s $Date: 2000/05/25 16:05:56 $Revision: r1 1ros/3 PATCH_11.00 (PHKL_21760) /usr/conf/lib/libhp-ux.a(iodc_prf.o): iodc_prf.c $Date: 2001/04/12 14:16:12 $Revision: r11 ros/6 PATCH_11.00 (PHKL_23815) /usr/conf/lib/libhp-ux.a(klog.o): klog.c $Date: 2001/04/30 08:25:52 $Revision: r11ros/ 1 PATCH_11.00 (PHKL_24028) /usr/conf/lib/libhp-ux.a(subr_mcnt.o): subr_mcnt.c $Date: 2002/07/21 22:59:18 $Revision: r1 1ros/6 PATCH_11.00 (PHKL_27553) /usr/conf/lib/libhp-ux.a(subr_prf.o): subr_prf.c $Date: 2002/07/21 22:59:18 $Revision: r11 ros/13 PATCH_11.00 (PHKL_27553) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: /usr/conf/lib/libhp-ux.a(iodc_llio.o): iodc_llio.s $Date: 2000/05/25 16:05:56 $Revision: r1 1ros/3 PATCH_11.00 (PHKL_21760) /usr/conf/lib/libhp-ux.a(iodc_prf.o): iodc_prf.c $Date: 2001/04/12 14:16:12 $Revision: r11 ros/6 PATCH_11.00 (PHKL_23815) /usr/conf/lib/libhp-ux.a(klog.o): klog.c $Date: 2001/04/30 08:25:52 $Revision: r11ros/ 1 PATCH_11.00 (PHKL_24028) /usr/conf/lib/libhp-ux.a(subr_mcnt.o): subr_mcnt.c $Date: 2002/07/21 22:59:18 $Revision: r1 1ros/6 PATCH_11.00 (PHKL_27553) /usr/conf/lib/libhp-ux.a(subr_prf.o): subr_prf.c $Date: 2002/07/21 22:59:18 $Revision: r11 ros/13 PATCH_11.00 (PHKL_27553) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_32,v=HP: 88126829 6560 /usr/conf/lib/libhp-ux.a(iodc_llio.o) 2460746709 15584 /usr/conf/lib/libhp-ux.a(iodc_prf.o) 4041151134 3364 /usr/conf/lib/libhp-ux.a(klog.o) 2466142657 9848 /usr/conf/lib/libhp-ux.a(subr_mcnt.o) 216815271 25932 /usr/conf/lib/libhp-ux.a(subr_prf.o) OS-Core.CORE2-KRN,fr=B.11.00,fa=HP-UX_B.11.00_64,v=HP: 2470618818 26400 /usr/conf/lib/libhp-ux.a(iodc_llio.o) 3856545001 44752 /usr/conf/lib/libhp-ux.a(iodc_prf.o) 3364600018 9064 /usr/conf/lib/libhp-ux.a(klog.o) 761689462 20768 /usr/conf/lib/libhp-ux.a(subr_mcnt.o) 4029812034 62984 /usr/conf/lib/libhp-ux.a(subr_prf.o) Patch Conflicts: None Patch Dependencies: s700: 11.00: PHKL_18543 s800: 11.00: PHKL_18543 Hardware Dependencies: None Other Dependencies: PHKL_23815: Two other patches work in conjuction with this patch to enable PA-8700 support. These other two patches are PHKL_23813 and PHKL_23814. Supersedes: PHKL_26337 PHKL_25352 PHKL_24028 PHKL_23815 PHKL_22084 PHKL_21760 PHKL_21681 PHKL_20168 Equivalent Patches: None Patch Package Size: 260 KBytes Installation Instructions: Please review all instructions and the Hewlett-Packard SupportLine User Guide or your Hewlett-Packard support terms and conditions for precautions, scope of license, restrictions, and, limitation of liability and warranties, before installing this patch. ------------------------------------------------------------ 1. Back up your system before installing a patch. 2. Login as root. 3. Copy the patch to the /tmp directory. 4. Move to the /tmp directory and unshar the patch: cd /tmp sh PHKL_27553 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_27553.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_27553. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHKL_27553.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_27553.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_27553.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch, PHKL_23815, is one of the three 11.00 PA-8700 enablement patches. The other 11.00 PA-8700 enablement patches are PHKL_23813 & PHKL_23814. Installation of each patch individually will have not effect on the system. This patch depends on base patch PHKL_18543. For successful installation please insure that PHKL_18543 is already installed, or that PHKL_18543 is included in the same depot with this patch and PHKL_18543 is selected for installation.