What is Support Level Supplement (SLS) ptf9151b, the UnixWare 7 Definitive 2018 Supplement 2? KEYWORDS: uw7 7D2M1 panicboot pkgadd libc libthread KMDT AHCI RELEASE: UnixWare 7 Definitive (7D2M1) PROBLEM: What is Support Level Supplement (SLS) ptf9151b, the UnixWare 7 Definitive 2018 Supplement 2? What problems are fixed, what is its contents, how to install this package, and are there additional software notes? SOLUTION: Problems Fixed ------------- Note: By default, UnixWare 7 Definitive now halts if a panic is encountered. Please see the "Software Notes and Recommendations" section below for details. ptf9151b includes all the fixes previously provided in PTF 9150, "The UnixWare 7 Definitive 2018 Supplement." Those fixes are enumerated here: https://download.xinuos.com/unixware7D/D2M1/patches/ptf9150i.txt The following fixes were first provided with ptf9151a and are also contained in ptf9151b: 1. Fix packaging errors: sys/osocket.h was left out of UnixWare 7.1.4 Maintenance Pack 3 sys/sd01.h and sys/uadmin.h were left out of PTF 9150 2. The following includes, libraries, utilities, and device drivers have been fixed/added/enhanced to support UnixWare 7 Definitive 2018 Maintenance Pack 1 and Update Pack 1. UW7-146 except where noted Add declaration for dirfd(), and fdopendir(): dirent.h BSD error routines: err.h (new) getopt.h (new) getopt_long(), getopt_long_only(). Add _LC_LAST for the changes in libc's setlocale.c: locale.h Add defines for AI_NUMERICHOST and AI_NUMERICSERV: netdb.h Use new sigwait with gcc -pthread: signal.h New header for posix_spawn, etc.: spawn.h (new) Add declaration for getdelim() and getline(). Wrap getdelim() and getline() in __EXTENSIONS__ : stdio.h Merge in improvements from OpenServer 6 Definitive: add _PTRDIFF_T guard : stddef.h Add declarations for mkdtemp(), mkostemp(), mkostemps(), mkstemps(), arc4random(), arc4random_buf(), arc4random_uniform(), canonicalize_file_name(), and posix_memalign(): stdlib.h Add declarations for memmem(), and strsep(): string.h Add declaration for explicit_bzero(): strings.h Changes to ease porting open source software: term.h UW7-233 Add declarations and defines for clock_* : time.h Add declaration for nanosleep(): unistd.h Add declaration for getentropy(), lpathconf(). Add missing declarations for seteuid() and setegid() system calls. Add missing sethostname() declaration. Add declaration for execvpe(): utime.h Add declaration for lutime(). sys/clock.h sys/clock_p.h Modifications for new clock_* syscalls: sys/pathname.h Add declarations for trailing slash fixes: sys/poll.h (UW7-154) Reduce differences with the OpenServer 6 source base. Declare poll_k return to be int rather than implying: sys/stat.h Add declaration for lchmod(). Modifications for new clock_* system calls: sys/syscall.h Add SYS_lchmod, SYS_lpathconf, SYS_lutime, SYS_clockgetres, SYS_clockgettime, SYS_clocksettime, and SYS_clocknanosleep defines: sys/syslog.h Add missing declaration for vsyslog(): sys/time.h Add defines for clock_* : sys/types.h Add blksize_t, clockid_t, suseconds_t, and timer_t data types: sys/unistd.h Add defines for _SC_LOGIN_NAME_MAX, _SC_HOST_NAME_MAX, _SC_TTY_NAME_MAX, _SC_GETGR_R_SIZE_MAX, and _SC_GETPW_R_SIZE_MAX for sysconf(): sys/user.h Modifications for new clock_* system calls: fs, procfs, svc, name, acpi, and audit device drivers Add lchmod(), lpathconf(), lutime() system calls fs device driver. Bring in trailing slash fixes: proc, util driver (UW7-154) Update kernel device drivers for new clock_* system calls: proc driver Block syscall fix: v3compat, ccnv, kdb, kdb_util, and scodb device drivers kd, inet, proc device drivers Bring in fixes/enhancements from Open Server 6: libc see libc-8.0.2j.txt libthread see libthread-8.0.2d.txt Add support in getaddrinfo() for AI_NUMERICHOST and AI_NUMERICSERV: libsocket auditmap, truss: Add lchmod(), lpathconf(), lutime() syscalls brand: "brand -o " now only displays licenses with ID (UW7-189) Add -j option for update pack license. du update du on UnixWare to display info on files. Quoting the POSIX specifications, "The -a and -s options were adopted from the SVID except that the System V behavior of not listing non-directories explicitly given as operands, unless the -a option is specified, was considered a bug; the BSD-based behavior (report for all operands) is mandated." UW7-228 installf Fix for relative symlinks. man Corrections for man pages with colon in file name. Find pages in section n. UW7-226 sh Fix kill command bug in /sbin/sh. UW7-230 ksh Provide use_builtin fix D49 New utilities: sha, sha1, sha256, sha384, sha512 emergency recovery: Add rand device driver to: /usr/lib/drf/conframdfs /usr/lib/drf/drfram.proto /usr/lib/drf/mini_kernel /usr/lib/drf/prep_flop /usr/sadm/install/bin/pkginstall /usr/sadm/install/bin/pkgremove Add version information to email messages. 3. Bring in fixes/enhancements from OpenServer 6 for the kd, inet, and proc device drivers. (D58) 4. Add various manual pages; see the Contents section below for a listing. In addition, ptf9151b provides these fixes: 5. Fixed a kernel block call causing sleep in libthread to fail with values more than 248 days. (UW7-147) 6. Fixed a duplicate system call number mistakenly introduced in ptf9151a. (D65) 7. Updated /usr/ccs/bin/debug for new system calls added to enable UnixWare 7 Definitive Update Pack 1. (UW7-147) 8. idmkenv now saves a backup copy of /etc/inittab. (530070:1) 9. The krpc device driver no longer prints an ss_accept() warning on EINTR, which is a normal condition. (UW7-146) 10. memsize no longer prints labels when no arguments are given. (UW7-146) Contents -------- /etc/conf/bin/idconfupdate /etc/conf/bin/idmkenv /etc/conf/interface.d/psm.2.3 /etc/conf/mdevice.d/psm_acpi /etc/conf/pack.d/acpi/Driver_atup.o /etc/conf/pack.d/acpi/Driver_mp.o /etc/conf/pack.d/atup/Driver_atup.o /etc/conf/pack.d/atup/Driver_mp.o /etc/conf/pack.d/audit/Driver_atup.o /etc/conf/pack.d/audit/Driver_mp.o /etc/conf/pack.d/ccnv/Driver.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/kd/Driver_atup.o /etc/conf/pack.d/kd/Driver_mp.o /etc/conf/pack.d/kdb/Driver_atup.o /etc/conf/pack.d/kdb/Driver_mp.o /etc/conf/pack.d/kdb_util/Driver_atup.o /etc/conf/pack.d/kdb_util/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/krpc/Driver_atup.o /etc/conf/pack.d/krpc/Driver_mp.o /etc/conf/pack.d/mod/Driver_atup.o /etc/conf/pack.d/mod/Driver_mp.o /etc/conf/pack.d/mps/Driver_mp.o /etc/conf/pack.d/name/Driver_atup.o /etc/conf/pack.d/name/Driver_mp.o /etc/conf/pack.d/nfs/Driver_atup.o /etc/conf/pack.d/nfs/Driver_mp.o /etc/conf/pack.d/pci/Driver_atup.o /etc/conf/pack.d/pci/Driver_mp.o /etc/conf/pack.d/proc/Driver_atup.o /etc/conf/pack.d/proc/Driver_mp.o /etc/conf/pack.d/procfs/Driver_atup.o /etc/conf/pack.d/procfs/Driver_mp.o /etc/conf/pack.d/psm_acpi/Driver_atup.o /etc/conf/pack.d/psm_acpi/Driver_mp.o /etc/conf/pack.d/psm_apic/Driver_mp.o /etc/conf/pack.d/psm_cfgtables/Driver_atup.o /etc/conf/pack.d/psm_cfgtables/Driver_mp.o /etc/conf/pack.d/sc01/Driver.o /etc/conf/pack.d/scodb/Driver_atup.o /etc/conf/pack.d/scodb/Driver_mp.o /etc/conf/pack.d/sd01/Driver.o /etc/conf/pack.d/svc/Driver_atup.o /etc/conf/pack.d/svc/Driver_mp.o /etc/conf/pack.d/util/Driver_atup.o /etc/conf/pack.d/util/Driver_mp.o /etc/conf/pack.d/v3compat/Driver_atup.o /etc/conf/pack.d/v3compat/Driver_mp.o /etc/conf/sdevice.d/psm_acpi /etc/copyrights/z_ptf9150 /etc/default/ssh-host-key-fingerprints /etc/expirewarning /etc/hw /etc/inet/dhcpc/hosts /etc/inet/dhcpc/opt /etc/license/deutsch/eula.html /etc/license/deutsch/eula.txt /etc/license/english/eula.html /etc/license/english/eula.txt /etc/license/espanol/eula.html /etc/license/espanol/eula.txt /etc/license/francais/eula.html /etc/license/francais/eula.txt /etc/license/japanese/eula.mht /etc/license/japanese/eula.txt /etc/licenseMgr /etc/rc.d/ssh-host-key-fingerprints /etc/rc0 /etc/rc6 /sbin/dd /sbin/md5 /sbin/memsize /sbin/nologin /sbin/rc0 /sbin/rc6 /sbin/sh /sbin/sha /sbin/sha1 /sbin/sha256 /sbin/sha384 /sbin/sha512 /stand/bootmsgs /u95/bin/use_builtin /usr/bin/awk /usr/bin/comm /usr/bin/copy /usr/bin/copyrights /usr/bin/cut /usr/bin/dd /usr/bin/du /usr/bin/edit /usr/bin/egrep /usr/bin/ex /usr/bin/fgrep /usr/bin/fold /usr/bin/grep /usr/bin/hd /usr/bin/head /usr/bin/join /usr/bin/man /usr/bin/md5 /usr/bin/nawk /usr/bin/od /usr/bin/passwd /usr/bin/paste /usr/bin/pkginfo /usr/bin/pkgmk /usr/bin/pkgparam /usr/bin/pkgproto /usr/bin/pkgtrans /usr/bin/pr /usr/bin/sed /usr/bin/sha /usr/bin/sha1 /usr/bin/sha256 /usr/bin/sha384 /usr/bin/sha512 /usr/bin/sort /usr/bin/split /usr/bin/tail /usr/bin/tftp /usr/bin/truss /usr/bin/uniq /usr/bin/vedit /usr/bin/vi /usr/bin/view /usr/bin/wc /usr/bin/what /usr/bin/whereis /usr/ccs/bin/debug /usr/ccs/bin/what /usr/ccs/lib/libc.a /usr/ccs/lib/libc.so /usr/ccs/lib/libp/libc.a /usr/ccs/lib/libp/libc.so /usr/ccs/lib/libp/libc.so.1 /usr/include/CC/cstdio /usr/include/CC/iostream.h /usr/include/CC/yvals.h /usr/include/ctype.h /usr/include/dirent.h /usr/include/err.h /usr/include/fcntl.h /usr/include/float.h /usr/include/getopt.h /usr/include/inttypes.h /usr/include/limits.h /usr/include/locale.h /usr/include/math.h /usr/include/net/bpf.h /usr/include/net/if.h /usr/include/netdb.h /usr/include/pthread.h /usr/include/setjmp.h /usr/include/signal.h /usr/include/spawn.h /usr/include/stdarg.h /usr/include/stddef.h /usr/include/stdint.h /usr/include/stdio.h /usr/include/stdlib.h /usr/include/string.h /usr/include/strings.h /usr/include/sys/cdefs.h /usr/include/sys/clock.h /usr/include/sys/clock_p.h /usr/include/sys/kmem.h /usr/include/sys/mkdev.h /usr/include/sys/osocket.h /usr/include/sys/pathname.h /usr/include/sys/poll.h /usr/include/sys/privilege.h /usr/include/sys/psm.h /usr/include/sys/resource.h /usr/include/sys/sd01.h /usr/include/sys/sockio.h /usr/include/sys/stat.h /usr/include/sys/syscall.h /usr/include/sys/syslog.h /usr/include/sys/time.h /usr/include/sys/types.h /usr/include/sys/uadmin.h /usr/include/sys/unistd.h /usr/include/sys/user.h /usr/include/tcpd.h /usr/include/term.h /usr/include/time.h /usr/include/unistd.h /usr/include/utime.h /usr/include/varargs.h /usr/include/vm/kma_p.h /usr/include/wchar.h /usr/lib/drf/conframdfs /usr/lib/drf/drfram.proto /usr/lib/drf/mini_kernel /usr/lib/drf/prep_flop /usr/lib/expreserve /usr/lib/exrecover /usr/lib/libiaf.a /usr/lib/libiaf.so /usr/lib/libsocket.so /usr/lib/libsocket.so.1 /usr/lib/libsocket.so.2 /usr/lib/locale/C/LC_MESSAGES/bootmsgs /usr/lib/locale/de/LC_MESSAGES/bootmsgs /usr/lib/locale/de/LC_MESSAGES/sa/licenseMgr.cat /usr/lib/locale/de/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/de_AT/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/de_CH/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/de_DE/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/es/LC_MESSAGES/bootmsgs /usr/lib/locale/es/LC_MESSAGES/sa/licenseMgr.cat /usr/lib/locale/es/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/es_AR/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/es_CL/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/es_ES/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/es_MX/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/es_VE/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/fr/LC_MESSAGES/bootmsgs /usr/lib/locale/fr/LC_MESSAGES/sa/licenseMgr.cat /usr/lib/locale/fr/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/fr_BE/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/fr_CA/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/fr_CH/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/fr_FR/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/ja/LC_MESSAGES/sa/licenseMgr.cat /usr/lib/locale/ja/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/ja_JP.EUC/LC_MESSAGES/sco_pmd.cat /usr/lib/locale/ja_JP/LC_MESSAGES/sco_pmd.cat /usr/lib/netcfg/init/tcp /usr/lib/scoadmin/license/licenseMgr /usr/lib/scoadmin/msg/de/licenseMgr.cat /usr/lib/scoadmin/msg/es/licenseMgr.cat /usr/lib/scoadmin/msg/fr/licenseMgr.cat /usr/lib/scoadmin/msg/ja/licenseMgr.cat /usr/lib/scoadmin/netosa/ncmOsa /usr/man/cat1/md5.1 /usr/man/cat1/sha.1 /usr/man/cat1/sha1.1 /usr/man/cat1/sha256.1 /usr/man/cat1/sha384.1 /usr/man/cat1/sha512.1 /usr/man/cat1/whereis.1 /usr/man/cat2/clock_getres.2 /usr/man/cat2/clock_gettime.2 /usr/man/cat2/clock_nanosleep.2 /usr/man/cat2/clock_settime.2 /usr/man/cat2/nanosleep.2 /usr/man/cat3/arc4random.3 /usr/man/cat3/arc4random_buf.3 /usr/man/cat3/arc4random_uniform.3 /usr/man/cat3/err.3 /usr/man/cat3/err_set_exit.3 /usr/man/cat3/err_set_file.3 /usr/man/cat3/errc.3 /usr/man/cat3/errx.3 /usr/man/cat3/execvpe.3 /usr/man/cat3/getopt_long.3 /usr/man/cat3/getopt_long_only.3 /usr/man/cat3/memmem.3 /usr/man/cat3/mkdtemp.3 /usr/man/cat3/mkostemp.3 /usr/man/cat3/mkostemps.3 /usr/man/cat3/mkstemp.3 /usr/man/cat3/mkstemps.3 /usr/man/cat3/mktemp.3 /usr/man/cat3/posix_spawn.3 /usr/man/cat3/posix_spawn_file_actions_addclose.3 /usr/man/cat3/posix_spawn_file_actions_adddup2.3 /usr/man/cat3/posix_spawn_file_actions_addopen.3 /usr/man/cat3/posix_spawn_file_actions_destroy.3 /usr/man/cat3/posix_spawn_file_actions_init.3 /usr/man/cat3/posix_spawnattr_destroy.3 /usr/man/cat3/posix_spawnattr_getflags.3 /usr/man/cat3/posix_spawnattr_getpgroup.3 /usr/man/cat3/posix_spawnattr_init.3 /usr/man/cat3/posix_spawnattr_setflags.3 /usr/man/cat3/posix_spawnattr_setpgroup.3 /usr/man/cat3/posix_spawnp.3 /usr/man/cat3/strsep.3 /usr/man/cat3/verr.3 /usr/man/cat3/verrc.3 /usr/man/cat3/verrx.3 /usr/man/cat3/vwarn.3 /usr/man/cat3/vwarnc.3 /usr/man/cat3/vwarnx.3 /usr/man/cat3/warn.3 /usr/man/cat3/warnc.3 /usr/man/cat3/warnx.3 /usr/man/cat8/nologin.8 /usr/man/html.1/passwd.1.html /usr/man/man1/md5.1 /usr/man/man1/sha.1 /usr/man/man1/sha1.1 /usr/man/man1/sha256.1 /usr/man/man1/sha384.1 /usr/man/man1/sha512.1 /usr/man/man1/whereis.1 /usr/man/man2/clock_getres.2 /usr/man/man2/clock_gettime.2 /usr/man/man2/clock_nanosleep.2 /usr/man/man2/clock_settime.2 /usr/man/man2/nanosleep.2 /usr/man/man3/arc4random.3 /usr/man/man3/arc4random_buf.3 /usr/man/man3/arc4random_uniform.3 /usr/man/man3/err.3 /usr/man/man3/err_set_exit.3 /usr/man/man3/err_set_file.3 /usr/man/man3/errc.3 /usr/man/man3/errx.3 /usr/man/man3/execvpe.3 /usr/man/man3/getopt_long.3 /usr/man/man3/getopt_long_only.3 /usr/man/man3/memmem.3 /usr/man/man3/mkdtemp.3 /usr/man/man3/mkostemp.3 /usr/man/man3/mkostemps.3 /usr/man/man3/mkstemp.3 /usr/man/man3/mkstemps.3 /usr/man/man3/mktemp.3 /usr/man/man3/posix_spawn.3 /usr/man/man3/posix_spawn_file_actions_addclose.3 /usr/man/man3/posix_spawn_file_actions_adddup2.3 /usr/man/man3/posix_spawn_file_actions_addopen.3 /usr/man/man3/posix_spawn_file_actions_destroy.3 /usr/man/man3/posix_spawn_file_actions_init.3 /usr/man/man3/posix_spawnattr_destroy.3 /usr/man/man3/posix_spawnattr_getflags.3 /usr/man/man3/posix_spawnattr_getpgroup.3 /usr/man/man3/posix_spawnattr_init.3 /usr/man/man3/posix_spawnattr_setflags.3 /usr/man/man3/posix_spawnattr_setpgroup.3 /usr/man/man3/posix_spawnp.3 /usr/man/man3/strsep.3 /usr/man/man3/verr.3 /usr/man/man3/verrc.3 /usr/man/man3/verrx.3 /usr/man/man3/vwarn.3 /usr/man/man3/vwarnc.3 /usr/man/man3/vwarnx.3 /usr/man/man3/warn.3 /usr/man/man3/warnc.3 /usr/man/man3/warnx.3 /usr/man/man8/nologin.8 /usr/sadm/install/bin/mergcont /usr/sadm/install/bin/pkginstall /usr/sadm/install/bin/pkgremove /usr/sbin/auditmap /usr/sbin/brand /usr/sbin/crash /usr/sbin/in.dhcpc /usr/sbin/in.tftpd /usr/sbin/installf /usr/sbin/nologin /usr/sbin/pkgadd /usr/sbin/pkgask /usr/sbin/pkgchk /usr/sbin/pkgrm /usr/sbin/removef /usr/sbin/sco_pmd Software Notes and Recommendations ---------------------------------- 1. ptf9151 should only be installed on systems with: UnixWare 7 Definitive 2018 (D2M1), libc package version 8.0.2k or later, and libthread package version 8.0.2d or later. 2. If your system has an AHCI controller, you should also install the revised AHCI device driver (version 2.0b or later). 3. ptf9151 can be installed on UnixWare 7 Definitive 2018 with or without ptf9150 (any version). Removal of later versions of ptf9151 will remove all prior ptf9151 versions and restore the original UnixWare 7 Definitive 2018 (plus ptf9150, if installed) binaries. Removing ptf9151 will also break any binaries using new features in ptf9151b. 4. If you participated in the UnixWare 7/OpenServer 6 Definitive 2018 Development System Update Alpha program, p600000 must be removed before applying this patch. 5. Starting with ptf9150d and in ptf9151: By default, systems now halt on panic instead of shutting down or rebooting. If you prefer that the system either shuts down or reboots on panic, set the new PANICHALT variable to N and set PANICBOOT accordingly. 6. If you pkgadd and pkgrm this package, some language catalogs whose symlinks were previously broken have those symlinks restored. This means the correct catalog is now displayed. KMDT Notes ---------- 7. The new kmdt tool in the kma device driver supports the following levels of instrumentation (debugging levels): Level Instrumentation 0 Default (no instrumentation) 1 KMDT_STATS 2 KMDT_HIST|KMDT_STATS 3 KMDT_PARANOID|KMDT_HIST|KMDT_STATS 4 KMDT_POISON|KMDT_PARANOID|KMDT_HIST|KMDT_STATS 5 KMDT_EXTREME_PARANOID|KMDT_HIST|KMDT_STATS 6 KMDT_EXTREME_PARANOID|KMDT_POISON|KMDT_HIST|KMDT_STATS The instrumentation settings above are described in note #10 below. As the levels are increased, more compute (physical and virtual memory) resources are consumed. This may change the timing of the application or kernel conditions causing the panic. 8. To change the level of instrumentation, set KMDT_INSTR_LEVEL in /stand/boot file and reboot. Or reboot, press space at the splash screen, and set the instrumentation level like in this example: [boot] KMDT_INSTR_LEVEL=3 [boot] boot Remember, set to 0 for no instrumentation. 9. Each level above is a combination of a particular KMDT functionality to debug a certain type of memory related issues. As mentioned above, each increasing level is going to stress the system more in terms of resources. The KMDT functionality values in #8 are defined next: KMEM_STATS KMA statistical information is organized into two tables. The SIZES table holds the number of bytes "owned" (allocated but not freed) for each size. The INVOCATIONS table holds the number of invocations of kma_alloc or kma_free for each size and for each invocation point, where an invocation point is a return address from where kma_alloc or kma_free is called. Each entry in the SIZES table is linked to the chain of corresponding INVOCATIONS entries. KMEM_HIST KMA history information is gathered primarily for the purpose of finding undisciplined users of kmem_alloc/kmem_free. The last KMA_HIST_MAX calls to kmem_alloc/kmem_zalloc, and kmem_free are recorded in the kma_hist_buffer. KMDT_PARANOID This is the basic functionality to catch memory corruption. This writes MAGIC at the beginning of the freed memory and TMAGIC to the tail of allocated memory, and checks if the same has been corrupted at time of free or re-allocation. KMA_EXTREME_PARANOID, kma_xminbufsz, kma_xmaxbufsz The kma_xminbufsz controls the minimum (or start) buffer size and kma_xmaxbufsz controls the maximum (or end) buffer size to be tracked for memory corruption. Any buffer size requested within the range is allocated in unit of a page. The page is freed when the buffer is released. This enables us to track memory corruption within a buffer after it is released. If a fixed size buffer needs to be tracked, set kma_xminbufsz to kma_xmaxbufsz. The kma_xminbufsz and kma_xmaxbufsz should not be greater than MAXBUFSZ ; that is, 8192 bytes. Please note that the default value of kma_xminbufsz, k ma_xmaxbufsz is 0 which means KMA_EXTREME_PARANOID as no effect. So, if you want to enable KMA_EXTREME_PARANOID via level 5 or 6 then we need to set these two values. KMA_POISON As you can see from above instrumentation levels in #8, KMA_POISON is only enabled either with KMA_PARANOID or KMA_EXTREME_PARANOID. With KMA_PARANOID this will write MAGIC and TMAGIC to all memory except of few bytes, as in case if only kKMA_PARANOID is enabled. At the time of allocation or free, the unused buffer space is checked for MAGIC string. This considerably slows down memory allocation and frees and may disrupt timing of the problem being investigated. With KMA_EXTREME_PARANOID an extra virtual page is allocated to track out-of-bound memory access. 10. This patch also provides crash utility. Useful crash commands include kmastat and kmahist. 11. There are three new tuneables defined in /etc/conf/pack.d/kma/space.c : kma_sizes kma_hist_max kma_invocs Please note the default values for these tuneables in space.c is 0 because the kma driver code during initialization will allocate certain amount of memory for each of the tables/buffer. If you need to overwrite then please update these variables, rebuild the kernel, and reboot. The default sizes are: * 14983 entries for the size table; * 29989 entries for the invocation table; and * 100000 entries for the history log buffer. Installation Instructions ------------------------- Either use patchck to install this patch or use the following procedure: 1. Download the ptf9151b.image file to the /tmp directory on your machine. 2. As root, add the package to your system using these commands: $ su - Password: # pkgadd -d /tmp/ptf9151b.image Alternatively, this package may be installed in quiet mode by using these commands: $ su - Password: # pkgadd -qd /tmp/ptf9151b.image all 3. Reboot the system after installing this package. Removal Instructions -------------------- WARNING: Removal is only supported for debugging followed by an immediate reinstallation. Critical system functionality will break until ptf9151 is reinstalled. This should only be done in consultation with Xinuos support. 1. As root, remove the package using these commands: $ su - Password: # pkgrm ptf9151 2. Reboot the system after removing this package. If you have questions regarding this supplement, or the product on which it is installed, please contact your software supplier. ------------------------------------------------------------------------------- (C) Copyright 2024 Xinuos, Inc. All Rights Reserved.