Patch Name: PHKL_14564 Patch Description: s700 10.20 ITE Locking, VISUALIZE-FX4 hang cumulative patch Creation Date: 98/03/27 Post Date: 98/04/03 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: OS-Core.CORE-KRN ProgSupport.C-INC Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_14564: HANG PHKL_14471: HANG PHKL_11205: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_14564 Symptoms: PHKL_14564: Refinements were completed for the VISUALIZE-FX4 hang fix (patch PHKL_14471). See the text for PHKL_14471 below for details. All of the resolutions and refresh rates supported by setmon and SAM are supported by this patch. Also, during a hard reset, instead of a totally blank screen, the message "GRAPHICS HARDWARE SELFTEST" will be displayed. This patch also contains two other fixes: A new ioctl has been added to allow the usage of the setmon utility from within SAM running under X on systems containing VISUALIZE-EG graphics. A fix for SR #1653253286 where the message "sti_unpack_routines: patch_init returned 3for rom at 0xf8000000" could be logged into the kernel message buffer with certain graphics hardware. This was a debugging message that indicates no problem, but some users were concerned. This message has now been removed. PHKL_14471: On Systems configured with VISUALIZE-FX4 graphics, very infrequently a graphics process hang can occur. This problem occurs infrequently, usually after power-up or with graphics-intensive workloads and lots of user interaction. When these hangs occur, only the graphics subsystem is hung; it is still possible to login to the system from either an attached ASCII terminal or from another machine on the same network. In most cases, the user must cycle power and reboot the system. NOTE: After this patch is installed, any hard reset performed on the VISUALIZE-FX4 hardware can take from 10 to 30 seconds. This will be noticeable as the screen will blank for between 10 to 30 seconds when the HP-UX kernel is booting, whenever a hard reset is triggered on the Internal Terminal Emulator (ITE) via the reset key sequence (Ctrl-Shift-Break), and whenever the setmon utility is run to change display resolution and/or refresh rate. This patch includes another fix, unrelated to the graphics hang. During shutdown of the display server, X will enable the Internal Terminal Emulator (ITE). At this time, the kernel should send a signal to 3-D processes that were using the graphics device. If the graphics subsystem is a VISUALIZE-FX device, it should send a SIGBUS signal to a 3-D process whenever it attempts to access the graphics hardware. For certain other graphics subsystems, the kernel should send SIGKILL immediately to all 3-D processes that have opened the graphics device. Previous to this patch, the kernel would, under certain conditions, send a SIGKILL signal for VISUALIZE-FX devices. PHKL_13270: Added support for VISUALIZE-FX hardware on MP systems. PHKL_11205: The CDE dtlogin screen can grab the graphics display lock and hold this lock until someone logs in. If the system console was on the Internal Terminal Emulator (ITE) running on this graphics display, processes writing to the system console that specify blocking I/O could block until dtlogin releases the lock. Also, if the ITE hard reset sequence Ctl-Shift-Reset were to be entered during a small timing interval while the X server is initializing, the X server display could remain black after the server has started. WARNING: If the the X server subsystem is installed on your system when this kernel patch is applied, you must also install the X server patch PHSS_10650. It is highly recommended that the X server patch PHSS_10650 be installed before this kernel patch. Failure to install both patches could result in a graphics card hang while X windows is running. PHKL_10758: Enhancements to support VISUALIZE-FX hardware. This patch is part of the Workstation Additional Core Enhancements for HP-UX 10.20 - July 1997 package. Defect Description: PHKL_14564: Refinements were completed for the VISUALIZE-FX4 hang fix (patch PHKL_14471). See the text for PHKL_14471 below for details. All of the resolutions and refresh rates supported by setmon and SAM are supported by this patch. Also, during a hard reset, instead of a totally blank screen, the message "GRAPHICS HARDWARE SELFTEST" will be displayed. The setmon utility could not be used through the SAM Monitor Configuration icon under X windows with systems containing VISUALIZE-EG graphics. This patch adds a new graphics driver ioctl call needed to enable this functionality. With certain graphics hardware, the message sti_unpack_routines: patch_init returned 3for rom at 0xf8000000" could appear during system boot. This was a diagnostic message only and did not indicate any problem. This patch removes this diagnostic message. PHKL_14471: On Systems configured with VISUALIZE-FX4 graphics, very infrequently a graphics process hang can occur. This patch forces a phase lock loop circuit on the graphics card to synchronize with the proper clock phase. This fix is only enabled at resolutions of 1280 x 1024 pixels at a refresh rate of either 72 Hz sync on green or 75 Hz VESA. If other resolutions are used, the hang problem can still occur. A subsequent patch will be issued that will enable this fix to cover additional resolutions and refresh rates. NOTE: After this patch is installed, any hard reset performed on the VISUALIZE-FX4 hardware can take from 10 to 30 seconds. This will be noticeable as the screen will blank for between 10 to 30 seconds when the HP-UX kernel is booting, whenever a hard reset is triggered on the Internal Terminal Emulator (ITE) via the reset key sequence (Ctrl-Shift-Break), and whenever the setmon utility is run to change display resolution and/or refresh rate. This patch includes another fix, unrelated to the graphics hang. During shutdown of the display server, X will enable the Internal Terminal Emulator (ITE). At this time, the kernel should send a signal to 3-D processes that were using the graphics device. If the graphics subsystem is a VISUALIZE-FX device, it should send a SIGBUS signal to a 3-D process whenever it attempts to access the graphics hardware. For certain other graphics subsystems, the kernel should send SIGKILL immediately to all 3-D processes that have opened the graphics device. Previous to this patch, the kernel would, under certain conditions, send a SIGKILL signal for VISUALIZE-FX devices. PHKL_13270: Without this patch, using VISUALIZE-FX hardware on a multi- processor system will likely lead to graphics hardware hangs and possibly system panics. PHKL_11205: When the system console is on the Internal Terminal Emulator (ITE) of a graphics display, and the CDE dtlogin screen is waiting for someone to log in, processes writing to the system console using non-blocking I/O could block until someone logs in to the system. This patch makes ITE functionality developed for VISUALIZE-FX graphics devices available on the following graphics devices: Color Graphics Card, CRX, CRX48Z, Dual CRX, HCRX, HCRX-24, HCRX-24B, HCRX8-B, and VISUALIZE-EG. With this patch, ITE can be switched off when the X server starts, and then switched on again when the server exits. WARNING: If the the X server subsystem is installed on your system when this kernel patch is applied, you must also install the X server patch PHSS_10650. It is highly recommended that the X server patch PHSS_10650 be installed before this kernel patch. Failure to install both patches could result in a graphics card hang while X windows is running. PHKL_10758: Enhancements to support VISUALIZE-FX hardware. SR: 1653205245 1653208751 4701354829 4701375147 4701379545 4701379545 1653253286 Patch Files: /usr/conf/graf/frameb_spc.h /usr/conf/graf/gpu_data.h /usr/conf/graf/graph3.h /usr/conf/graf/ite.h /usr/conf/graf/stirom.h /usr/conf/h/framebuf.h /usr/conf/lib/libhp-ux.a(framebuf.o) /usr/conf/lib/libhp-ux.a(graf.o) /usr/conf/lib/libhp-ux.a(graph3.o) /usr/conf/lib/libhp-ux.a(ite.o) /usr/conf/lib/libhp-ux.a(ite1.o) /usr/conf/lib/libhp-ux.a(ite1_sti.o) /usr/conf/lib/libhp-ux.a(ite_color.o) /usr/conf/lib/libhp-ux.a(ite_parse.o) /usr/conf/lib/libhp-ux.a(ite_scroll.o) /usr/conf/lib/libhp-ux.a(kbd_code.o) /usr/conf/lib/libhp-ux.a(ktest.o) /usr/conf/lib/libhp-ux.a(stirom.o) /usr/conf/lib/libhp-ux.a(vm_ioblk.o) /usr/include/sys/framebuf.h what(1) Output: /usr/conf/graf/frameb_spc.h: frameb_spc.h $Date: 97/05/02 02:37:44 $ $Revision: 1.7.98.2 $ PATCH_10.20 (PHKL_10758) /usr/conf/graf/gpu_data.h: gpu_data.h $Date: 98/03/27 15:42:26 $ $Revision: 1.11.98.5 $ PATCH_10.20 (PHKL_14564) /usr/conf/graf/graph3.h: graph3.h $Date: 97/05/02 02:37:47 $ $Revision: 1. 5.98.2 $ PATCH_10.20 (PHKL_10758) /usr/conf/graf/ite.h: ite.h $Date: 97/06/02 19:24:00 $ $Revision: 1.16. 98.4 $ PATCH_10.20 (PHKL_11205) /usr/conf/graf/stirom.h: stirom.h $Date: 98/03/10 17:30:04 $ $Revision: 1. 6.98.5 $ PATCH_10.20 (PHKL_14471) /usr/conf/h/framebuf.h: framebuf.h $Date: 98/03/27 15:49:46 $ $Revision: 1.17.98.3 $ PATCH_10.20 (PHKL_14564) /usr/conf/lib/libhp-ux.a(framebuf.o): framebuf.c $Date: 98/03/27 15:36:57 $ $Revision: 1 .21.98.12 $ PATCH_10.20 (PHKL_14564) /usr/conf/lib/libhp-ux.a(graf.o): graf.c $Date: 98/03/27 15:44:48 $ $Revision: 1.4. 98.4 $ PATCH_10.20 (PHKL_14564) /usr/conf/lib/libhp-ux.a(graph3.o): graph3.c $Date: 98/03/27 15:42:03 $ $Revision: 1. 9.98.16 $ PATCH_10.20 (PHKL_14564) /usr/conf/lib/libhp-ux.a(ite.o): ite.c $Date: 97/11/19 04:38:55 $ $Revision: 1.23. 98.6 $ PATCH_10.20 (PHKL_13270) /usr/conf/lib/libhp-ux.a(ite1.o): ite1.c $Date: 98/03/27 15:42:22 $ $Revision: 1.5. 98.9 $ PATCH_10.20 (PHKL_14564) /usr/conf/lib/libhp-ux.a(ite1_sti.o): ite1_sti.c $Date: 98/03/10 17:30:01 $ $Revision: 1.5.98.7 $ PATCH_10.20 (PHKL_14471) /usr/conf/lib/libhp-ux.a(ite_color.o): ite_color.c $Date: 97/06/02 19:25:34 $ $Revision: 1.8.98.3 $ PATCH_10.20 (PHKL_11205) /usr/conf/lib/libhp-ux.a(ite_parse.o): ite_parse.c $Date: 97/06/02 19:27:00 $ $Revision: 1.7.98.3 $ PATCH_10.20 (PHKL_11205) /usr/conf/lib/libhp-ux.a(ite_scroll.o): ite_scroll.c $Date: 97/11/19 04:39:01 $ $Revision : 1.14.98.5 $ PATCH_10.20 (PHKL_13270) /usr/conf/lib/libhp-ux.a(kbd_code.o): kbd_code.c $Date: 97/05/02 02:37:29 $ $Revision: 1.13.98.2 $ PATCH_10.20 (PHKL_10758) /usr/conf/lib/libhp-ux.a(ktest.o): ktest.c $Date: 98/03/27 16:19:38 $ $Revision: 1.3 6.98.15 $ PATCH_10.20 (PHKL_14564) /usr/conf/lib/libhp-ux.a(stirom.o): stirom.c $Date: 98/03/27 15:42:16 $ $Revision: 1. 5.98.9 $ PATCH_10.20 (PHKL_14564) /usr/conf/lib/libhp-ux.a(vm_ioblk.o): vm_ioblk.c $Date: 97/11/19 04:34:24 $ $Revision: 1.8.98.6 $ PATCH_10.20 (PHKL_13270) /usr/include/sys/framebuf.h: framebuf.h $Date: 98/03/27 15:49:46 $ $Revision: 1.17.98.3 $ PATCH_10.20 (PHKL_14564) cksum(1) Output: 3534246345 598 /usr/conf/graf/frameb_spc.h 953202342 11120 /usr/conf/graf/gpu_data.h 58302588 15346 /usr/conf/graf/graph3.h 1008069817 15728 /usr/conf/graf/ite.h 2714726602 31610 /usr/conf/graf/stirom.h 2518924199 18262 /usr/conf/h/framebuf.h 548057652 47152 /usr/conf/lib/libhp-ux.a(framebuf.o) 75968348 231500 /usr/conf/lib/libhp-ux.a(graf.o) 3501679467 42124 /usr/conf/lib/libhp-ux.a(graph3.o) 2809185498 16308 /usr/conf/lib/libhp-ux.a(ite.o) 2729144352 11204 /usr/conf/lib/libhp-ux.a(ite1.o) 1167400477 9008 /usr/conf/lib/libhp-ux.a(ite1_sti.o) 496169030 2060 /usr/conf/lib/libhp-ux.a(ite_color.o) 3733967428 9360 /usr/conf/lib/libhp-ux.a(ite_parse.o) 1724723011 36444 /usr/conf/lib/libhp-ux.a(ite_scroll.o) 3490146324 13144 /usr/conf/lib/libhp-ux.a(kbd_code.o) 482475489 22296 /usr/conf/lib/libhp-ux.a(ktest.o) 3003020248 36132 /usr/conf/lib/libhp-ux.a(stirom.o) 3381751196 5640 /usr/conf/lib/libhp-ux.a(vm_ioblk.o) 2518924199 18262 /usr/include/sys/framebuf.h Patch Conflicts: None Patch Dependencies: s700: 10.20: PHSS_10650 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_10758 PHKL_11205 PHKL_13270 PHKL_14471 Equivalent Patches: PHKL_14565: s800: 10.20 Patch Package Size: 670 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_14564 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_14564.depot 5b. For a homogeneous NFS Diskless cluster run swcluster on the server to install the patch on the server and the clients: swcluster -i -b This will invoke swcluster in the interactive mode and force all clients to be shut down. WARNING: All cluster clients must be shut down prior to the patch installation. Installing the patch while the clients are booted is unsupported and can lead to serious problems. The swcluster command will invoke an swinstall session in which you must specify: alternate root path - default is /export/shared_root/OS_700 source depot path - /tmp/PHKL_14564.depot To complete the installation, select the patch by choosing "Actions -> Match What Target Has" and then "Actions -> Install" from the Menubar. 5c. For a heterogeneous NFS Diskless cluster: - run swinstall on the server as in step 5a to install the patch on the cluster server. - run swcluster on the server as in step 5b to install the patch on the cluster clients. By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_14564. If you do not wish to retain a copy of the original software, you can create an empty file named /var/adm/sw/patch/PATCH_NOSAVE. Warning: If this file exists when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. It is recommended that you move the PHKL_14564.text file to /var/adm/sw/patch for future reference. To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_14564.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: WARNING: Before running the X server after this patch is installed, The X server patch PHSS_10650 must be installed. If the system is used for X graphics, It is highly recommented that patch PHSS_10650 be installed first, before installing this kernel patch. Failure to install the X server patch could result in a graphics card hang while X windows is running. --- Due to the number of objects in this patch, the customization phase of the update may take more than 10 minutes. During that time the system will not appear to make forward progress, but it will actually be installing the objects.