Patch-ID# 101180-01 Keywords: C2-BSM ipi, disk, interrupt, missing, cg6, prestoserve, galaxy, heapbytes level15, asynch, panic, mmap, ECC,swap,online disk suite,ods,mirroring,hang Synopsis: C2-BSM 4.1.2: IPI - Galaxy jumbo patch Date: Sep/09/93 SunOS release: 4.1.2 Unbundled Product: C2/BSM Unbundled Release: 4.1.2 Topic: IPI - Galaxy jumbo patch BSM patch must be installed on the target system BugId's fixed with this patch: 1077801 1080842 1063059 1075751 1077539 1083811 1074668 1077642 1077896 1093755 1096375 1091735 1097555 1115859 Changes incorporated in this version: This is the C2-BSM version of SunOS 4.1.2 patchid 100542-07. It is for the C2/BSM product. Hooks added are all #ifdef BSM This patch must be built in a 4.1.2 BSM build environment. Architectures for which this patch is available: sun4, sun4m Patches which may conflict with this patch: Note: This patch does not contain support for IPI Dual Port (SunIDP) or SunDBE. If either of these unbundled packages is installed you must install a different patch (see below). If *only* SunIDP is installed, use the latest version of patch 100727. If SunDBE or *both* SunDBE and SunIDP are installed, use the latest patch 100614. This patch should be installed ONLY on system WITHOUT SunDBE or SunIDP. This patch contains fix for the bug 1099188 which is for the system running *Online Disk Suite* (ODS) application and mirroring swap parition. Please read the following instructions carefully while installing the patch for bug 1099188. Obsoleted by: 4.1.3, (For Generic system only) Use patch 100948 for bug 1099188 on 4.1.3 system. Problem Description: This patch fixes several bugs in the IPI disk device driver, some of which manifest as apparent PrestoServe problems when IPI disks are being cached with PrestoServe. It also includes and therefore obsoletes patch 100516, and finally fixes rare cases when a panic can happen while shutting down a galaxy system. BugId 1077801 On 4.1.2 FCS software with prestoserve added will fail with the following message when analyzing the disk using format or when booting from the disk. > is_poll_intr: resp for unknown cmd: channel 0 slave 0 facility 1 > IPI Response: > len e refnum 13 opcode 02 mod 00 stat 0018 > > addr len ID 1 2 3 4 5 6 7 8 9 a b c d e f 10 > 000a : 05 52 00 00 02 00 > > ipi 0: missing interrupt. refnum 4a > id000g: block 28238 (627590 abs): read: missing interrupt - attempting recovery > idc0: driver requesting controller dump > idc0: ctlr message: 'Did panic dump to drive 0 ' > is0: resetting slave > idc0: ctlr message: 'FW revision date = 4/18/91 , level = 50 ' > idc0: Recovery complete. Bugid 1080842 Summary: UNIX/IPI DISK READ SYSTEM CALL DOES NOT RETURN ERROR ON DRIVE FAULT Bugid 1063059 Summary: IPI DRIVER DOESN'T RETURN ERROR WHEN IT DIDN'T GET RESPONSE PACKET Bugid 1075751 Summary: "VME: Dropped Int-Ack cycle" messages Bugid 1077539 Summary: increase HEAPBYTES Bugid 1079876 Summary: fputest kvm_open failed Bugid 1077642 Summary: Kernel reports wrong SIMM location when ECC bits are in error themselves Bugid 1074668 Summary: Kernel panics when running sunvision 1.1 as superuser. Bugid 1093755 1096375 1091735 Revise the hard level 15 interrupt handler so that (a) it does not allow one cpu to turn off the SIR_ASYNCFLT before the other cpu(s) get into the hard level 15 interrupt code, (b) so that it handles asynchronous sbus writes to /dev/sbus[1-3] correctly, so that it handles asynchronous vme writes to /dev/vme16* and /dev/vme24* correctly. Also, update the trap handler not to barf on bus errors on data faults and timeouts and bus errors on text faults. And fix locore to handle soft level 15 interrupts before hard level 15 interrupts. Bugid 1097555 Summary: kernel panics with kmem_free: block already free Bugid 1099188 Summary: System hangs when mirroring swap partition using Sun unbundled product Online Disk Suite (ODS). Bugid 1115859 Summary: The IPI Driver cannot reset controller during failure with 64 outstanding I/O's. INSTALL: Login as root. mv /sys/`arch -k`/OBJ/id.o /sys/`arch -k`/OBJ/id.o.fcs mv /sys/`arch -k`/OBJ/is.o /sys/`arch -k`/OBJ/is.o.fcs mv /sys/`arch -k`/OBJ/locore.o /sys/`arch -k`/OBJ/locore.o.fcs mv /sys/`arch -k`/OBJ/machdep.o /sys/`arch -k`/OBJ/machdep.o.fcs mv /sys/`arch -k`/OBJ/vm_machdep.o /sys/`arch -k`/OBJ/vm_machdep.o.fcs mv /sys/`arch -k`/OBJ/mem.o /sys/`arch -k`/OBJ/mem.o.fcs mv /sys/`arch -k`/OBJ/kern_fork.o /sys/`arch -k`/OBJ/kern_fork.o.fcs mv /sys/sundev/ipi_error.h /sys/sundev/ipi_error.h.fcs mv /sys/sundev/mbvar.h /sys/sundev/mbvar.h.fcs On sun4m systems only: mv /sys/sun4m/OBJ/kern_synch.o /sys/sun4m/OBJ/kern_synch.o.fcs mv /sys/sun4m/OBJ/trap.o /sys/sun4m/OBJ/trap.o.fcs mv /sys/sun4m/async.h /sys/sun4m/async.h.fcs mv /sys/sun4m/pcb.h /sys/sun4m/pcb.h.fcs cp `arch -k`/id.o /sys/`arch -k`/OBJ cp `arch -k`/is.o /sys/`arch -k`/OBJ cp `arch -k`/locore.o /sys/`arch -k`/OBJ cp `arch -k`/machdep.o /sys/`arch -k`/OBJ cp `arch -k`/vm_machdep.o /sys/`arch -k`/OBJ cp `arch -k`/mem.o /sys/`arch -k`/OBJ cp `arch -k`/kern_fork.o /sys/`arch -k`/OBJ cp ipi_error.h /sys/sundev/ipi_error.h cp ipi_error.h /usr/include/sundev/ipi_error.h cp mbvar.h /sys/sundev/mbvar.h cp mbvar.h /usr/include/sundev/mbvar.h On sun4m systems only: cp sun4m/kern_synch.o /sys/sun4m/OBJ cp sun4m/trap.o /sys/sun4m/OBJ cp sun4m/async.h /sys/sun4m cp sun4m/pcb.h /sys/sun4m On system running Online Disk Suite (ODS) and if the fix for bug *1099188* is required: cp `arch -k`/machdep.o.ods_only /sys/`arch -k`/OBJ cp `arch -k`/md.o /sys/`arch -k`/OBJ You will then have to re-run config and make on your kernel. Please refer to the System and Network administration manual for information on building and installing a custom kernel. ADDENDUM : Patch 02 re-submitted to enhance README file. Patch 03 re-submitted to include galaxy shutdown panic fix. Patch 04 re-submitted to include asynch level15 handling, scheduling fix used to improve PHIGS performance. Patch 05 re-submitted to include fix for kernel panic Patch 07 corrected earlier fix (mem.o) for Sbus/VME mapping under 4m and to include fix for 1099188.