All Patches for PowerMAX 4.2 are:

audit-001       base-017        crypt-001       ie-001          ncr-001         
base-001        base-018        crypt-002       inet-001        ncr-002         
base-002        cld-001         crypt-int-001   inet-002        netboot-001     
base-003        cluster-001     dec-001         inet-003        nfs-001         
base-004        cluster-002     dec-002         inet-004        nfs-002         
base-005        cluster-003     dec-003         inet-005        ngpib-001       
base-006        cluster-004     dec-004         inet-006        nsu-001         
base-007        cluster-005     dec-005         inet-007        nsu-002         
base-008        cluster-006     dec-006         inet-008        pg-001          
base-009        cmds-001        dec-007         librt-001       rpc-001         
base-010        cmds-002        dec-008         man-001         via-001         
base-011        cmds-003        dr11w-001       man-002         vp-001          
base-013        crosslibs-001   fbs-001         man-003         vp-002          
base-014        crosslibs-002   fd-001          man-004         vp-003          
base-015        crosslibs-003   fibre-001       man-005         zld-001         
base-016        crosslibs-004   ide-001         man-006         zld-002         

================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           audit-001
 Date Issued:          09/30/98 09:04:20
 Software Package:     audit pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto nh
 Platforms:            All PowerMAX OS 4.2 platforms
 Related Patches:      base-013 (Power Hawk 610/620, PowerStack, PowerStack II),
                       base-014 (Power Hawk 640, PowerStack II multi-processor),
                       base-015 (Night Hawk 6200/6800, TurboHawk, PowerMAXION)
 Related SARS:         none
 
 Brief Description:

      PowerMAX OS 4.2 audit package release updates 

 Problem Description:

      1.  Added audit package support for the new nvram(2) system call.

 Problem Resolution: 

      1.  Entries are added to the audit check function table and the audit
	  recording table any time a new system call is defined in the kernel.

	  Entries for the new nvram(2) system call were added to each of these
	  tables and were set to indicate that no auditing should be performed
	  by the kernel for this system call.
 
 Object To Be Replaced: 

      /etc/conf/pack.d/audit/Driver.o

 Special Conditions for Installation: 

      None.
 
 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           audit-001
 Date Issued:          09/30/98 09:04:20
 Software Package:     audit pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto nh
 Platforms:            All PowerMAX OS 4.2 platforms
 Related Patches:      base-013 (Power Hawk 610/620, PowerStack, PowerStack II),
                       base-014 (Power Hawk 640, PowerStack II multi-processor),
                       base-015 (Night Hawk 6200/6800, TurboHawk, PowerMAXION)
 Related SARS:         none
 
 Brief Description:

      PowerMAX OS 4.2 audit package release updates 

 Problem Description:

      1.  Added audit package support for the new nvram(2) system call.

 Problem Resolution: 

      1.  Entries are added to the audit check function table and the audit
	  recording table any time a new system call is defined in the kernel.

	  Entries for the new nvram(2) system call were added to each of these
	  tables and were set to indicate that no auditing should be performed
	  by the kernel for this system call.
 
 Object To Be Replaced: 

      /etc/conf/pack.d/audit/Driver.o

 Special Conditions for Installation: 

      None.
 
 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           audit-001
 Date Issued:          09/30/98 09:04:20
 Software Package:     audit pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto nh
 Platforms:            All PowerMAX OS 4.2 platforms
 Related Patches:      base-013 (Power Hawk 610/620, PowerStack, PowerStack II),
                       base-014 (Power Hawk 640, PowerStack II multi-processor),
                       base-015 (Night Hawk 6200/6800, TurboHawk, PowerMAXION)
 Related SARS:         none
 
 Brief Description:

      PowerMAX OS 4.2 audit package release updates 

 Problem Description:

      1.  Added audit package support for the new nvram(2) system call.

 Problem Resolution: 

      1.  Entries are added to the audit check function table and the audit
	  recording table any time a new system call is defined in the kernel.

	  Entries for the new nvram(2) system call were added to each of these
	  tables and were set to indicate that no auditing should be performed
	  by the kernel for this system call.
 
 Object To Be Replaced: 

      /etc/conf/pack.d/audit/Driver.o

 Special Conditions for Installation: 

      None.
 
 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-001
 Date Issued:          03/23/98 17:50:15
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto 
 Platforms:            Power Hawk 610, 620, PowerStack, PowerStack II
 Related Patches:      none
 Related SARS:         HM12323, HM12326
 
 Brief Description:
 
      PowerMAX OS 4.2 base package release updates.

 Problem Description:
      1. Write errors may occur using cp or cpio on xfs file systems
         if the file system is fragmented, even though df shows
         plenty of free space is available.

      2. mkfs -F xfs (or newfs -F xfs) allows an extent size of 1MB
         to be selected with the default fragment size (512 bytes)
         using the -e 1024K option. This file system will become
         corrupted due to xfs system pages being overwritten by user
         files.

      3. PANIC: kernel-mode address fault on user address 0x4E800048
	 The C91007a.X ADA test issued a server_wake1() system call
         with argument 1 which is the global_lwpid_t server = 0.
         server_wake1() called lwp_find() which is supposed to locate
         the proc and lwp structures for the supplied global_lwpid_t.
         However, a value of 0 caused lwp_find() to try to reference
         p->p_lwpdir[-1]. This picked up a garbage address (0x4E800020)
         for the lwp structure which resulted in a reference to an
         unallocated memory location (0x4E800048).

      4. Panics due to priority inheritance list corruption.  This only
         occurs with multi-lwp processes.

      5. A race condition existed in the special file system driver
         that resulted in various "Alignment Fault" kernel panics.
         These faults could occur when closing a character special
         device followed very closely by an open of the same device.

      6. A user-level interrupts fix for SAR HM12323.

         When a LWP is disconnected from an interrupt vector
         (ICON_DISC), and a deallocation of that same vector (ICON_IVEC
         II_DEALLOCATE) occurs at about the same point in time, then
         applications are unable to re-allocate that same interrupt
         vector until the system is rebooted.

      7. NIS doesn't work with cpio and tar (because they are built
         statically).

      8. The console driver does not support modem control ioctls
         (TIOCMGET/TIOCMSET).

      9. The console driver fails to drop DTR on COM2 when HUPCL
         has been specified and 6 or 8 bit character widths are
         used.

     10. Loosely-coupled multiprocessors experience random hangs or
         panics during periods of heavy VME networking activity.

     11. When a kernel panic occurs, the machine drops into kdb as expected.
         However, once the kdb command "q" is given to exit kdb and continue
         with the dump, the machine will attempt to write the dump but almost
         immediately drop into the console debugger.  The panicking CPU never
         has a chance to complete the dump because the non-panicking CPU
         enters the console debugger and interrupts the panicking CPU.

     12. When the console debugger is entered, sometimes CPU 1 fails to halt.
         CPU 0, upon entering the console debugger, sends an inter-processor
         interrupt (IPI 3) to CPU 1 in order to force it into the console
         debugger.  This interrupt is not always recognized by CPU 1.

     13. When CPU 1 is the first CPU to enter the console debugger, the
         machine will hang up anywhere from 30 seconds to 3 minutes.  Once
         CPU 0 enters the console debugger, a flag is set in the console
         debugger code indicating that CPU 0 halted.  However, this flag is
         never cleared upon exit from the console debugger.  When CPU 1
         subsequently enters the console debugger first, it sees that CPU 0
         has been flagged as being halted when it in reality has not halted.
         Because of this, CPU 1 does not send inter-processor interrupt
         (IPI 3) to CPU 0 to force it into the console debugger and spins
         waiting to be started by CPU 0.

     14. Changes need to be made to /etc/conf/pack.d/sbc/stubs.c to allow a
         kernel to be built on a machine that has the FBS package installed
         but not the cluster package.

     15. Temporary file handling using writes to xfs files that have
         been opened then unlinked fails with EINVAL returned. For
         example, this happens when using tmpfile(3S) on an xfs file system.

 Problem Resolution: 
      1. Prior to this fix, xfs selected the size of the first file
         extent based on the size of the first write to the file up
         to a limit of 1MB. This limit is now set to the file
         system extent size which is determined when the file system
         was created (default 64KB). You can use "fstyp -v" to see
         the file system extent size. See mkfs_xfs(1M) man page for
         how to set a larger file system extent size if you prefer
         to have xfs default to large extents.

         Note this change has no effect on the behaviour of
         fallocate(3X).

      2. mkfs for xfs has been changed to prohibit the combination of
         an extent size of 1024K with a fragment size of 512 bytes.
 
      3. lwp_find() will now check for and return (lwp_t *)0 if
         the llwpid portion of the supplied global_lwpid_t is 0.

      4. The priority inheritance list was not correctly initialized when
         creating new lwps within an existing process.

      5. Removed the race condition.

      6. Close the race in the kernel between interrupt vector
         deallocations and disconnecting a LWP from an interrupt
         vector, so that the interrupt vector is always properly
         deallocated, thus allowing future allocations of that same
         interrupt vector to succeed.

      7. Build static and dynamic versions of tar and cpio.  Dynamic
         by default, in /usr/bin.  Static versions in /sbin.

      8. Added support for TIOCMGET/TIOCMSET which works on all 4
         COM ports.  The driver now supports setting/resetting
         TIOCM_DTR and TIOCM_RTS using TIOCMSET, and will report
         the current state of the following lines using TIOCMGET:
         TIOCM_DTR, TIOCM_RTS, TIOCM_CTS, TIOCM_CAR, TIOCM_RNG,
         and TIOCM_DSR.

      9. A variable in the DTR setting logic was not properly
         initialized to zero. The stale value was inherited from
         bits used to select character widths.  When 6 or 8 bit
         character widths were specified, one of the bits inherited
         forced the assertion of DTR.

     10. An inappropriate interrupt level was being used for vme
         message passing which was incomparable with generic
         "Streams" code.  Fixed the sbc/vmemsg drivers to interrupt
         at IPL5 which is compatible with "Streams" modules.

     11. Add code to kernel pause_self() function to allow the non-panicking
         CPU to drop IPL and spin until forced into the console debugger by
         the panicking CPU.

     12. Add code to cpu_serv() console debugger function to temporarily
         boost the priority of IPI 3 from a very low priority of 0x1 to the
         highest priority of 0xf when an inter-processor interrupt is to be
         sent.  The priority is returned to 0x1 by CPU 0 before it enters the
         console debugger command prompt loop centry().

     13. a.  In the console debugger kern_restart() function, if the CPU to
             be restarted is CPU 0, then its halted flag is cleared before
             returning to context before the console debugger was entered.
         b.  In the console debugger runcpu() and stepcpu() functions,
             CPU 0's halted flag is cleared before restarting it.

     14. Make appropriate changes to the stubs source code file.

     15. Corrected a regression introduced in code for xfs writes to 
         non-persistent files.

 Object To Be Replaced: 
      /etc/conf/cf.d/intr.s
      /etc/conf/pack.d/bsp2600/Driver.o
      /etc/conf/pack.d/cons/Driver.o
      /etc/conf/pack.d/mem/Driver.o
      /etc/conf/pack.d/vme/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/sbc/stubs.c
      /etc/conf/pack.d/specfs/Driver.o
      /etc/conf/pack.d/svc/Driver.o
      /etc/conf/pack.d/ui/Driver.o
      /etc/conf/pack.d/xfs/Driver.o
      /etc/fs/xfs/mkfs
      /sbin/cpio.st
      /sbin/tar.st
      /stand/cp1
      /usr/bin/cpio
      /usr/lib/fs/xfs/mkfs
      /usr/include/sys/vm_mdep.h
      /usr/include/sys/z8536.h
      /usr/sbin/tar

 Special Conditions for Installation: 

      During installation of base-001, an updated version of /stand/cp1
      will be installed and the new console overlay will be written to
      partition 6 on the system disk.  Following successful installation,
      the system must be taken down and reset to load the new console 
      before rebooting.  Failure to do so may result in unexpected or 
      unreliable behavior.

 Possible Side Effects:

      If the base-001 package is removed (pkgrm(1M)), the original
      console will be re-written to partition 6 on the system disk.  To 
      ensure there are no adverse side effects, the kernel should be 
      rebuilt (idbuild(1M)) and the system taken down and reset to load
      the original console before rebooting the system.

      Suggested procedure for removing base-001:

        # pkgrm base-001
        # /etc/conf/bin/idbuild -B
        # sync
        # init 0
        # Reset system
        Follow the normal boot procedure detailed in the PowerMAX OS Product
        Release Notes to load the new console and boot the new kernel.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-002
 Date Issued:          03/23/98 18:02:53
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 640, PowerStack II (multi-processor only)
 Related Patches:      none
 Related SARS:         HM12323, HM12326
 
 Brief Description:
 
      PowerMAX OS 4.2 base package release updates.

 Problem Description:
      1. Write errors may occur using cp or cpio on xfs file systems
         if the file system is fragmented, even though df shows
         plenty of free space is available.

      2. mkfs -F xfs (or newfs -F xfs) allows an extent size of 1MB
         to be selected with the default fragment size (512 bytes)
         using the -e 1024K option. This file system will become
         corrupted due to xfs system pages being overwritten by user
         files.

      3. PANIC: kernel-mode address fault on user address 0x4E800048
	 The C91007a.X ADA test issued a server_wake1() system call
         with argument 1 which is the global_lwpid_t server = 0.
         server_wake1() called lwp_find() which is supposed to locate
         the proc and lwp structures for the supplied global_lwpid_t.
         However, a value of 0 caused lwp_find() to try to reference
         p->p_lwpdir[-1]. This picked up a garbage address (0x4E800020)
         for the lwp structure which resulted in a reference to an
         unallocated memory location (0x4E800048).

      4. Panics due to priority inheritance list corruption.  This only
         occurs with multi-lwp processes.

      5. A race condition existed in the special file system driver
         that resulted in various "Alignment Fault" kernel panics.
         These faults could occur when closing a character special
         device followed very closely by an open of the same device.

      6. A user-level interrupts fix for SAR HM12323.

         When a LWP is disconnected from an interrupt vector
         (ICON_DISC), and a deallocation of that same vector (ICON_IVEC
         II_DEALLOCATE) occurs at about the same point in time, then
         applications are unable to re-allocate that same interrupt
         vector until the system is rebooted.

      7. NIS doesn't work with cpio and tar (because they are built
         statically).

      8. The console driver does not support modem control ioctls
         (TIOCMGET/TIOCMSET).

      9. The console driver fails to drop DTR on COM2 when HUPCL
         has been specified and 6 or 8 bit character widths are
         used.

     10. Loosely-coupled multiprocessors experience random hangs or
         panics during periods of heavy VME networking activity.

     11. When a kernel panic occurs, the machine drops into kdb as expected.
         However, once the kdb command "q" is given to exit kdb and continue
         with the dump, the machine will attempt to write the dump but almost
         immediately drop into the console debugger.  The panicking CPU never
         has a chance to complete the dump because the non-panicking CPU
         enters the console debugger and interrupts the panicking CPU.

     12. When the console debugger is entered, sometimes CPU 1 fails to halt.
         CPU 0, upon entering the console debugger, sends an inter-processor
         interrupt (IPI 3) to CPU 1 in order to force it into the console
         debugger.  This interrupt is not always recognized by CPU 1.

     13. When CPU 1 is the first CPU to enter the console debugger, the
         machine will hang up anywhere from 30 seconds to 3 minutes.  Once
         CPU 0 enters the console debugger, a flag is set in the console
         debugger code indicating that CPU 0 halted.  However, this flag is
         never cleared upon exit from the console debugger.  When CPU 1
         subsequently enters the console debugger first, it sees that CPU 0
         has been flagged as being halted when it in reality has not halted.
         Because of this, CPU 1 does not send inter-processor interrupt
         (IPI 3) to CPU 0 to force it into the console debugger and spins
         waiting to be started by CPU 0.

     14. Changes need to be made to /etc/conf/pack.d/sbc/stubs.c to allow a
         kernel to be built on a machine that has the FBS package installed
         but not the cluster package.

     15. Temporary file handling using writes to xfs files that have
         been opened then unlinked fails with EINVAL returned. For
         example, this happens when using tmpfile(3S) on an xfs file system.

 Problem Resolution: 
      1. Prior to this fix, xfs selected the size of the first file
         extent based on the size of the first write to the file up
         to a limit of 1MB. This limit is now set to the file
         system extent size which is determined when the file system
         was created (default 64KB). You can use "fstyp -v" to see
         the file system extent size. See mkfs_xfs(1M) man page for
         how to set a larger file system extent size if you prefer
         to have xfs default to large extents.

         Note this change has no effect on the behaviour of
         fallocate(3X).

      2. mkfs for xfs has been changed to prohibit the combination of
         an extent size of 1024K with a fragment size of 512 bytes.
 
      3. lwp_find() will now check for and return (lwp_t *)0 if
         the llwpid portion of the supplied global_lwpid_t is 0.

      4. The priority inheritance list was not correctly initialized when
         creating new lwps within an existing process.

      5. Removed the race condition.

      6. Close the race in the kernel between interrupt vector
         deallocations and disconnecting a LWP from an interrupt
         vector, so that the interrupt vector is always properly
         deallocated, thus allowing future allocations of that same
         interrupt vector to succeed.

      7. Build static and dynamic versions of tar and cpio.  Dynamic
         by default, in /usr/bin.  Static versions in /sbin.

      8. Added support for TIOCMGET/TIOCMSET which works on all 4
         COM ports.  The driver now supports setting/resetting
         TIOCM_DTR and TIOCM_RTS using TIOCMSET, and will report
         the current state of the following lines using TIOCMGET:
         TIOCM_DTR, TIOCM_RTS, TIOCM_CTS, TIOCM_CAR, TIOCM_RNG,
         and TIOCM_DSR.

      9. A variable in the DTR setting logic was not properly
         initialized to zero. The stale value was inherited from
         bits used to select character widths.  When 6 or 8 bit
         character widths were specified, one of the bits inherited
         forced the assertion of DTR.

     10. An inappropriate interrupt level was being used for vme
         message passing which was incomparable with generic
         "Streams" code.  Fixed the sbc/vmemsg drivers to interrupt
         at IPL5 which is compatible with "Streams" modules.

     11. Add code to kernel pause_self() function to allow the non-panicking
         CPU to drop IPL and spin until forced into the console debugger by
         the panicking CPU.

     12. Add code to cpu_serv() console debugger function to temporarily
         boost the priority of IPI 3 from a very low priority of 0x1 to the
         highest priority of 0xf when an inter-processor interrupt is to be
         sent.  The priority is returned to 0x1 by CPU 0 before it enters the
         console debugger command prompt loop centry().

     13. a.  In the console debugger kern_restart() function, if the CPU to
             be restarted is CPU 0, then its halted flag is cleared before
             returning to context before the console debugger was entered.
         b.  In the console debugger runcpu() and stepcpu() functions,
             CPU 0's halted flag is cleared before restarting it.

     14. Make appropriate changes to the stubs source code file.

     15. Corrected a regression introduced in code for xfs writes to 
         non-persistent files.

 Object To Be Replaced: 
      /etc/conf/cf.d/intr.s
      /etc/conf/pack.d/bsp4600/Driver.o
      /etc/conf/pack.d/cons/Driver.o
      /etc/conf/pack.d/mem/Driver.o
      /etc/conf/pack.d/vme/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/sbc/stubs.c
      /etc/conf/pack.d/specfs/Driver.o
      /etc/conf/pack.d/svc/Driver.o
      /etc/conf/pack.d/ui/Driver.o
      /etc/conf/pack.d/xfs/Driver.o
      /etc/fs/xfs/mkfs
      /sbin/cpio.st
      /sbin/tar.st
      /stand/cp1
      /usr/bin/cpio
      /usr/include/sys/vm_mdep.h
      /usr/include/sys/z8536.h
      /usr/lib/fs/xfs/mkfs
      /usr/sbin/tar

 Special Conditions for Installation: 
      
      During installation of base-002, an updated version of /stand/cp1
      will be installed and the new console overlay will be written to
      partition 6 on the system disk.  Following successful installation,
      the system must be taken down and reset to load the new console 
      before rebooting.  Failure to do so may result in unexpected or 
      unreliable behavior.
 
 Possible Side Effects: 

      If the base-002 package is removed (pkgrm(1M)), the original
      console will be re-written to partition 6 on the system disk.  To 
      ensure there are no adverse side effects, the kernel should be 
      rebuilt (idbuild(1M)) and the system taken down and reset to load
      the original console before rebooting the system.

      Suggested procedure for removing base-002:

	# pkgrm base-002
	# /etc/conf/bin/idbuild -B
	# sync
	# init 0
	# Reset system
	Follow the normal boot procedure detailed in the PowerMAX OS Product
        Release Notes to load the new console and boot the new kernel.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-003
 Date Issued:          03/24/98 10:19:38
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        nh
 Platforms:            Night Hawk 6200/6800, Night Hawk 6800 Turbo, PowerMAXION
 Related Patches:      none
 Related SARS:         HM12323
 
 Brief Description:
 
      PowerMAX OS 4.2 base package release updates.

 Problem Description:
      1. Write errors may occur using cp or cpio on xfs file systems
         if the file system is fragmented, even though df shows
         plenty of free space is available.

      2. mkfs -F xfs (or newfs -F xfs) allows an extent size of 1MB
         to be selected with the default fragment size (512 bytes)
         using the -e 1024K option. This file system will become
         corrupted due to xfs system pages being overwritten by user
         files.

      3. PANIC: kernel-mode address fault on user address 0x4E800048
	 The C91007a.X ADA test issued a server_wake1() system call
         with argument 1 which is the global_lwpid_t server = 0.
         server_wake1() called lwp_find() which is supposed to locate
         the proc and lwp structures for the supplied global_lwpid_t.
         However, a value of 0 caused lwp_find() to try to reference
         p->p_lwpdir[-1]. This picked up a garbage address (0x4E800020)
         for the lwp structure which resulted in a reference to an
         unallocated memory location (0x4E800048).

      4. Panics due to priority inheritance list corruption.  This only
         occurs with multi-lwp processes.

      5. A race condition existed in the special file system driver
         that resulted in various "Alignment Fault" kernel panics.
         These faults could occur when closing a character special
         device followed very closely by an open of the same device.

      6. A user-level interrupts fix for SAR HM12323.

         When a LWP is disconnected from an interrupt vector
         (ICON_DISC), and a deallocation of that same vector (ICON_IVEC
         II_DEALLOCATE) occurs at about the same point in time, then
         applications are unable to re-allocate that same interrupt
         vector until the system is rebooted.

      7. NIS doesn't work with cpio and tar (because they are built
         statically).

      8. PowerMAX OS did not support the new 256Mbyte local memory map
         on the TurboHAWK system.

      9. PowerMAX OS did not support the posted write feature of the Tundra
         VME interface on TurboHAWK systems.

     10. There was an error in the setup of the Tundra VME interface on the
         two global memory cards on TurboHAWK systems.  This allowed DMA 
         data from VME devices destined for certain local memory ranges to 
         also be written to the global memory boards.  This Tundra setup did 
         not correctly reflect the address map of TurboHAWK system memory.

     11. Accessing of interval timers on processor cards 6 or 7 of TurboHAWK 
         systems caused a system panic.  This was due to an incorrect 
         definition of the physical addresses of the timers on these boards.

     12. Temporary file handling using writes to xfs files that have
         been opened then unlinked fails with EINVAL returned. For
         example, this happens when using tmpfile(3S) on an xfs file system.

     13. 3 and 4 position frontplanes on TurboHAWK systems with the 256Mbyte 
         local memory map assign the last processor board to be board 6, 
         but the local memory address map treats it as if it were board 3.

 Problem Resolution: 
      1. Prior to this fix, xfs selected the size of the first file
         extent based on the size of the first write to the file up
         to a limit of 1MB. This limit is now set to the file
         system extent size which is determined when the file system
         was created (default 64KB). You can use "fstyp -v" to see
         the file system extent size. See mkfs_xfs(1M) man page for
         how to set a larger file system extent size if you prefer
         to have xfs default to large extents.

         Note this change has no effect on the behaviour of
         fallocate(3X).

      2. mkfs for xfs has been changed to prohibit the combination of
         an extent size of 1024K with a fragment size of 512 bytes.
 
      3. lwp_find() will now check for and return (lwp_t *)0 if
         the llwpid portion of the supplied global_lwpid_t is 0.

      4. The priority inheritance list was not correctly initialized when
         creating new lwps within an existing process.

      5. Removed the race condition.

      6. Close the race in the kernel between interrupt vector
         deallocations and disconnecting a LWP from an interrupt
         vector, so that the interrupt vector is always properly
         deallocated, thus allowing future allocations of that same
         interrupt vector to succeed.

      7. Build static and dynamic versions of tar and cpio.  Dynamic
         by default, in /usr/bin.  Static versions in /sbin.

      8. Modified PowerMAX OS to take full advantage of the 256Mbyte local 
         memory map on TurboHAWK systems.

      9. Modified PowerMAX OS to take advantage of the write posting feature 
         of the Tundra VME interface.  This feature improves data throughput 
         on TurboHAWK systems.

     10. The setup of the Tundra VME interface on TurboHAWK global memories 
         was changed to correctly reflect the address map of the TurboHAWK 
         system memory.

     11. The address definitions of the interval timers on TurboHAWK boards
         6 and 7 were corrected.

     12. Corrected a regression introduced in code for xfs writes to 
         non-persistent files.

     13. Code was added to convert processor board 6's local memory address 
         range to that of processor board 3's address range.  This address 
         range is programmed into the Tundra VME interface.

 Object To Be Replaced: 
      /etc/conf/pack.d/bspall/Driver.o
      /etc/conf/pack.d/bsp6800t/Driver.o
      /etc/conf/pack.d/mem/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/specfs/Driver.o
      /etc/conf/pack.d/ui/Driver.o
      /etc/conf/pack.d/vme/Driver.o
      /etc/conf/pack.d/xfs/Driver.o
      /etc/fs/xfs/mkfs
      /sbin/cpio.st
      /sbin/tar.st
      /usr/bin/cpio
      /usr/lib/fs/xfs/mkfs
      /usr/include/sys/vm_mdep.h
      /usr/include/vm/memory_p.h
      /usr/sbin/tar

 Special Conditions for Installation: 
      None.
 
 Possible Side Effects: 
      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-004
 Date Issued:          06/08/98 13:55:54
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 610/620, PowerStack, PowerStack II
 Related Patches:      vp-001
 Related SARS:         HM12390, HM12188, HM12359
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  If the xfs module is to be configured, the system needs to know that 
          xfsth must also be configured.  This is important for cluster systems
          for which the default is to not configure xfs.

      2.  Mentat UDP performance poor with STREAMS network buffers.  Use of 
          other drivers which set a write offset on a stream may also be 
          affected.

          A STREAMS driver can control how the stream head allocates space for
          messages sent downstream.  A write offset may be set which causes the
          stream head to allocate additional memory for a driver to use.  This 
          is generally done to avoid incurring memory allocation overheads. 

          The stream head was copying data from user space into kernel space 
          whenever it had a write offset set on a stream.  This was being done 
          on the first element of a vectored write regardless of whether 
          network buffers were being used or not.  In cases where the first 
          element of a vectored write was large this was incurring a large 
          processing overhead copying the data.

      3.  STREAMS network buffers fail if a transmission is greater than the
          maximum PDU size allowed by a STREAMS driver.  Normal STREAMS output 
          is unaffected.

          If a user process attempts to send greater than the maximum PDU size 
          allowed by a STREAMS driver, the data is segmented at the stream
          head.  Each segment is transmitted separately.  The segmentation
          mechanism breaks down if network buffers are being used.

      4.  According to POSIX, a process whose priority is lowered goes to the
          end of its new priority run queue.  Thus, if there are other
          processes already in that queue, the lowered lwp must give up the
          CPU immediately to them and wait its turn.  This was not happening.
          Instead, the running lwp would continue to run until it either
          voluntarily gave up the CPU, or some other event, such as I/O
          completion, caused the CPU to re-evaluate which lwp was supposed to
          be running.

      5.  SAR HM12390:  A check to free an unneeded data structure was missing
          in one execution path.  The data structure was only unneeded if the
          calling process had already opened a semaphore prior to this
          invocation to open one.

      6.  Improve performance for disk striping (VP).  Related to patch vp-001.

              *  on very large transfers, a substantial amount of time is spent
                 locking pages in memory.

      7.  The setrun(1) command would not accept an engine number > 3.

      8.  In PowerMAX OS 4.2, xfsrestore is unable to restore a tape created
          by fsdump as it had in previous releases.

          This causes the following error to be reported by xfsrestore:

                . is not on tape
                Root directory is not on tape
                abort? [yn]

      9.  In some situations, the thread library may create many more
          multiplexing (MUX) LWPs than the amount needed by the application.
          The creation of all these extra MUX LWPs tends to waste system
          resources and add unnecessary system overhead.

     10.  When a process attempts to fork(2), the fork(2) operation never
          completes due to the fact that the rendezvous operation does not ever
          complete.  (The rendezvous operation brings all the other LWP's
          into the kernel and holds them there in a known state while the
          fork(2) operation then proceeds to duplicate the process image.)

          The rendezvous operation fails to complete because one or more LWPs
          in the process are currently blocked in the kernel via mq_send(3)
          or mq_receive(3) with their rescheduling variable locked/held. 
          The RV lock prevents these LWPs from honoring the pending rendezvous
          request until the RV is unlocked.

     11.  SARs HM12188, HM12359:  The IDE device driver introduced in
          PowerMAX OS 4.2 utilized the ISA interrupt levels from the floppy
          (irq6) and line printer (irq7) drivers.  This resulted in a
          non-functional floppy driver and line printer driver on all Motorola
          based platforms - even those that don't support IDE.

     12.  Systems get into a state where preemption on a CPU no longer occurs. 
          This "hangs" the CPU and may lead to a hung system.  It occurs on 
          systems using FP-class (real-time) scheduling.

     13.  Panics on kernel data access exceptions when mmap'ing a process using
          memory-based file systems.  Problem seen using "usermap".

 Problem Resolution: 

      1.  Appropriate $depend entries are added to the xfs and xfsth files in
          /etc/conf/mdevice.d/.

      2.  The stream head has been changed to allocate an additional message
          block for drivers to write to during streams output.  This is done if
          there is a write offset set for a stream and the first element of a 
          vectored write (writev() ) or a write() is in a STREAMS network 
          buffer.  The message block is chained to the beginning of the message
          sent downstream to drivers.

      3.  The stream head has been changed to correctly update data structures
          updated during the transmission of each segment of data.

      4.  The cause was the failure of the priocntl system call to nudge the
          CPU after changing the lwp's priority (i.e., failed to force the CPU
          to re-evaluate which lwp it was supposed to run).  The lwp was
          actually put at the end of its new run queue as it should have been,
          but without the nudge the CPU did not notice the changed
          circumstances of the lwp.
        
          The solution was to expand the `if' statement that does nudging in
          priocntl(2) to nudge if the new priority run queue was not empty
          prior to the insertion.

      5.  Restored the missing check.

      6.  Improve performance for disk striping (VP).        

             *  With segdev driver (bound shared memory), eliminate page locking
                checks if entire segment is already locked in memory.

      7.  Rather than asking the system what engines were available, setrun(1)
          had this hard-wired to 0-3.  This command was appropriately changed
          to ask for a mask of available engines.

      8.  The code in xfsrestore that handles tapes created by fsdump was fixed.

      9.  When the kernel sees the last LWP in a process about to block
          itself, the kernel sends a SIGWAITING signal to the process's
          SIGWAITING signal handler.  This is done to give the thread library
          a chance to create another MUX LWP if the process contains
          additional MUX threads that are ready to run and that need a LWP to
          execute on.

          The thread library's SIGWAITING signal handler was modified so that
          instead of always creating a new MUX LWP when there are MUX threads
          that are ready to run, a check is now first made to see if there are
          idle MUX LWPs.  If so, then this signal handler just unblocks one of
          these idle MUX LWPs instead of creating a new MUX LWP.

     10.  The fix is to unlock the rescheduling variable in the thread library
          before calling block(2) in the kernel and to relock the rescheduling
          variable upon return from the block(2) call.

     11.  The ISA interrupts have been reassigned to support all 4 ISA
          devices: primary IDE, secondary IDE, floppy, and line printer.
          New ISA irq assignments: 6=lpt, 7=fp, 10=p-ide, 14=s-ide.

     12.  Fix preemption disable counter which was being incorrectly
          incremented/decremented in context switcher routine.

     13.  memfs mmap routine was incorrectly addressing beyond end of 
          pseudo-vnode.

 Object To Be Replaced: 

      /etc/conf/cf.d/intr.s
      /etc/conf/mdevice.d/xfs
      /etc/conf/mdevice.d/xfsth
      /etc/conf/pack.d/bsp2600/Driver.o
      /etc/conf/pack.d/bspall/Driver.o
      /etc/conf/pack.d/bspall/space.c
      /etc/conf/pack.d/bspmtx/Driver.o
      /etc/conf/pack.d/bspmtx/space.c
      /etc/conf/pack.d/io/Driver.o
      /etc/conf/pack.d/isa/Driver.o
      /etc/conf/pack.d/memfs/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/segdev/Driver.o
      /usr/bin/setrun
      /usr/include/sys/ipl_masks.h
      /usr/lib/fs/xfs/xfsrestore
      /usr/lib/libthread.a
      /usr/lib/libthread.so 

 Special Conditions for Installation: 

      The following objects are linked to some of the objects being
      replaced by this patch.  These objects will also be re-linked:

      /usr/lib/libposix1c.a
      /usr/lib/libposix1c.so
      /usr/sbin/xfsrestore
 
 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-005
 Date Issued:          06/08/98 14:03:57
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 640, PowerStack II (multi-processor only)
 Related Patches:      vp-001
 Related SARS:         HM12390, HM12188, HM12359
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  If the xfs module is to be configured, the system needs to know that 
          xfsth must also be configured.  This is important for cluster systems
          for which the default is to not configure xfs.

      2.  Mentat UDP performance poor with STREAMS network buffers.  Use of 
          other drivers which set a write offset on a stream may also be 
          affected.

          A STREAMS driver can control how the stream head allocates space for
          messages sent downstream.  A write offset may be set which causes the
          stream head to allocate additional memory for a driver to use.  This 
          is generally done to avoid incurring memory allocation overheads. 

          The stream head was copying data from user space into kernel space 
          whenever it had a write offset set on a stream.  This was being done 
          on the first element of a vectored write regardless of whether 
          network buffers were being used or not.  In cases where the first 
          element of a vectored write was large this was incurring a large 
          processing overhead copying the data.

      3.  STREAMS network buffers fail if a transmission is greater than the
          maximum PDU size allowed by a STREAMS driver.  Normal STREAMS output 
          is unaffected.

          If a user process attempts to send greater than the maximum PDU size 
          allowed by a STREAMS driver, the data is segmented at the stream
          head.  Each segment is transmitted separately.  The segmentation
          mechanism breaks down if network buffers are being used.

      4.  According to POSIX, a process whose priority is lowered goes to the
          end of its new priority run queue.  Thus, if there are other
          processes already in that queue, the lowered lwp must give up the
          CPU immediately to them and wait its turn.  This was not happening.
          Instead, the running lwp would continue to run until it either
          voluntarily gave up the CPU, or some other event, such as I/O
          completion, caused the CPU to re-evaluate which lwp was supposed to
          be running.

      5.  SAR HM12390:  A check to free an unneeded data structure was missing
          in one execution path.  The data structure was only unneeded if the
          calling process had already opened a semaphore prior to this
          invocation to open one.

      6.  Improve performance for disk striping (VP).  Related to patch vp-001.

              *  on very large transfers, a substantial amount of time is spent
                 locking pages in memory.

      7.  The setrun(1) command would not accept an engine number > 3.

      8.  In PowerMAX OS 4.2, xfsrestore is unable to restore a tape created
          by fsdump as it had in previous releases.

          This causes the following error to be reported by xfsrestore:

                . is not on tape
                Root directory is not on tape
                abort? [yn]

      9.  In some situations, the thread library may create many more
          multiplexing (MUX) LWPs than the amount needed by the application.
          The creation of all these extra MUX LWPs tends to waste system
          resources and add unnecessary system overhead.

     10.  When a process attempts to fork(2), the fork(2) operation never
          completes due to the fact that the rendezvous operation does not ever
          complete.  (The rendezvous operation brings all the other LWP's
          into the kernel and holds them there in a known state while the
          fork(2) operation then proceeds to duplicate the process image.)

          The rendezvous operation fails to complete because one or more LWPs
          in the process are currently blocked in the kernel via mq_send(3)
          or mq_receive(3) with their rescheduling variable locked/held. 
          The RV lock prevents these LWPs from honoring the pending rendezvous
          request until the RV is unlocked.

     11.  SARs HM12188, HM12359:  The IDE device driver introduced in
          PowerMAX OS 4.2 utilized the ISA interrupt levels from the floppy
          (irq6) and line printer (irq7) drivers.  This resulted in a
          non-functional floppy driver and line printer driver on all Motorola
          based platforms - even those that don't support IDE.

     12.  The "ALLINTSONCPU0" tunable does not work correctly on Power Hawk 640
          systems.  It was not possible to -override- this tunable and
          indicate a cpu for a specific interrupt.

     13.  Systems get into a state where preemption on a CPU no longer occurs.
          This "hangs" the CPU and may lead to a hung system.  It occurs on
          systems using FP-class (real-time) scheduling.

     14.  Panics on kernel data access exceptions when mmap'ing a process using
          memory-based file systems.  Problem seen using "usermap".

 Problem Resolution: 

      1.  Appropriate $depend entries are added to the xfs and xfsth files in
          /etc/conf/mdevice.d/.

      2.  The stream head has been changed to allocate an additional message
          block for drivers to write to during streams output.  This is done if
          there is a write offset set for a stream and the first element of a 
          vectored write (writev() ) or a write() is in a STREAMS network 
          buffer.  The message block is chained to the beginning of the message
          sent downstream to drivers.

      3.  The stream head has been changed to correctly update data structures
          updated during the transmission of each segment of data.

      4.  The cause was the failure of the priocntl system call to nudge the
          CPU after changing the lwp's priority (i.e., failed to force the CPU
          to re-evaluate which lwp it was supposed to run).  The lwp was
          actually put at the end of its new run queue as it should have been,
          but without the nudge the CPU did not notice the changed
          circumstances of the lwp.
        
          The solution was to expand the `if' statement that does nudging in
          priocntl(2) to nudge if the new priority run queue was not empty
          prior to the insertion.

      5.  Restored the missing check.

      6.  Improve performance for disk striping (VP).

             *  With segdev driver (bound shared memory), eliminate page locking
                checks if entire segment is already locked in memory.

      7.  Rather than asking the system what engines were available, setrun(1)
          had this hard-wired to 0-3.  This command was appropriately changed
          to ask for a mask of available engines.

      8.  The code in xfsrestore that handles tapes created by fsdump was fixed.

      9.  When the kernel sees the last LWP in a process about to block
          itself, the kernel sends a SIGWAITING signal to the process's
          SIGWAITING signal handler.  This is done to give the thread library
          a chance to create another MUX LWP if the process contains
          additional MUX threads that are ready to run and that need a LWP to
          execute on.

          The thread library's SIGWAITING signal handler was modified so that
          instead of always creating a new MUX LWP when there are MUX threads
          that are ready to run, a check is now first made to see if there are
          idle MUX LWPs.  If so, then this signal handler just unblocks one of
          these idle MUX LWPs instead of creating a new MUX LWP.

     10.  The fix is to unlock the rescheduling variable in the thread library
          before calling block(2) in the kernel and to relock the rescheduling
          variable upon return from the block(2) call.

     11.  The ISA interrupts have been reassigned to support all 4 ISA
          devices: primary IDE, secondary IDE, floppy, and line printer.
          New ISA irq assignments: 6=lpt, 7=fp, 10=p-ide, 14=s-ide.

     12.  Fix so that override of "ALLINTSONCPU0" can be done for a specific
          interrupt.

     13.  Fix preemption disable counter which was being incorrectly
          incremented/decremented in context switcher routine.

     14.  memfs mmap routine was incorrectly addressing beyond end of
          pseudo-vnode.

 Object To Be Replaced: 

      /etc/conf/cf.d/intr.s
      /etc/conf/mdevice.d/xfs
      /etc/conf/mdevice.d/xfsth
      /etc/conf/pack.d/bsp4600/Driver.o
      /etc/conf/pack.d/bsp4600/space.c
      /etc/conf/pack.d/bspmpall/Driver.o
      /etc/conf/pack.d/bspmpall/space.c
      /etc/conf/pack.d/bspmtx/Driver.o
      /etc/conf/pack.d/bspmtx/space.c
      /etc/conf/pack.d/io/Driver.o
      /etc/conf/pack.d/isa/Driver.o
      /etc/conf/pack.d/memfs/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/segdev/Driver.o
      /usr/bin/setrun
      /usr/include/sys/ipl_masks.h
      /usr/lib/fs/xfs/xfsrestore
      /usr/lib/libthread.a
      /usr/lib/libthread.so 

 Special Conditions for Installation: 

      I.  The following objects are linked to some of the objects being
          replaced by this patch.  These objects will also be re-linked:

          /usr/lib/libposix1c.a
          /usr/lib/libposix1c.so
          /usr/sbin/xfsrestore
 
     II.   Following successful installation of base-005, the system must be
           shutdown and reset before booting the new kernel.  Failure to do
           so may result in unexpected or unreliable behavior.

           Suggested procedure for installing base-005:

             Install base-005 using pkgadd(1M)
             # /etc/conf/bin/idbuild -B
             # sync
             # init 0
             Reset system
             Follow the normal boot procedure detailed in the PowerMAX OS
             Product Release Notes to load the console and boot the new kernel.

 Possible Side Effects: 

      none.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-006
 Date Issued:          06/08/98 14:09:15
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        nh
 Platforms:            Night Hawk 6200/6800, TurboHawk, PowerMAXION
 Related Patches:      ncr-001, dec-006, vp-001
 Related SARS:         HM12390, HM12351
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  If the xfs module is to be configured, the system needs to know that 
          xfsth must also be configured.

      2.  Mentat UDP performance poor with STREAMS network buffers.  Use of 
          other drivers which set a write offset on a stream may also be 
          affected.

          A STREAMS driver can control how the stream head allocates space for
          messages sent downstream.  A write offset may be set which causes the
          stream head to allocate additional memory for a driver to use.  This 
          is generally done to avoid incurring memory allocation overheads. 

          The stream head was copying data from user space into kernel space 
          whenever it had a write offset set on a stream.  This was being done 
          on the first element of a vectored write regardless of whether 
          network buffers were being used or not.  In cases where the first 
          element of a vectored write was large this was incurring a large 
          processing overhead copying the data.

      3.  STREAMS network buffers fail if a transmission is greater than the
          maximum PDU size allowed by a STREAMS driver.  Normal STREAMS output 
          is unaffected.

          If a user process attempts to send greater than the maximum PDU size 
          allowed by a STREAMS driver, the data is segmented at the stream
          head.  Each segment is transmitted separately.  The segmentation
          mechanism breaks down if network buffers are being used.

      4.  According to POSIX, a process whose priority is lowered goes to the
          end of its new priority run queue.  Thus, if there are other
          processes already in that queue, the lowered lwp must give up the
          CPU immediately to them and wait its turn.  This was not happening.
          Instead, the running lwp would continue to run until it either
          voluntarily gave up the CPU, or some other event, such as I/O
          completion, caused the CPU to re-evaluate which lwp was supposed to
          be running.

      5.  SAR HM12390:  A check to free an unneeded data structure was missing
          in one execution path.  The data structure was only unneeded if the
          calling process had already opened a semaphore prior to this
          invocation to open one.

      6.  Improve performance for disk striping (VP).  Related to patch vp-001.

              *  on very large transfers, a substantial amount of time is spent
                 locking pages in memory.

      7.  The setrun(1) command would not accept an engine number > 3.

      8.  In PowerMAX OS 4.2, xfsrestore is unable to restore a tape created
          by fsdump as it had in previous releases.

          This causes the following error to be reported by xfsrestore:

                . is not on tape
                Root directory is not on tape
                abort? [yn]

      9.  In some situations, the thread library may create many more
          multiplexing (MUX) LWPs than the amount needed by the application.
          The creation of all these extra MUX LWPs tends to waste system
          resources and add unnecessary system overhead.

     10.  When a process attempts to fork(2), the fork(2) operation never
          completes due to the fact that the rendezvous operation does not ever
          complete.  (The rendezvous operation brings all the other LWP's
          into the kernel and holds them there in a known state while the
          fork(2) operation then proceeds to duplicate the process image.)

          The rendezvous operation fails to complete because one or more LWPs
          in the process are currently blocked in the kernel via mq_send(3)
          or mq_receive(3) with their rescheduling variable locked/held. 
          The RV lock prevents these LWPs from honoring the pending rendezvous
          request until the RV is unlocked.

     11.  On PowerMAXION-8 systems, attempts to address VME devices in
          secondary I/O caused a bus error.

     12.  On PowerMAXION-8 systems, interrupts for VME devices in secondary I/O
          were not routed to the frontplane.  These interrupts could not be
          serviced by any processors and rendered VME devices on secondary
          I/O inoperable.

     13.  TurboHawk system hardware was modified to increase the PCI bus
          throughput.  The software did not support these changes.

     14.  SAR HM12351:  While running the PowerAT test, the console would
          occasionally hang.  Output would resume if the spacebar or other key
          is touched.

     15.  Systems get into a state where preemption on a CPU no longer occurs.
          This "hangs" the CPU and may lead to a hung system.  It occurs on
          systems using FP-class (real-time) scheduling.

     16.  Panics on kernel data access exceptions when mmap'ing a process using
          memory-based file systems.  Problem seen using "usermap".

 Problem Resolution: 

      1.  Appropriate $depend entries are added to the xfs and xfsth files in
          /etc/conf/mdevice.d/.

      2.  The stream head has been changed to allocate an additional message
          block for drivers to write to during streams output.  This is done if
          there is a write offset set for a stream and the first element of a 
          vectored write (writev() ) or a write() is in a STREAMS network 
          buffer.  The message block is chained to the beginning of the message
          sent downstream to drivers.

      3.  The stream head has been changed to correctly update data structures
          updated during the transmission of each segment of data.

      4.  The cause was the failure of the priocntl system call to nudge the
          CPU after changing the lwp's priority (i.e., failed to force the CPU
          to re-evaluate which lwp it was supposed to run).  The lwp was
          actually put at the end of its new run queue as it should have been,
          but without the nudge the CPU did not notice the changed
          circumstances of the lwp.
        
          The solution was to expand the `if' statement that does nudging in
          priocntl(2) to nudge if the new priority run queue was not empty
          prior to the insertion.

      5.  Restored the missing check.

      6.  Improve performance for disk striping (VP).

             *  With segdev driver (bound shared memory), eliminate page locking
                checks if entire segment is already locked in memory.

      7.  Rather than asking the system what engines were available, setrun(1)
          had this hard-wired to 0-3.  This command was appropriately changed
          to ask for a mask of available engines.

      8.  The code in xfsrestore that handles tapes created by fsdump was fixed.

      9.  When the kernel sees the last LWP in a process about to block
          itself, the kernel sends a SIGWAITING signal to the process's
          SIGWAITING signal handler.  This is done to give the thread library
          a chance to create another MUX LWP if the process contains
          additional MUX threads that are ready to run and that need a LWP to
          execute on.

          The thread library's SIGWAITING signal handler was modified so that
          instead of always creating a new MUX LWP when there are MUX threads
          that are ready to run, a check is now first made to see if there are
          idle MUX LWPs.  If so, then this signal handler just unblocks one of
          these idle MUX LWPs instead of creating a new MUX LWP.

     10.  The fix is to unlock the rescheduling variable in the thread library
          before calling block(2) in the kernel and to relock the rescheduling
          variable upon return from the block(2) call.

     11.  Corrected the initialization of the memory base and memory limit
          registers on the DEC D21152 bridge on PowerMAXION-8 systems.

     12.  During system initialization of PowerMAXION-8 systems, all interrupts
          on the Global Memory cards are routed to the frontplane.

     13.  Modified the initialization of the PLX Bridge, the Tundra VME
          interface, embedded DEC Ethernet controller and embedded NCR SCSI
          controller.  This change allowed the Operating System to take
          advantage of hardware changes on TurboHawk systems for increased PCI
          bus throughput.

     14.  A change to the way the console driver handles interrupts introduced
          this new problem into PowerMAX OS 4.2.  Previously, the driver used
          to scan both channels of a UART on interrupt from either channel.
          Changes made in 4.2 accidently created a (rare) condition in which
          an interrupt occasionally would not be responded to.  This lack of
          response was the cause of the hang.

     15.  Fix preemption disable counter which was being incorrectly
          incremented/decremented in context switcher routine.

     16.  memfs mmap routine was incorrectly addressing beyond end of
          pseudo-vnode.

 Object To Be Replaced: 

      /etc/conf/mdevice.d/xfs
      /etc/conf/mdevice.d/xfsth
      /etc/conf/pack.d/bsp6408/Driver.o
      /etc/conf/pack.d/cons/Driver.o
      /etc/conf/pack.d/io/Driver.o
      /etc/conf/pack.d/memfs/Driver.o
      /etc/conf/pack.d/pci/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/segdev/Driver.o
      /etc/conf/pack.d/vme/Driver.o
      /usr/bin/setrun
      /usr/lib/fs/xfs/xfsrestore
      /usr/lib/libthread.a
      /usr/lib/libthread.so 

 Special Conditions for Installation: 

      The following objects are linked to some of the objects being
      replaced by this patch.  These objects will also be re-linked:

      /usr/lib/libposix1c.a
      /usr/lib/libposix1c.so
      /usr/sbin/xfsrestore

 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-007
 Date Issued:          08/12/98 09:40:38
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 610/620, PowerStack, PowerStack II
 Related Patches:      nfs-002, crypt-001, inet-005, crosslibs-002, mvc (4.2.1)
 Related SARS:         HM12246, HM12322, HM12396, HM12413, HM12429, HM12430
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  XFS file system loses file space that is reclaimed after remounting
	  The problem is associated with two kinds of temporary files: 

		 (a)  files that have been created then unlinked before being 
		      written to;  
		 (b)  files that have been mmap'ed and subsequently removed.

	  Creating large temporary files of type (a) or (b) with indirect 
	  blocks results in progressive loss of file space until the file 
	  system becomes full.  Rebooting or unmounting and remounting the 
	  file system will reclaim all the file space lost in this way.

      2.  Multi-threaded applications that use user-level interrupts and 
          spl_request(3X) or spl_manage(3X) may hang the system.

	  The spl_request(3X) and spl_manage(3X) library routines lock an
	  internal lwp mutex lock while reading and writing the ipl value.
	  If this internal lock is currently locked from a thread calling
	  spl_request(3X)/spl_manage(3X) at program level when a user-level
	  interrupt routine becomes active, then a spl_request(3X) or
	  spl_manage(3X) call that is made from the user-level interrupt
	  routine will be unable to get the internal lwp mutex lock, and the
	  routine will spin forever at interrupt level, attempting to acquire
	  the lock.

      3.  There is currently no way for a user application to get the current
	  ipl level.

	  It is not possible to get the current ipl level without also
	  setting the ipl level with the spl_request(3X) or spl_manage(3X)
	  routines.

      4.  HM12322:  PPC Time Base Register constants for Power Hawk 620/640 and
	  PowerStack II in the _hair routines of libud (also known as
	  TIE_FREQ_RATE) are incorrect.  Because the values are incorrect for
	  the bus clock rating for Power Hawk 620/640 and PowerStack II 
	  architectures, time stamps from programs that link libud could be
	  erroneous.

      5.  HM12246, HM12396:  Modification of ldterm, serial, rtserial and
	  idmknod are required for new mvc driver.

      6.  HM12413:  Several problems with lockd (nfs lock manager):

		(a)  Locks held by a client that crashes are not properly
                     recovered.  This may result in incorrect file locks that
                     are never released.

		(b)  In some cases, when a process on a client system blocks
                     waiting for a lock, it would not get woken up after the
                     lock was released.

		(c)  There is a long time period between the reboot of a system
		     and its detection on the server.

      7.  HM12429:  Some of the socket library routines may permanently set the
	  user's signal disposition of SIGPOLL to SIG_IGN (ignore the signal).

	  Some of the socket library routines may internally change the user's
	  signal disposition of SIGPOLL to SIG_IGN (ignore the signal) and
	  never change it back to its original disposition.

	  This problem will occur when these routines are called while the 
	  SIGPOLL signal is currently being held/masked in the calling LWP's
	  signal mask.

      8.  HM12430:  On XFS file systems, unlink(2) of a directory should not be
	  allowed if directory is not empty.

          A problem in the check code of the directory unlink function did not
	  prevent a root user unlinking a non-empty directory.  This results
	  in the directory content being removed from the file system but the
	  filespace allocated to the directory content not being released.

      9.  XFS file system: Stale File Handle errors on LCS targets with xfs
	  virtual root.

          A timing window in the xfs_vget function used by NFS to attach to
	  file system nodes resulted in stale file handle errors when the NFS
	  was used over a very fast network link.

     10.  XFS file system: xfs_badop panic with xfs host file system and
	  Hummingbird NFS client and attempt to remove a file on the client
	  without required permissions.

          A NFS protocol error in the Hummingbird client resulted in the
	  activation of a diagnostic panic when the client attempted an
	  invalid operation (VOP_LOOKUP on a file).

     11.  VMEbus DMA Controller (DMAC) device enhancement.

	  The DMA Controller (DMAC) device driver enhancement provides a user
	  interface to the on board Tundra Universe DMAC engine allowing high
	  speed block-mode transfers between user memory and a VMEbus slave
	  device.

     12.  The tunable IGNORE_STRAYS cannot be set on moto systems.
 
	  The system tunable IGNORE_STRAYS can be set so that stray interrupts
	  are ignored.  However, on Motorola platforms this tunable has no
	  effect.

     13.  Under certain conditions, a program that modifies its scheduling
	  class may end up panicing the system with the message:
 
		"XX scheduling class deferred a parameter change"

     14.  When either IGNORE_BUS_TIMEOUTS or IGNORE_SYSFAIL is enabled, then
	  the iobus_err(2) will return ENOSYS since the iobus_err(2) support
	  is not compatible with ignoring bus timeouts.

     15.  VME interrupts may be directed to the wrong CPU on a Power Hawk 640 
	  system.

     16.  Motorola systems with low-level PPCBug firmware verions 3.5 and above
	  would appear to not boot the Power Hawk console.

 Problem Resolution: 

      1.  Fix xfs kernel code so that the indirect blocks are correctly
	  marked as free in the in-memory free space maps when a temporary
	  file is removed.

      2.  The lwp mutex lock is not required by the spl_request(3X) and 
	  spl_manage(3X) routines.  Therefore, this lock will no longer be 
	  used by these two routines.

      3.  Add a new spl_value(3X) routine to libud that simply returns the
	  current ipl (architecture dependent) ipl level:

		pl_t spl_value(caddr_t spl_map_address);

	  Where 'spl_map_address' is the address that was returned from a
	  previous spl_map(3X) call.

      4.  Modified the TIE_FREQ_RATE value returned by _hair_get_arch_info()
	  to be consistent with the bus clock rating for the Power Hawk
	  620/640 and PowerStack II architectures.
 
      5.  A new release (4.2.1) of the mvc package is replacing the 4.2
	  version, to provide new features (including rtserial device support)
	  and improved performance and reliability. Small problems in the
	  aforementioned I/O modules were found and corrected during
	  development and test of the new driver.

	  Additionally, idmknod(1M) did not permit a single line in a node
	  file to define both tty ports and printer ports, as the structure
	  of the new driver requires.  All of the idtools have been updated
	  as a result of these changes.

      6.  lockd problems resolved as follows:

		(a)  Upon detecting that a client has crashed (and rebooted),
		     the server will clear ALL locks held by that client.

		(b)  Add a small delay in the kernel code that re-requests a
		     lock via the local lockd.  This allows other messages to be
		     received.

		(c)  Shorten the initial start-up delay in statd from 15 to 5
		     seconds.

      7.  Change the appropriate libsocket routines so that they do not change
	  the process's signal disposition for the SIGPOLL signal.

	  See related patches inet-005 and crypt-001.

      8.  Add extra check to unlink directory code path.

      9.  Change xfs_vget node lookup to avoid the window.

     10.  Conditional compile the diagnostic panic, release code now just
          returns error.

     11.  Added support for new DMAC driver.

     12.  Corrected the interrupt logic so that IGNORE_STRAYS works as
	  indicated.

     13.  Conditions for this to occur are for a parent process to change its
	  class and then change it back and THEN spawn a new process or lwp. 
	  The new lwp/process would attempt to process the new scheduling class
	  change but there wouldn't be one present.  Fixed to account for this
	  condition (i.e. NULL deferred scheduling class changes).

     14.  Change the way that the kernel handles bus timeouts so that the
	  iobus_err(2) processing still functions properly even when
	  IGNORE_BUS_TIMEOUTS and IGNORE_SYSFAIL are enabled.

     15.  Fix the interrupt logic to account for the CPU that a VME interrupt
	  is directed to when it scans the interrupt status word on the Tundra
	  Universe chip.

     16.  The console was actually booting, but very slowly.  PPCBug 3.5 and
	  above enter user code with Instruction Cache disabled.  Correction
	  re-enables the Instruction Cache. 

 Object To Be Replaced: 

      /etc/conf/bin/idcheck
      /etc/conf/bin/idconfig
      /etc/conf/bin/idinstall
      /etc/conf/bin/idmknod
      /etc/conf/bin/idmodload
      /etc/conf/bin/idreadauto
      /etc/conf/cf.d/intr.s
      /etc/conf/mdevice.d/dmac
      /etc/conf/mtune.d/dmac
      /etc/conf/node.d/dmac
      /etc/conf/pack.d/bsp1600/Driver.o
      /etc/conf/pack.d/bsp2600/Driver.o
      /etc/conf/pack.d/bspall/Driver.o
      /etc/conf/pack.d/bspmtx/Driver.o
      /etc/conf/pack.d/bsppstk/Driver.o
      /etc/conf/pack.d/dmac/Driver.o
      /etc/conf/pack.d/dmac/space.c
      /etc/conf/pack.d/dmac/stubs.c
      /etc/conf/pack.d/fs/Driver.o
      /etc/conf/pack.d/iobus_err/Driver.o
      /etc/conf/pack.d/ldterm/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/rtserial/Driver.o
      /etc/conf/pack.d/sbc/stubs.c
      /etc/conf/pack.d/serial/Driver.o
      /etc/conf/pack.d/svc/Driver.o
      /etc/conf/pack.d/xfs/Driver.o
      /etc/conf/sdevice.d/dmac
      /stand/cp1
      /usr/include/sys/dmac.h
      /usr/include/sys/fcntl.h
      /usr/include/sys/ipl.h
      /usr/lib/libnsl_i.a
      /usr/lib/libsocket.so
      /usr/lib/libud.a
      /usr/lib/libud.so

 Special Conditions for Installation: 

      NOTICE #1:  The changes to libud and <sys/ipl.h> for Problem #3 should
		  be installed on systems where multi-threaded applications
		  call spl_request(3X) or spl_manage(3X) from program level
		  threads and also from a user-level interrupt routine.
 
      NOTICE #2:  Systems which have installed the beta test (preliminary)
		  "dmac" package, should remove the package prior to
		  installation of this update.  To remove the "dmac" package,
		  execute the following command (as root):

			# /usr/sbin/pkgrm dmac

      NOTICE #3:   The dmac driver is not compatible with the latest release
		   of the cluster package software, therefore, it is installed 
		   in the disabled state.  If your system is configured with
		   the cluster pkg software, you must install patch cluster-004,
		   also on this tape, in order to use the dmac driver.  If your
		   system is not configured with the cluster pkg software, then
		   you may enable the driver by editing the file 'dmac' under 
		   the kernel configuration directory /etc/conf/sdevice.d and 
		   substitute the 'N' for 'Y' before building a new unix kernel
		   using the idbuild(1M) command.

      NOTICE #4:  The following objects are linked to some of the objects being
		  replaced by this patch.  These objects will also be re-linked:

			/usr/lib/libnsl.a
			/usr/lib/libxti.a
			/usr/lib/libsocket.a

      NOTICE #5:  This patch modifies /etc/conf/cf.d/intr.s.  If this file has
		  been modified locally, then those local changes will need to
		  be re-applied after the patch is installed.

      NOTICE #6:  During installation of base-007, an updated version of
		  /stand/cp1 will be installed and the new console overlay will
		  be written to partition 6 on the system disk.  Following
		  successful installation, the system must be taken down and
		  reset to load the new console before rebooting.  Failure to
		  do so may result in unexpected or unreliable behavior.

 Possible Side Effects: 

      If the base-007 package is removed (pkgrm(1M)), the original console
      will be re-written to partition 6 on the system disk.  To ensure there
      are no adverse side effects, the kernel should be rebuilt (idbuild(1M))
      and the system taken down and reset to load the original console before
      rebooting the system.

      Suggested procedure for removing base-007:

        # pkgrm base-007
        # /etc/conf/bin/idbuild -B
        # sync
        # init 0
        # Reset system
        Follow the normal boot procedure detailed in the PowerMAX OS Product
        Release Notes to load the new console and boot the new kernel.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-008
 Date Issued:          08/12/98 10:02:08
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 640, PowerStack II (multi-processor only)
 Related Patches:      nfs-002, crypt-001, inet-005, crosslibs-002, mvc (4.2.1)
 Related SARS:         HM12246, HM12322, HM12396, HM12413, HM12429, HM12430
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  XFS file system loses file space that is reclaimed after remounting
	  The problem is associated with two kinds of temporary files: 

		 (a)  files that have been created then unlinked before being 
		      written to;  
		 (b)  files that have been mmap'ed and subsequently removed.

	  Creating large temporary files of type (a) or (b) with indirect 
	  blocks results in progressive loss of file space until the file 
	  system becomes full.  Rebooting or unmounting and remounting the 
	  file system will reclaim all the file space lost in this way.

      2.  Multi-threaded applications that use user-level interrupts and 
          spl_request(3X) or spl_manage(3X) may hang the system.

	  The spl_request(3X) and spl_manage(3X) library routines lock an
	  internal lwp mutex lock while reading and writing the ipl value.
	  If this internal lock is currently locked from a thread calling
	  spl_request(3X)/spl_manage(3X) at program level when a user-level
	  interrupt routine becomes active, then a spl_request(3X) or
	  spl_manage(3X) call that is made from the user-level interrupt
	  routine will be unable to get the internal lwp mutex lock, and the
	  routine will spin forever at interrupt level, attempting to acquire
	  the lock.

      3.  There is currently no way for a user application to get the current
	  ipl level.

	  It is not possible to get the current ipl level without also
	  setting the ipl level with the spl_request(3X) or spl_manage(3X)
	  routines.

      4.  HM12322:  PPC Time Base Register constants for Power Hawk 620/640 and
	  PowerStack II in the _hair routines of libud (also known as
	  TIE_FREQ_RATE) are incorrect.  Because the values are incorrect for
	  the bus clock rating for Power Hawk 620/640 and PowerStack II 
	  architectures, time stamps from programs that link libud could be
	  erroneous.

      5.  HM12246, HM12396:  Modification of ldterm, serial, rtserial and
	  idmknod are required for new mvc driver.

      6.  HM12413:  Several problems with lockd (nfs lock manager):

		(a)  Locks held by a client that crashes are not properly
                     recovered.  This may result in incorrect file locks that
                     are never released.

		(b)  In some cases, when a process on a client system blocks
                     waiting for a lock, it would not get woken up after the
                     lock was released.

		(c)  There is a long time period between the reboot of a system
		     and its detection on the server.

      7.  HM12429:  Some of the socket library routines may permanently set the
	  user's signal disposition of SIGPOLL to SIG_IGN (ignore the signal).

	  Some of the socket library routines may internally change the user's
	  signal disposition of SIGPOLL to SIG_IGN (ignore the signal) and
	  never change it back to its original disposition.

	  This problem will occur when these routines are called while the 
	  SIGPOLL signal is currently being held/masked in the calling LWP's
	  signal mask.

      8.  HM12430:  On XFS file systems, unlink(2) of a directory should not be
	  allowed if directory is not empty.

          A problem in the check code of the directory unlink function did not
	  prevent a root user unlinking a non-empty directory.  This results
	  in the directory content being removed from the file system but the
	  filespace allocated to the directory content not being released.

      9.  XFS file system: Stale File Handle errors on LCS targets with xfs
	  virtual root.

          A timing window in the xfs_vget function used by NFS to attach to
	  file system nodes resulted in stale file handle errors when the NFS
	  was used over a very fast network link.

     10.  XFS file system: xfs_badop panic with xfs host file system and
	  Hummingbird NFS client and attempt to remove a file on the client
	  without required permissions.

          A NFS protocol error in the Hummingbird client resulted in the
	  activation of a diagnostic panic when the client attempted an
	  invalid operation (VOP_LOOKUP on a file).

     11.  VMEbus DMA Controller (DMAC) device enhancement.

	  The DMA Controller (DMAC) device driver enhancement provides a user
	  interface to the on board Tundra Universe DMAC engine allowing high
	  speed block-mode transfers between user memory and a VMEbus slave
	  device.

     12.  The tunable IGNORE_STRAYS cannot be set on moto systems.
 
	  The system tunable IGNORE_STRAYS can be set so that stray interrupts
	  are ignored.  However, on Motorola platforms this tunable has no
	  effect.

     13.  Under certain conditions, a program that modifies its scheduling
	  class may end up panicing the system with the message:

		"XX scheduling class deferred a parameter change"

     14.  When either IGNORE_BUS_TIMEOUTS or IGNORE_SYSFAIL is enabled, then
	  the iobus_err(2) will return ENOSYS since the iobus_err(2) support
	  is not compatible with ignoring bus timeouts.

     15.  VME interrupts may be directed to the wrong CPU on a Power Hawk 640
	  system.

     16.  Motorola systems with low-level PPCBug firmware verions 3.5 and above
	  would appear to not boot the Power Hawk console.

 Problem Resolution: 

      1.  Fix xfs kernel code so that the indirect blocks are correctly
	  marked as free in the in-memory free space maps when a temporary
	  file is removed.

      2.  The lwp mutex lock is not required by the spl_request(3X) and 
	  spl_manage(3X) routines.  Therefore, this lock will no longer be 
	  used by these two routines.

      3.  Add a new spl_value(3X) routine to libud that simply returns the
	  current ipl (architecture dependent) ipl level:

		pl_t spl_value(caddr_t spl_map_address);

	  Where 'spl_map_address' is the address that was returned from a
	  previous spl_map(3X) call.

      4.  Modified the TIE_FREQ_RATE value returned by _hair_get_arch_info()
	  to be consistent with the bus clock rating for the Power Hawk
	  620/640 and PowerStack II architectures.
 
      5.  A new release (4.2.1) of the mvc package is replacing the 4.2
	  version, to provide new features (including rtserial device support)
	  and improved performance and reliability. Small problems in the
	  aforementioned I/O modules were found and corrected during
	  development and test of the new driver.

	  Additionally, idmknod(1M) did not permit a single line in a node
	  file to define both tty ports and printer ports, as the structure
	  of the new driver requires.  All of the idtools have been updated
	  as a result of these changes.

      6.  lockd problems resolved as follows:

		(a)  Upon detecting that a client has crashed (and rebooted),
		     the server will clear ALL locks held by that client.

		(b)  Add a small delay in the kernel code that re-requests a
		     lock via the local lockd.  This allows other messages to be
		     received.

		(c)  Shorten the initial start-up delay in statd from 15 to 5
		     seconds.

      7.  Change the appropriate libsocket routines so that they do not change
	  the process's signal disposition for the SIGPOLL signal.

	  See related patches inet-005 and crypt-001.

      8.  Add extra check to unlink directory code path.

      9.  Change xfs_vget node lookup to avoid the window.

     10.  Conditional compile the diagnostic panic, release code now just
          returns error.

     11.  Added support for new DMAC driver.

     12.  Corrected the interrupt logic so that IGNORE_STRAYS works as
	  indicated.

     13.  Conditions for this to occur are for a parent process to change its
	  class and then change it back and THEN spawn a new process or lwp.
	  The new lwp/process would attempt to process the new scheduling class
	  change but there wouldn't be one present.  Fixed to account for this
	  condition (i.e. NULL deferred scheduling class changes).

     14.  Change the way that the kernel handles bus timeouts so that the
	  iobus_err(2) processing still functions properly even when	
	  IGNORE_BUS_TIMEOUTS and IGNORE_SYSFAIL are enabled.

     15.  Fix the interrupt logic to account for the CPU that a VME interrupt
	  is directed to when it scans the interrupt status word on the Tundra
	  Universe chip.

     16.  The console was actually booting, but very slowly.  PPCBug 3.5 and
	  above enter user code with Instruction Cache disabled.  Correction
	  re-enables the Instruction Cache.

 Object To Be Replaced: 

      /etc/conf/bin/idcheck
      /etc/conf/bin/idconfig
      /etc/conf/bin/idinstall
      /etc/conf/bin/idmknod
      /etc/conf/bin/idmodload
      /etc/conf/bin/idreadauto
      /etc/conf/cf.d/intr.s
      /etc/conf/mdevice.d/dmac
      /etc/conf/mtune.d/dmac
      /etc/conf/node.d/dmac
      /etc/conf/pack.d/bsp4600/Driver.o
      /etc/conf/pack.d/bspmpall/Driver.o
      /etc/conf/pack.d/bspmtx/Driver.o
      /etc/conf/pack.d/dmac/Driver.o
      /etc/conf/pack.d/dmac/space.c
      /etc/conf/pack.d/dmac/stubs.c
      /etc/conf/pack.d/fs/Driver.o
      /etc/conf/pack.d/iobus_err/Driver.o
      /etc/conf/pack.d/ldterm/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/rtserial/Driver.o
      /etc/conf/pack.d/sbc/stubs.c
      /etc/conf/pack.d/serial/Driver.o
      /etc/conf/pack.d/svc/Driver.o
      /etc/conf/pack.d/xfs/Driver.o
      /etc/conf/sdevice.d/dmac
      /stand/cp1
      /usr/include/sys/dmac.h
      /usr/include/sys/fcntl.h
      /usr/include/sys/ipl.h
      /usr/lib/libnsl_i.a
      /usr/lib/libsocket.so
      /usr/lib/libud.a
      /usr/lib/libud.so

 Special Conditions for Installation: 

      NOTICE #1:  The changes to libud and <sys/ipl.h> for Problem #3 should
		  be installed on systems where multi-threaded applications
		  call spl_request(3X) or spl_manage(3X) from program level
		  threads and also from a user-level interrupt routine.
 
      NOTICE #2:  Systems which have installed the beta test (preliminary)
		  "dmac" package, should remove the package prior to
		  installation of this update.  To remove the "dmac" package,
		  execute the following command (as root):

			# /usr/sbin/pkgrm dmac

      NOTICE #3:   The dmac driver is not compatible with the latest release
		   of the cluster package software, therefore, it is installed 
		   in the disabled state.  If your system is configured with
		   the cluster pkg software, you must install patch cluster-004,
		   also on this tape, in order to use the dmac driver.  If your
		   system is not configured with the cluster pkg software, then
		   you may enable the driver by editing the file 'dmac' under 
		   the kernel configuration directory /etc/conf/sdevice.d and 
		   substitute the 'N' for 'Y' before building a new unix kernel
		   using the idbuild(1M) command.


      NOTICE #4:  The following objects are linked to some of the objects being
		  replaced by this patch.  These objects will also be re-linked:

			/usr/lib/libnsl.a
			/usr/lib/libxti.a
			/usr/lib/libsocket.a

      NOTICE #5:  This patch modifies /etc/conf/cf.d/intr.s.  If this file has
		  been modified locally, then those local changes will need to
		  be re-applied after the patch is installed.

      NOTICE #6:  During installation of base-008, an updated version of
                  /stand/cp1 will be installed and the new console overlay will
                  be written to partition 6 on the system disk.  Following
                  successful installation, the system must be taken down and
                  reset to load the new console before rebooting.  Failure to
                  do so may result in unexpected or unreliable behavior.

 Possible Side Effects:

      If the base-008 package is removed (pkgrm(1M)), the original console
      will be re-written to partition 6 on the system disk.  To ensure there
      are no adverse side effects, the kernel should be rebuilt (idbuild(1M))
      and the system taken down and reset to load the original console before
      rebooting the system.

      Suggested procedure for removing base-008:

        # pkgrm base-008
        # /etc/conf/bin/idbuild -B
        # sync
        # init 0
        # Reset system
        Follow the normal boot procedure detailed in the PowerMAX OS Product
	Release Notes to load the new console and boot the new kernel.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-009
 Date Issued:          08/12/98 10:09:43
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        nh
 Platforms:            Night Hawk 6200/6800, TurboHawk, PowerMAXION
 Related Patches:      nfs-002, crypt-001, inet-005, crosslibs-002, mvc (4.2.1)
 Related SARS:         HM12246, HM12322, HM12331, HM12396, 
		       HM12413, HM12429, HM12430
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  XFS file system loses file space that is reclaimed after remounting
	  The problem is associated with two kinds of temporary files: 

		 (a)  files that have been created then unlinked before being 
		      written to;  
		 (b)  files that have been mmap'ed and subsequently removed.

	  Creating large temporary files of type (a) or (b) with indirect 
	  blocks results in progressive loss of file space until the file 
	  system becomes full.  Rebooting or unmounting and remounting the 
	  file system will reclaim all the file space lost in this way.

      2.  Multi-threaded applications that use user-level interrupts and 
          spl_request(3X) or spl_manage(3X) may hang the system.

	  The spl_request(3X) and spl_manage(3X) library routines lock an
	  internal lwp mutex lock while reading and writing the ipl value.
	  If this internal lock is currently locked from a thread calling
	  spl_request(3X)/spl_manage(3X) at program level when a user-level
	  interrupt routine becomes active, then a spl_request(3X) or
	  spl_manage(3X) call that is made from the user-level interrupt
	  routine will be unable to get the internal lwp mutex lock, and the
	  routine will spin forever at interrupt level, attempting to acquire
	  the lock.

      3.  There is currently no way for a user application to get the current
	  ipl level.

	  It is not possible to get the current ipl level without also
	  setting the ipl level with the spl_request(3X) or spl_manage(3X)
	  routines.

      4.  HM12322:  PPC Time Base Register constants for Power Hawk 620/640 and
	  PowerStack II in the _hair routines of libud (also known as
	  TIE_FREQ_RATE) are incorrect.  Because the values are incorrect for
	  the bus clock rating for Power Hawk 620/640 and PowerStack II 
	  architectures, time stamps from programs that link libud could be
	  erroneous.

      5.  HM12246, HM12396:  Modification of ldterm, serial, rtserial and
	  idmknod are required for new mvc driver.

      6.  HM12413:  Several problems with lockd (nfs lock manager):

		(a)  Locks held by a client that crashes are not properly
                     recovered.  This may result in incorrect file locks that
                     are never released.

		(b)  In some cases, when a process on a client system blocks
                     waiting for a lock, it would not get woken up after the
                     lock was released.

		(c)  There is a long time period between the reboot of a system
		     and its detection on the server.

      7.  HM12429:  Some of the socket library routines may permanently set the
	  user's signal disposition of SIGPOLL to SIG_IGN (ignore the signal).

	  Some of the socket library routines may internally change the user's
	  signal disposition of SIGPOLL to SIG_IGN (ignore the signal) and
	  never change it back to its original disposition.

	  This problem will occur when these routines are called while the 
	  SIGPOLL signal is currently being held/masked in the calling LWP's
	  signal mask.

      8.  HM12430:  On XFS file systems, unlink(2) of a directory should not be
	  allowed if directory is not empty.

          A problem in the check code of the directory unlink function did not
	  prevent a root user unlinking a non-empty directory.  This results
	  in the directory content being removed from the file system but the
	  filespace allocated to the directory content not being released.

      9.  XFS file system: Stale File Handle errors on LCS targets with xfs
	  virtual root.

          A timing window in the xfs_vget function used by NFS to attach to
	  file system nodes resulted in stale file handle errors when the NFS
	  was used over a very fast network link.

     10.  XFS file system: xfs_badop panic with xfs host file system and
	  Hummingbird NFS client and attempt to remove a file on the client
	  without required permissions.

          A NFS protocol error in the Hummingbird client resulted in the
	  activation of a diagnostic panic when the client attempted an
	  invalid operation (VOP_LOOKUP on a file).

     11.  HM12331:  User level interrupts connected to devices in TurboHawk
	  secondary I/O did not work.

     12.  On TurboHawks, mpadvise(3C) issued with the 'command' argument of
	  MPA_CPU_VMELEV, the 'which' argument of MPA_VMELEV_SECONDARY and the
	  'who' argument specifying a secondary VME level 1-7 did not correctly
	  define the CPU that services the interrupt.

     13.  On TurboHawks, in the low level interrupt handler, the VME level
	  acquired from the IACK of the interrupt controller WAS being written
	  to the stack frame at location EF_VECT*4.  This prevented ktrace
	  from discerning between VME multiple devices interrupting on the same
	  VME level.

     14.  The generic kernel (/stand/unix.generic) originally released with
	  PowerMAX OS 4.2 does not boot on TurboHawk systems with three and
	  five position frontplanes.

     15.  Under certain conditions, a program that modifies its scheduling
	  class may end up panicing the system with the message:

		"XX scheduling class deferred a parameter change"

     16.  When either IGNORE_BUS_TIMEOUTS or IGNORE_SYSFAIL is enabled, then
	  the iobus_err(2) will return ENOSYS since the iobus_err(2) support
	  is not compatible with ignoring bus timeouts.

     17.  The utility intstat reports erroneous values for the CPU IDs that
	  VME interrupts are assigned to.  The values are bad on PowerMAXION
	  and TurboHawk systems.

     18.  On TurboHawks, Secondary VME interrupts could not be routed off of
	  the first processor board to the frontplane for handling by
	  processors on other processor boards.

 Problem Resolution: 

      1.  Fix xfs kernel code so that the indirect blocks are correctly
	  marked as free in the in-memory free space maps when a temporary
	  file is removed.

      2.  The lwp mutex lock is not required by the spl_request(3X) and 
	  spl_manage(3X) routines.  Therefore, this lock will no longer be 
	  used by these two routines.

      3.  Add a new spl_value(3X) routine to libud that simply returns the
	  current ipl (architecture dependent) ipl level:

		pl_t spl_value(caddr_t spl_map_address);

	  Where 'spl_map_address' is the address that was returned from a
	  previous spl_map(3X) call.

      4.  Modified the TIE_FREQ_RATE value returned by _hair_get_arch_info()
	  to be consistent with the bus clock rating for the Power Hawk
	  620/640 and PowerStack II architectures.
 
      5.  A new release (4.2.1) of the mvc package is replacing the 4.2
	  version, to provide new features (including rtserial device support)
	  and improved performance and reliability. Small problems in the
	  aforementioned I/O modules were found and corrected during
	  development and test of the new driver.

	  Additionally, idmknod(1M) did not permit a single line in a node
	  file to define both tty ports and printer ports, as the structure
	  of the new driver requires.  All of the idtools have been updated
	  as a result of these changes.

      6.  lockd problems resolved as follows:

		(a)  Upon detecting that a client has crashed (and rebooted),
		     the server will clear ALL locks held by that client.

		(b)  Add a small delay in the kernel code that re-requests a
		     lock via the local lockd.  This allows other messages to be
		     received.

		(c)  Shorten the initial start-up delay in statd from 15 to 5
		     seconds.

      7.  Change the appropriate libsocket routines so that they do not change
	  the process's signal disposition for the SIGPOLL signal.

	  See related patches inet-005 and crypt-001.

      8.  Add extra check to unlink directory code path.

      9.  Change xfs_vget node lookup to avoid the window.

     10.  Conditional compile the diagnostic panic, release code now just
          returns error.

     11.  Modified svme_intr(), the secondary vme interrupt handler for
	  PowerMAXIONs and TurboHawks, so that the vector and the exception
	  frame pointer are passed to the handler.  These items are required by
	  the user level interrupt handler, Xuserint.

     12.  A kernel routine, getbuslvl_nh6800t(), that is called by mpadvise()
	  was fixed to return the correct mask of CPUs that service a specified
	  local secondary VME level on TurboHawks.

     13.  On TurboHawks, the low level interrupt handler, Xintr, was modified
	  so that the vector presented by the VME device is written to the
	  exception stack frame.

     14.  Rebuilt unix.generic to include changes from previous PowerMAX OS 4.2
	  patches to add specified TurboHawk support.

     15.  Conditions for this to occur are for a parent process to change its
	  class and then change it back and THEN spawn a new process or lwp.
	  The new lwp/process would attempt to process the new scheduling class
	  change but there wouldn't be one present.  Fixed to account for this
	  condition (i.e. NULL deferred scheduling class changes).

     16.  Change the way that the kernel handles bus timeouts so that the
	  iobus_err(2) processing still functions properly even when
	  IGNORE_BUS_TIMEOUTS and IGNORE_SYSFAIL are enabled.

     17.  The program invokes syscx(2) to return the CPU assignment for VME
	  interrupts.  However, it incorrectly treats this as a CPU mask when
	  it is actually a CPU number.

     18.  On TurboHawks, Secondary VME interrupts can now be routed off the
	  first processor board using system tunables.  These interrupts can
	  now be serviced by processors on boards other than the first
	  processor boards.

 Object To Be Replaced: 

      /etc/conf/bin/idcheck
      /etc/conf/bin/idconfig
      /etc/conf/bin/idinstall
      /etc/conf/bin/idmknod
      /etc/conf/bin/idmodload
      /etc/conf/bin/idreadauto
      /etc/conf/cf.d/intr.s
      /etc/conf/pack.d/bsp6400/Driver.o
      /etc/conf/pack.d/bsp6408/Driver.o
      /etc/conf/pack.d/bsp6800/Driver.o
      /etc/conf/pack.d/bsp6800t/Driver.o
      /etc/conf/pack.d/bspall/Driver.o
      /etc/conf/pack.d/fs/Driver.o
      /etc/conf/pack.d/iobus_err/Driver.o
      /etc/conf/pack.d/ldterm/Driver.o
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/rtserial/Driver.o
      /etc/conf/pack.d/serial/Driver.o
      /etc/conf/pack.d/svc/Driver.o
      /etc/conf/pack.d/vme/Driver.o
      /etc/conf/pack.d/xfs/Driver.o
      /stand/unix.generic
      /usr/bin/intstat
      /usr/include/sys/fcntl.h
      /usr/include/sys/ipl.h
      /usr/lib/libnsl_i.a
      /usr/lib/libsocket.so
      /usr/lib/libud.a
      /usr/lib/libud.so

 Special Conditions for Installation: 

      NOTICE #1:  The changes to libud and <sys/ipl.h> for Problem #3 should
		  be installed on systems where multi-threaded applications
		  call spl_request(3X) or spl_manage(3X) from program level
		  threads and also from a user-level interrupt routine.
 
      NOTICE #2:  The following objects are linked to some of the objects being
		  replaced by this patch.  These objects will also be re-linked:

			/usr/lib/libnsl.a
			/usr/lib/libxti.a
			/usr/lib/libsocket.a

 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-010
 Date Issued:          09/23/98 08:43:28
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 610/620, PowerStack, PowerStack II (uni-proc)
 Related Patches:      none
 Related SARS:         none
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  Systems may 'hang' during boot-up.  Possible symptoms include:
 
		*  The system stops after the following is printed on the 
		   console:

			PowerMAX OS Boot Loader
			Boot
			: /stand/unix
			2675544+296695+505253 start 0x4000
			symbol table loaded

		   other information is printed.

		*  The system cannot be aborted (using the 'abort' switch).

		*  The hang does not always occur.  The system may boot once 
		   out of ten times -or- may only fail once out of ten times.
		   Some systems may not see the hang at all.

		*  The hang is more prevalent on systems with base-007 patch
		   installed.  The hang is more prevalent when kernel symbol
		   table is loaded.

 Problem Resolution: 

      1.  Correct a cache flush operation so that no memory operations are done
	  while the flush is in progress.

 Object To Be Replaced: 

      /etc/conf/pack.d/bsp2600/Driver.o
      /etc/conf/pack.d/bspmtx/Driver.o
      /etc/conf/pack.d/bspall/Driver.o
      /etc/conf/pack.d/io/Driver.o

 Special Conditions for Installation: 

      None.
 
 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-011
 Date Issued:          09/23/98 08:45:21
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 640, PowerStack II (multi-proc)
 Related Patches:      none
 Related SARS:         none
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  Systems may 'hang' during boot-up.  Possible symptoms include:
 
		*  The system stops after the following is printed on the 
		   console:

			PowerMAX OS Boot Loader
			Boot
			: /stand/unix
			2675544+296695+505253 start 0x4000
			symbol table loaded

		   other information is printed.

		*  The system cannot be aborted (using the 'abort' switch).

		*  The hang does not always occur.  The system may boot once 
		   out of ten times -or- may only fail once out of ten times.
		   Some systems may not see the hang at all.

		*  The hang is more prevalent on systems with base-008 patch
		   installed.  The hang is more prevalent when kernel symbol
		   table is loaded.

 Problem Resolution: 

      1.  Correct a cache flush operation so that no memory operations are done
	  while the flush is in progress.

 Object To Be Replaced: 

      /etc/conf/pack.d/bsp4600/Driver.o
      /etc/conf/pack.d/bspmtx/Driver.o
      /etc/conf/pack.d/bspmpall/Driver.o
      /etc/conf/pack.d/io/Driver.o

 Special Conditions for Installation: 

      None.
 
 Possible Side Effects: 

      None.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-013
 Date Issued:          09/30/98 08:04:17
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 610/620, PowerStack, PowerStack II (uni-proc)
 Related Patches:      audit-001, cluster-005, cmds-002, crosslibs-003, 
		       crypt-002, crypt-int-001, dec-007, inet-006, man-004,
		       ncr-002, via-001, zld-002, cld (4.2), fibre (4.2),
		       netboot (4.2)
 Related SARS:         HM12415, HM12357, HM12462
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  iconnect(3C) ICON_IVEC II_ALLOCATE calls may always return EBUSY.
	  If an interrupt vector is allocated with an iconnect(3C) ICON_IVEC
	  II_ALLOCATE call, and a LWP makes an ienable(3C) call to connect to
	  that vector, and another LWP later disconnects that ienabled LWP with
	  a iconnect(3C) ICON_DISC call, then that allocated interrupt vector
	  will be improperly marked free in the kernel's interrupt vector
	  table, even though the kernel's user-level interrupt data structures
	  will properly indicate that this vector is still ICON_IVEC allocated.

	  All subsequent iconnect(3C) ICON_IVEC II_ALLOCATE calls without the
	  vector specified (where the II_VECSPEC flag is not set) will result
	  in EBUSY being returned, instead of having a vector successfully
	  allocated.

      2.  Rommable PowerMAX OS support added:

	  Added random access decompression library support (radl) to the
	  kernel, plus tunable and stub file to enable or disable.  This
	  library must be enabled for all diskless configurations of 
	  PowerMAX OS.  For all other configurations, it may be enable or
	  disabled.  By default radl is disabled for all platforms, since by
	  default most platforms have a true disk for root.  The various
	  diskless build packages (netboot, cluster) automatically turn this on
	  for the affected targets or clients as appropriate.  Hence it is
	  expected there will be little need to explicitly turn this
	  configuration tunable on or off.

	  Added a random access compressor which produces compressed images
	  suitable for use by the above random access decompression library.
	  This compressor is both upwards and downwards compatible with gzip.

      3.  Enhancements to to the memfs kernel module to support booting from
	  a Flash Memory Device, a new feature added to the cluster and netboot
	  software packages. 

      4.  The fast boot logic does not properly detect that the file systems
	  are dirty during a system boot if the following condition occurs:

		A) a boot and then a "clean" shutdown of a kernel that has the
		   FASTFS tunable SET

		B) boot and then a "non-clean" shutdown of a kernel that has
		   the FASTFS tunable RESET

		C) boot of a kernel that has the FASTFS tunable SET

 	  The kernel in step A) would leave the dirty/clean flag set to clean.
	  If the kernel in step B) shutdown without going through a clean
	  shutdown, the dirty/clean flag would not get reset to dirty.  Finally,
	  the kernel in step C) would see the flag as clean and would attempt
	  to boot without running fsck on the dirty file systems.

      5.  Added NVRAM Global Environment Variable (GEV) support for the
	  Motorola platforms. PPCBug Revisions 1.8 and later provide support
	  for GEVs which reside in the PowerPC Reference Platform (PRP) region
	  of the NVRAM on the CPU board. PPCBug allows the OS access to share
	  this area. GEVs can still be used by the OS with an older revision of
	  PPCBug, but there will be no PPCBug commands to access them, and the
	  GEV area may need to be initialized by the OS.

	  The new nvram(2) system call and the gev(1) set of commands (gevdel,
	  gevdump, gevget, gevgetval, gevinfo, gevinit, gevput, gevputval,
	  and gevshow) provide services that allow you to add, delete, replace,
	  initialize and get information about one or more GEV entries.

	  The GEV area within the NVRAM is an array of null terminated strings.
	  These strings have the form:

		name=[value]

	  At the present time there is no support for GEVs on nh platforms.
	  The nvram system call always returns ENOSYS on nh platforms and the
	  gev set of commands are not present.

      6.  HM12415:  Add Symbios 53c875/895 high performance modes enhancements
	  and support for removable media Magneto-Optical Drives.

		*  Support ncr (Symbios) 53c875/895 high performance modes.

		*  Need enhancements to support removable media disks and 1K
		   sector size.

		*  SCSI ULTRA requires fewer devices on shorter cabling than
		   FAST/WIDE.

		*  Optical media change not protected against change in
		   geometry block.

		*  Raw disk transfers greater than 128K not supported.

		*  Some SCSI devices will reconnect, then immediately
		   disconnect without doing anything.

      7.  XFS files do not have microsecond resolution update times set.  XFS
	  fails to correctly set the tv_usec subfield of the file access,
	  modification or changed timeval structures. The tv_sec subfield
	  returned by the standard stat system call is correctly set, only the
	  extended stat (xstat) system call shows this problem.

      8.  When xdm is used to manage a host based X server process, shutdown
	  processing that kills all processing can lead to a race condition
	  wherein an X server process will be killed by shutdown, but before
	  xdm itself is killed, a new X server process is launched.  Depending
	  on how far this this process gets before it is killed itself, the
	  video hardware may not be restored to VGA compatible mode.  When this	
	  happens, the display is corrupted, and the system appears to be hung.

      9.  Certain logitech serial mouse devices are not always detected and
	  initialized properly by the smse STREAMs module.  Mouse detection
	  state machine in smse was easily confused because timeouts were too
	  short and certain early exits could be taken.

     10.  PCI drivers multi-function device and BIT-3 bridge support required
          to correct certain deficiencies in kernel PCI drivers including:

		*  No support for multi-function PCI devices

		*  PCI bridge depth limited to 2 bridges.  BIT-3 PCI expansion
		   chassis requires depth 3.

		*  Default tunable values for PCI bridges are not appropriate
		   for all architectures.

     11.  Serial keyboard STREAM module did not support Concurrent's own
	  serial kbd.

     12.  HM12357, HM12462:  When the top(1) command is run on a system that
          has more than six (6) processors configured, it will fail with a
          segmentation violation and dump core.  The problem is that the memory
          allocated for memory usage display is only 80 characters in length.
          This allocation is used up when more than 6 CPUs are configured.

     13.  According to POSIX, a process whose priority is lowered goes to the
          end of its new priority run queue.  Thus, if there are other
          processes already in that queue, the lowered LWP must give up the
          CPU immediately to them and wait its turn.  This was not happening.
          Instead, the running LWP would continue to run until it either
          voluntarily gave up the CPU, or some other event, such as I/O
          completion, caused the CPU to re-evaluate which LWP was supposed to
          be running.

     14.  Date written to or read from Time Of Century Clock is mishandled.
	  If the system time is changed to certain dates in the 21st century,
	  the date written to the hardware Time Of Century Clock is mishandled.
	  On a subsequent system reboot, the system time is set wrong because
	  the date read from the hardware Time Of Century Clock is incorrect.

     15.  Support required for the Interphase 5526 PCI Fibre Channel Adapter.

     16.  The fast boot dirty/clean flag is in a Motorola reserved location
	  within the header of the NVRAM PRP area. Changes by Motorola in the
	  future could overwrite this flag causing the kernel to misinterpret
	  the dirty/clean status flag during system initialization.

     17.  The PCI bridge chipset (aka Raven) used on the PowerHawk 620/640 and
	  PowerStack II has a write posting control bit for each slave window
	  that allows the processor to continue before PCI writes have been
	  acknowledged.  Prior to this change, this control bit is always off,
	  thereby disabling the posting of PCI writes.

Detailed problem resolution:

      1.  The fix is to re-implement the way that interrupt vectors are restored
	  in the kernel's interrupt vector table when a iconnect(3C) ICON_DISC
	  disconnection occurs, so that the proper vector value is placed into
	  the interrupt vector table entry.

      2.  Implemented as detailed above.

      3.  Modifications to the memfs kernel moduled made to support booting
	  from a Flash Memory Device.

      4.  The fast boot logic was changed to always set the dirty/clean flag to
	  dirty during system initialization, whether or not the FASTFS tunable
	  is set for the kernel.  Previously, the dirty/clean flag was set to
	  dirty during system initialization only when the FASTFS tunable was
	  set.  The dirty/clean flag will now be left set to dirty if the system
	  does not shutdown cleanly, irregardless of how FASTFS is set.  This
	  insures that the next kernel that boots will never see the file
	  systems as clean when the previous kernel went down dirty.

      6.  Problems resolved as follows:

                *  Add ULTRA-2 (LVD) controller support (Symbios 53c895) to ncr
                   driver.

                *  Added special SCSI Script instructions to reset 53c875 cache
                   line alignment mechanism on each PCI dma block move.  Added
                   high performance mode configuration. Added FIFO flush logic
                   to completion and disconnect.  Added NCR_BURST_SZ tunable
                   to allow multiple dma cache line bursts per PCI bus tenure.

                *  Changed generic disk driver (gd) to support 1K sector
                   format, media missing at boot, media change, and disk
                   geometry change with media change (including new partition
                   layout).  Added check for true block size in via driver.

                *  Added NCR_875_MAX_SYNC system tunable allow running more
                   drives on a longer cable by tuning the 53c875 to FAST/WIDE
                   speeds.

                *  Added PHYSIO_MAXTRNSFR system tunable to allow up to 512K
                   raw transfers for ncr (via and hsa not supported).

      7.  Change the xfs file time update code to set both subfields of the
	  access, modification or changed timeval structures.

      8.  xdm needs some help to know when a shutdown is occuring so that
	  attempts to re-launch the X server can be avoided. Once committed to
	  shutting down the system, the shutdown script now creates a file
	  /var/NOLOGIN as a signal that a shutdown is in progress.  This file
	  is removed by rc1 and rc2 startup scripts when booting or restarting.

      9.  Smse timeouts have been lengthened and the state machine code made
	  more robust.

     10.  Numerous enhancements to PCI support including:

		*  Support added for doing configuration accesses of
		   multi-function PCI devices.

		*  PCI bridge depths up to four now supported, including last
		   four expansion slots of the BIT3 PCI expansion chassis.

		*  PCI bridge I/O and memory range tunables expanded and
		   architecture specific tunables (defaults) were added.

     11.  Replace AT2Serial converter box support in skbd STREAMS module with
	  support for Concurrent's own serial keyboard.

     12.  The top(1) command has been modified to allow a larger memory
          allocation for the memory usage display.  This fix also resulted in a
          small change to the top(1) manpage, corrected in patch man-004.

     13.  The cause was the failure of the priocntl system call to nudge the
          CPU after changing the LWP's priority (i.e., failed to force the CPU
          to re-evaluate which LWP it was supposed to run).  The LWP was
          actually put at the end of its new run queue as it should have been,
          but without the nudge the CPU did not notice the changed
          circumstances of the LWP.

          The solution was to expand the `if' statement that does nudging in
          priocntl(2) to nudge if the new priority run queue was not empty
          prior to the insertion.

     14.  The kernel now writes the correct date to the hardware Time Of
	  Century Clock when the system time is changed, thereby ensuring the
	  system time is correctly set upon system reboot.

     15.  This patch adds the required base system support for the Interphase
	  5526 PCI Fibre Channel Adapter card.  The actual Fibre Channel kernel
	  driver and required utilities are included in the "fibre" software
	  package.

     16.  Moved the location of the fast boot dirty/clean flag from 0x0010 to
	  0x1200 within the NVRAM. This moves it out of the PRP header area. 
	  The size of the flag was changed from 1 byte to 4 bytes. If the file
	  systems shutdown cleanly, the flag will now be set to 0x4f4b4159
	  (instead of 0x1). These changes will insure that the dirty/clean flag
	  cannot be misinterpreted by the kernel.

     17.  Set the write post enable bit for the slave window used for PCI
	  memory accesses.

 Object To Be Replaced: 

      /etc/conf/mdevice.d/radl
      /etc/conf/mtune.d/gd
      /etc/conf/mtune.d/io
      /etc/conf/mtune.d/memfs
      /etc/conf/mtune.d/pci
      /etc/conf/pack.d/bsp2600/Driver.o
      /etc/conf/pack.d/bspall/Driver.o
      /etc/conf/pack.d/bspmtx/Driver.o
      /etc/conf/pack.d/cons/Driver.o
      /etc/conf/pack.d/gd/Driver.o
      /etc/conf/pack.d/gd/space.c
      /etc/conf/pack.d/io/Driver.o
      /etc/conf/pack.d/io/space.c
      /etc/conf/pack.d/memfs/Driver.o
      /etc/conf/pack.d/memfs/space.c
      /etc/conf/pack.d/pci/Driver.o
      /etc/conf/pack.d/pci/space.c
      /etc/conf/pack.d/proc/Driver.o
      /etc/conf/pack.d/radl/Driver.o
      /etc/conf/pack.d/radl/stubs.c
      /etc/conf/pack.d/scsi/Driver.o
      /etc/conf/pack.d/skbd/Driver.o
      /etc/conf/pack.d/skbd/space.c
      /etc/conf/pack.d/smse/Driver.o
      /etc/conf/pack.d/svc/Driver.o
      /etc/conf/pack.d/ui/Driver.o
      /etc/conf/pack.d/xfs/Driver.o
      /etc/conf/sdevice.d/radl
      /etc/conf/sdevice.d/skbd
      /usr/bin/gev
      /usr/bin/rac
      /usr/bin/top
      /usr/ccs/lib/libc.a
      /usr/ccs/lib/libc.so
      /usr/include/libc_synonyms.h
      /usr/include/sys/adapter.h
      /usr/include/sys/iconnect.h
      /usr/include/sys/im.h
      /usr/include/sys/in82378.h
      /usr/include/sys/gd.h
      /usr/include/sys/nvram.h
      /usr/include/sys/pci.h
      /usr/include/sys/pci_p.h
      /usr/include/sys/pci_info.h
      /usr/include/sys/racfile.h
      /usr/include/sys/radl.h
      /usr/include/sys/ravenmpic.h
      /usr/include/sys/scsi.h
      /usr/include/sys/skbd.h
      /usr/include/sys/syscall.h
      /usr/include/sys/fs/memfs_mnode.h
      /usr/include/sys/fs/memfs.h
      /usr/lib/libnsl_i.a
      /usr/lib/libnsl_i.so
      /usr/lib/libc.so.1
      /usr/lib/libcmd.a
      /usr/lib/libud.so
      /usr/lib/libud.a
      /usr/lib/locale/C/MSGFILES/core.abi.str
      /usr/lib/locale/C/MSGFILES/harris.str
      /sbin/rc0
      /sbin/rc1
      /sbin/rc2
      /sbin/shutdown
      /sbin/wsinit
      /sbin/format
      /sbin/bcheckrc

 Special Conditions for Installation: 

      NOTICE #1:  The PCI Fibre channel adapter is supported only on PowerStack
		  and PowerStack II (single and multi-processor) platforms.

      NOTICE #2:  You must insure that the configuration parameters for the
		  PPCBug NIOT command are not stored in NVRAM locations 0x1200
		  to 0x12ff on your system.  The default location of the NIOT
		  configuration parameters is 0x1000 and they are 256 (0x100)
		  bytes in length.  To check the location of the NIOT
		  configuration parameters on your system, use the PPCBug ENV
		  command to examine the "Network Auto Boot Configuration
		  Parameters Offset (NVRAM) = 00001000".  If any part of the
		  NIOT configuration parameters area overlaps locations 0x1200
		  to 0x12ff, you MUST change the location of the NIOT
		  configuration parameters using the PPCBug ENV command.

      NOTICE #3:  The following links will also be created during installation
		  of base-013:
	
			*  Link to /usr/bin/gev
		
				/usr/bin/gevdel
				/usr/bin/gevdump
				/usr/bin/gevget
				/usr/bin/gevgetval
				/usr/bin/gevinfo
				/usr/bin/gevinit
				/usr/bin/gevput
				/usr/bin/gevputval
				/usr/bin/gevshow

			*  Link to /usr/lib/libnsl_i.a

				/usr/lib/libnsl.a
				/usr/lib/libxti.a
				/usr/lib/libsocket.a

			*  Link to /usr/lib/libnsl_i.a
		
				/usr/lib/libnsl.so
				/usr/lib/libxti.so

			*  Link to /usr/ccs/lib/libc.so

				/usr/ccs/lib/libp/libc.so

 Possible Side Effects:

      NOTICE #1:  The file systems will appear to have gone down dirty the
		  first time a kernel with this change is booted (even if the
		  previous kernel shutdown cleanly).  This occurs because it
		  takes one boot sequence to initialize the new dirty/clean
		  flag location.

		  The fast boot logic may not accurately detect the state of
		  the file systems if you switch back and forth between a
		  kernel that does not have this change, and a kernel that has
		  this change.

      NOTICE #2:  Tunable parameters that control position and size of I/O and
		  memory windows on secondary PCI buses have been changed.
		  Sites that have locally defined any of the the old PCIx_MEM_*
		  or PCIx_IO_* tunable values will need to convert these to the
		  equivalent PCIx_MEM* or PCIx_IO* values.

		  DO NOT SIMPLY SUBSITITUTE THESE OLD TUNABLE VALUES FOR THE
		  CORRESPONDING NEW PARAMETER BECAUSE THE MEANINGS OF THESE
		  PARAMETERS ARE DIFFERENT.  FAILURE TO DO SO MAY RESULT IN
		  UNEXPECTED OR UNRELIABLE BEHAVIOR.

		  Instead, read the descriptions of the new tunable parameters
		  closely, and supply a new value only if necessary for your
		  configuration. The default values provided should work for
		  most common configurations.

                                        return to index
================================================================================


              Concurrent Computer Corporation Software Development
                            Software Patch Report
	
 Patch Name:           base-014
 Date Issued:          09/30/98 08:31:03
 Software Package:     base pkg (Version 4.2)
 OS Release:           PowerMAX OS 4.2
 Architectures:        moto
 Platforms:            Power Hawk 640, PowerStack II (multi-proc)
 Related Patches:      audit-001, cluster-005, cmds-002, crosslibs-003, 
                       crypt-002, crypt-int-001, dec-007, inet-006, man-004,
                       ncr-002, via-001, zld-002, cld (4.2), fibre (4.2),
                       netboot (4.2)
 Related SARS:         HM12415, HM12357, HM12462, HM12322
 
 Brief Description:

      PowerMAX OS 4.2 base package release updates
 
 Problem Description:

      1.  iconnect(3C) ICON_IVEC II_ALLOCATE calls may always return EBUSY.
	  If an interrupt vector is allocated with an iconnect(3C) ICON_IVEC
	  II_ALLOCATE call, and a LWP makes an ienable(3C) call to connect to
	  that vector, and another LWP later disconnects that ienabled LWP with
	  a iconnect(3C) ICON_DISC call, then that allocated interrupt vector
	  will be improperly marked free in the kernel's interrupt vector
	  table, even though the kernel's user-level interrupt data structures
	  will properly indicate that this vector is still ICON_IVEC allocated.

	  All subsequent iconnect(3C) ICON_IVEC II_ALLOCATE calls without the
	  vector specified (where the II_VECSPEC flag is not set) will result
	  in EBUSY being returned, instead of having a vector successfully
	  allocated.

      2.  Rommable PowerMAX OS support added:

	  Added random access decompression library support (radl) to the
	  kernel, plus tunable and stub file to enable or disable.  This
	  library must be enabled for all diskless configurations of 
	  PowerMAX OS.  For all other configurations, it may be enable or
	  disabled.  By default radl is disabled for all platforms, since by
	  default most platforms have a true disk for root.  The various
	  diskless build packages (netboot, cluster) automatically turn this on
	  for the affected targets or clients as appropriate.  Hence it is
	  expected there will be