Dear SCO Customer, Support Level Supplement (SLS) ptf7603k, the UnixWare 7.1.1 Sysdump, VMM features and Various Fixes Supplement, addresses all of the issues included in the numbered list below. Note that SLS ptf7603k supersedes all versions of a number of other SLSs: ptf7601 ptf7605 ptf7608 ptf7618 ptf7621 ptf7626 ptf7638 ptf7649 Important note: SLS ptf7621 _must_ be removed from the system before installation of SLS ptf7603 can proceed. If ptf7621 is not removed, a WARNING message will be issued and installation will abort. All other SLSs can remain on the system and will be overwritten by SLS ptf7603k. 1. More Reliable System Dump provides an improved dump mechanism that increases the percentage of valid kernel dumps. Double-panic processing has been improved and the frequency of hangs during system dumps has been reduced. The dump I/O size has been increased from 8KB to 64KB. The overall speed of the dump process has also been improved. Following a system panic and before reboot begins, the stack backtrace and register values are now written to the /var/adm/syslog file. This acts as a "fingerprint" of what happened, in case the dump save was not successful. In addition, a system dump can now be obtained on demand, on a live system, with the new dumpmemory(1M) command. A dump thus obtained can be analyzed with crash(1M) just as any other dump. 2. Unattended Reboot provides a feature that improves the behavior of the PANICBOOT parameter and offers the potential to reduce downtime for you and your users. You can now save a memory dump after a panic, and reboot without needing to be present at the console to respond to prompts. To obtain the unattended reboot functionality on your system, you will need to change two parameters: PANICBOOT and TIME. It is recommended that you use the System Defaults Manager in SCOadmin or the defadm(1M) command to change the values of system parameters. Do not edit system files manually, as unpredictable system behavior may result. Parameter Defined in file Default Value needed to obtain value unattended reboot functionality ___________________________________________________________________ PANICBOOT /etc/default/init NO YES TIME /etc/default/dump -- either 0 (zero) or a positive number in seconds. When PANICBOOT is set to YES, a memory dump is created (in either the dump slice or the primary swap device) following a system panic, and the system automatically reboots. When TIME is set to zero, prompts about saving the dump are never asked at the console. When TIME is set to a positive number of seconds, the system asks whether to save the dump, waits TIME number of seconds, then continues to reboot. In both cases the dump is created on either a dump slice or the primary swap device. If TIME is not defined, or is a negative number, the system asks whether to create the dump and waits indefinitely for a response. 3. The Virtual Memory Manager (VMM) provides a feature for UnixWare(r) 7 Release 7.1.1 that includes several improvements in memory management, performance, and related tools: + Performance is improved by introducing the "bin hopping" algorithm in allocation of physical pages, thereby reducing cache replacement traffic. The operating system now also exhibits better concurrency on large multiprocessor machines through the "splitting" of several global locks (including VM_PAGEFREELOCK, an_refl_lck, and the anon VN_PGLOCK). + The system is made safe from minor streams leaks, through the introduction of a delayed abort feature for sendv. Previously, a minor leak could both degrade the performance of a large memory system over a period of months, and hang the system in minutes. + Several tools, including sar(1M) and rtpm(1M), have been enhanced with respect to reporting memory usage and disk statistics. New VMM functionality at boot time: Two new parameters are now recognized by the kernel at boot time. See boot(1M) and boot(4) for details on the use of these parameters. CACHE_LINE=number This parameter is used to optimize spacing between locks so that VMlocks end up separate cache lines. This reduces cache coherency traffic. PAGE_BINS=number_of_bins This parameter is used to optimize allocation of pages. The number of bins should correspond to the largest "cache bank" in the system. New and changed VMM tunables: The VMM feature adds the following tunables to the system: KMA_POOL_MAX KMA_POOL_MAX specifies the size (in bytes) of the per-CPU, per-allocation size, memory pool to be retained by the kernel memory allocator. A larger value of KMA_POOL_MAX will increase kernel performance, but at the cost of increased kernel memory consumption. The VMM feature changes the default value of the following, existing tunable parameter from 30 seconds to 10 seconds: KMAGBTIME KMAGBTIME specifies how much time, in seconds, there is between successive attempts by the kernel memory allocator to give back unused memory (for possible use by processes or filesystems). Increasing this value increases the kernel allocator's requirement for memory. Decreasing it increases the CPU usage of the giveback attempts. Default, minimum, and maximum values for new and changed VMM tunables: Tunable Default Minimum Maximum ____________________________________________________________ KMA_POOL_MAX Ox10000 0 Ox100000 ____________________________________________________________ KMAGBTIME 10 5 2400 Related Documentation changes The following manual pages have been revised and are included with this SLS in HTML format: + sar(1M) + rtpm(1M) + boot(4) Note that certain strings output in boot messages, or by the sar(1M) and rtpm(1M) commands, are not yet localized. SLS ptf7603a addressed this issue: 4. buf_breakup or bufbrkup_copy causes a stack overflow panic when used along with DDI8 HBAs that specify bcb_addrtypes BA_SCGTH. SLS ptf7603b addressed these issues: 5. Some kernel overhead needed to be eliminated for keeping accurate waitio statistics. 6. The performance of the kernel locking routines needed improvement. 7. Various panics occurred, including a panic at pvn_memunresv_pp_l+2f. 8. The cpio(1) tape device volume limit was increased from 2GB to 4GB. This fix was previously released in ptf7605c. 9. Machine hangs may occur if syslogd is enabled. This fix was previously released in ptf7605c. 10. Privileged processes could core dump. This fix was previously released in ptf7626. SLS ptf7603c addressed these issues: 11. A system panic in logcons() at logcons+75 was fixed. 12. Use of cmn_err() function with the '%s' format specifier caused spurious characters in /var/adm/log/osmlog file. SLS ptf7603d addressed this issue: 13. The system appears to run out of streams memory. SLS ptf7603e addressed this issue: 14. Performance suffers when multiple controllers are accessed with multiple dd processes. SLS ptf7603f addressed this issue: 15. Emergency recovery floppies could not be created. SLS ptf7603g addressed these issues: 16. The dumpmemory command doesn't work for machines with over 2GB memory. 17. The system hangs when a dump is taken during high disk activity. 18. The sysdump behavior is not in accordance with the tunables PANICBOOOT, and TIME. 19. Extended baud rate support was implemented. Note that for a complete fix for this, SLS ptf7607d or later must also be installed. 20. A panic occurs in iasy_hup()+7 during a PPP connection. 21. If PCMCIA Modem is removed from the system, a PANIC in asycproc() occurs. (Also included in SLS ptf7603g are fixes from a number of other SLSs, as indicated in issues 19 - 41 below. See "Software Notes and Recommendations" section below for additional information.) SLS ptf7608a addressed this issue: 22. If an HBA fails to assign memory it can return NULL. This can cause sdi_xtranslate() to return SDI_RET_RETRY. However, since there is no retry code in sd01strat1(), a retry can result in a system hang. SLS ptf7608b addressed these issues: 23. There was excessive locking code in the sd01 driver. 24. KMA abuse occurs in sd01getalts(). SLS ptf7608c addressed this issue: 25. In an MPIO environment, the system appears to hang when one path to a disk fails. SLS ptf7638a addressed this issue: 26. Incorrect KMA buffer references occur after kernel memory has been freed in memfs. SLS ptf7621b addressed these issues: 27. Under heavy load, the Dynamic Shared Memory (DSHM) driver (segshm) causes excessive system time to be spent in the kernel lock/unlock routines. 28. An async I/O read (via aio_read(2) or lio_listio(2)) may return incorrect data due to a problem in the regular Shared Memory driver (segdev). SLS ptf7601a addressed these issues: 29. With kma_paranoid running, the system can panic after finding corrupt free buffers. mtt_replace() can corrupt the links if both "new" and "old" currently have no minor number assigned. 30. Applications that use t_optmgmt() may cause a system panic. SLS ptf7601b addressed these issues: 31. If a connect(3) is attempted using AF_UNIX to a port without a listener, this correctly fails with ECONNREFUSED. However, if a listener is then started and the connect(3) attempted again without closing the socket, the connect(3) will succeed but a subsequent write will fail with EPIPE. 32. If listen(3) is called with a backlog of 0, UnixWare 7.1.1 does not accept any connections. 33. In-Kernel Sockets causes an application built on SCO UnixWare 2.1.x to block without a SIGALARM signal. SLS ptf7601c addressed these issues: 34. A special case in the tcp_uinput() routine sends an ACK immediately, even when tcp_delay_acks is set. (This is to cater for small data flow, such as telnet.) This may cause excessive ACKs to be sent on some workloads. 35. Systems under heavy network load can panic at in_chek_mgmt_que+27. 36. Systems under heavy network load can panic. The stack trace shows tcp_itmr_keep() in the stack trace. 37. Systems under very heavy network load can appear to hang. SLS ptf7601d addressed this issue: 38. A program that attempts a t_unbind() after a t_connect() fails, can remain in a SYN_SENT state without timing out. SLS ptf7601e addressed these issues: 39. Select returns invalid read status on udp sockets. 40. If doing an asynchronous connect, calling getsockopt() to get the error reason for the connect failing will return a random error code. SLS ptf7601g addressed this issue: 41. Earlier versions of ptf7601 caused various tcp panics, including a panic at tcp_io+18e when doing init 6 and at tcpclose+le0. SLS ptf7601h addressed these issues: 42. System hangs and the osmlog display the message: NOTICE: Kernel virtual memory for buffer I/O temporarily exhausted; using reserved pool to allow paging to proceed. 43. ip_mtt list corruption causes system panic. SLS ptf7601i addressed this issue: 44. A memory leak occurred in rtpm. SLS ptf7603h addressed these issues: 45. buf_breakup sends incorrect scatter gather lists down the hba and causes a panic for BA_SCGTH case. 46. The ls command locks on rwsleep_rdlock(). 47. The fs driver's sendv_fd() function causes a hang in vxfs. SLS ptf7603i addressed this issue: 48. There is a check for BA_SCGTH before failing the BCB_ONE_PIECE case. SLS ptf7603j addressed this issue: 49. A panic occurs when hard-linking a device special file within a memfs filesystem. SLS ptf7603k additionally addresses this issue: 50. buf_breakup() does not check the max scgth specified by HBA while it is evaluating the maximum scgth elements. Contents -------- /etc/conf/dtune.d/kma /etc/conf/dtune.d/mem /etc/conf/mdevice.d/memfs /etc/conf/mtune.d/fs /etc/conf/mtune.d/io /etc/conf/mtune.d/kma /etc/conf/mtune.d/mem /etc/conf/pack.d/asyc/Driver_atup.o /etc/conf/pack.d/asyc/Driver_mp.o /etc/conf/pack.d/async/Driver_atup.o /etc/conf/pack.d/async/Driver_mp.o /etc/conf/pack.d/fpe/Driver_atup.o /etc/conf/pack.d/fpe/Driver_mp.o /etc/conf/pack.d/fs/Driver_atup.o /etc/conf/pack.d/fs/Driver_mp.o /etc/conf/pack.d/inet/Driver_atup.o /etc/conf/pack.d/inet/Driver_mp.o /etc/conf/pack.d/io/Driver_atup.o /etc/conf/pack.d/io/Driver_mp.o /etc/conf/pack.d/io/space.c /etc/conf/pack.d/kdb_util/Driver_atup.o /etc/conf/pack.d/kdb_util/Driver_mp.o /etc/conf/pack.d/kernel/Driver_atup.o /etc/conf/pack.d/kernel/Driver_mp.o /etc/conf/pack.d/kma/Driver_atup.o /etc/conf/pack.d/kma/Driver_mp.o /etc/conf/pack.d/kma/space.c /etc/conf/pack.d/log/Driver_atup.o /etc/conf/pack.d/log/Driver_mp.o /etc/conf/pack.d/mem/Driver_atup.o /etc/conf/pack.d/mem/Driver_mp.o /etc/conf/pack.d/mem/space.c /etc/conf/pack.d/memfs/Driver_atup.o /etc/conf/pack.d/memfs/Driver_mp.o /etc/conf/pack.d/memfs/space.c /etc/conf/pack.d/name/Driver_atup.o /etc/conf/pack.d/name/Driver_mp.o /etc/conf/pack.d/proc/Driver_atup.o /etc/conf/pack.d/proc/Driver_mp.o /etc/conf/pack.d/pse/Driver_atup.o /etc/conf/pack.d/pse/Driver_mp.o /etc/conf/pack.d/sd01/Driver.o /etc/conf/pack.d/sdi/Driver_atup.o /etc/conf/pack.d/sdi/Driver_mp.o /etc/conf/pack.d/segdev/Driver_atup.o /etc/conf/pack.d/segdev/Driver_mp.o /etc/conf/pack.d/segshm/Driver_mp.o /etc/conf/pack.d/socksys/Driver_atup.o /etc/conf/pack.d/socksys/Driver_mp.o /etc/conf/pack.d/svc/Driver_atup.o /etc/conf/pack.d/svc/Driver_mp.o /etc/conf/pack.d/sysdump/Driver_atup.o /etc/conf/pack.d/sysdump/Driver_mp.o /etc/conf/pack.d/sysdump/space.c /etc/conf/pack.d/sysdump/stubs.c /etc/conf/pack.d/util/Driver_atup.o /etc/conf/pack.d/util/Driver_mp.o /etc/conf/pack.d/vtoc/Driver.o /etc/inet/inet.dfl /etc/scsi/pdi_timeout /sbin/dumpcheck /sbin/dumpsave /sbin/metreg /usr/bin/netstat /usr/bin/truss /usr/include/netinet/tcp_var.h /usr/include/sys/socksys.h /usr/lib/sa/sadc /usr/lib/scohelp/en_US.ISO8859-1/man/html.1M/dumpmemory.1M.html /usr/lib/scohelp/en_US.ISO8859-1/man/html.1M/dumpmemory.1M.node /usr/lib/scohelp/en_US.ISO8859-1/man/html.1M/rtpm.1M.html /usr/lib/scohelp/en_US.ISO8859-1/man/html.1M/sar.1M.html /usr/lib/scohelp/en_US.ISO8859-1/man/html.4/boot.4.html /usr/sbin/dumpmemory /usr/sbin/in.snmpd /usr/sbin/ldsysdump /usr/sbin/rtpm /usr/sbin/sar /usr/sbin/trpt Software Notes and Recommendations ---------------------------------- SLS ptf7603k should only be installed on: UnixWare 7 Release 7.1.1 Note that SLS ptf7603k supersedes a number of other SLSs: ptf7601, ptf7605, ptf7608, ptf7618, ptf7621, ptf7626, ptf7638, ptf7649 IMPORTANT: SLS ptf7621 _must_ be removed from the system before installation of SLS ptf7603 can proceed. If ptf7621 is not removed, a WARNING message will be issued and installation will abort. All other SLSs can remain on the system and will be overwritten by SLS ptf7603k. Installation Instructions ------------------------- 1. Download the ptf7603k.Z file to the /tmp directory on your machine. 2. As root, uncompress the file and add the SLS package to your system using these commands: $ su Password: # uncompress /tmp/ptf7603k.Z # pkgadd -d /tmp/ptf7603k # rm /tmp/ptf7603k Alternatively, this SLS package may be installed in quiet mode, that is, without displaying the release notes and asking for installation confirmation. To do this, use these commands: $ su Password: # uncompress /tmp/ptf7603k.Z # pkgadd -qd /tmp/ptf7603k all # rm /tmp/ptf7603k 3. Reboot the system after installing this SLS package. The release notes displayed prior to installation can be found in: /var/sadm/pkg/ptf7603/install/ptf7603.txt Removal Instructions --------------------- 1. As root, remove the SLS package using these commands: $ su Password: # pkgrm ptf7603 2. Reboot the system after removing this SLS package. If you have questions regarding this SLS, or the product on which it is installed, please contact your software supplier.