Patch Name: PHKL_14471 Patch Description: s700 10.20 ITE Locking, VISUALIZE-FX MP support, FX hang Creation Date: 98/03/12 Post Date: 98/03/18 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: OS-Core.CORE-KRN ProgSupport.C-INC Automatic Reboot?: Yes Status: Special Superseded Critical: Yes PHKL_14471: HANG PHKL_11205: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_14471 Symptoms: 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_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 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: 97/11/19 04:38:46 $ $Revision: 1.11.98.4 $ PATCH_10.20 (PHKL_13270) /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: 97/05/02 02:32:22 $ $Revision: 1.17.98.2 $ PATCH_10.20 (PHKL_10758) /usr/conf/lib/libhp-ux.a(framebuf.o): framebuf.c $Date: 98/03/10 17:17:56 $ $Revision: 1 .21.98.11 $ PATCH_10.20 (PHKL_14471) /usr/conf/lib/libhp-ux.a(graf.o): graf.c $Date: 97/11/19 04:29:14 $ $Revision: 1.4. 98.3 $ PATCH_10.20 (PHKL_13270) /usr/conf/lib/libhp-ux.a(graph3.o): graph3.c $Date: 98/03/10 17:29:42 $ $Revision: 1. 9.98.15 $ PATCH_10.20 (PHKL_14471) /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/10 17:29:58 $ $Revision: 1.5. 98.8 $ PATCH_10.20 (PHKL_14471) /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: 97/11/19 04:35:13 $ $Revision: 1.3 6.98.13 $ PATCH_10.20 (PHKL_13270) /usr/conf/lib/libhp-ux.a(stirom.o): stirom.c $Date: 98/03/10 17:29:51 $ $Revision: 1. 5.98.8 $ PATCH_10.20 (PHKL_14471) /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: 97/05/02 02:32:22 $ $Revision: 1.17.98.2 $ PATCH_10.20 (PHKL_10758) cksum(1) Output: 3534246345 598 /usr/conf/graf/frameb_spc.h 4069714643 11045 /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 1564195616 18231 /usr/conf/h/framebuf.h 3501110503 47100 /usr/conf/lib/libhp-ux.a(framebuf.o) 300977782 231432 /usr/conf/lib/libhp-ux.a(graf.o) 3085898128 42124 /usr/conf/lib/libhp-ux.a(graph3.o) 2809185498 16308 /usr/conf/lib/libhp-ux.a(ite.o) 2287613114 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) 2384641820 22296 /usr/conf/lib/libhp-ux.a(ktest.o) 649145155 33492 /usr/conf/lib/libhp-ux.a(stirom.o) 3381751196 5640 /usr/conf/lib/libhp-ux.a(vm_ioblk.o) 1564195616 18231 /usr/include/sys/framebuf.h Patch Conflicts: PHKL_13270 Patch Dependencies: s700: 10.20: PHSS_10650 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_10758 PHKL_11205 PHKL_13270 Equivalent Patches: None Patch Package Size: 640 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_14471 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_14471.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_14471.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_14471. 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_14471.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_14471.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.