1    Release Notes

This chapter provides information that you must be aware of when working with Tru64 UNIX Version 4.0F and TruCluster Software Products Version 1.6 Patch Kit-0008.

1.1    Patch Process Resources

HP provides Web sites to help you with the patching process:

1.2    Required Storage Space

The following storage space is required to successfully install this patch kit:

Base Operating System

TruCluster Software Products

1.3    Files Listed as UNKNOWN Origin

If you install the latest patch kit, and run the Baselining feature before you install any aggregate patches, you will get the following files listed as having UNKNOWN origin. This does not represent an error with the operating system or any of the layered products. Ignore this message and proceed with the installation.

    * list of changed files with unknown origin:
      ------------------------------------------
 
  ./usr/.smdb./AFAADVANCED400.scp_extension     OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVANCED401.scp_extension     OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVANCED402.scp_extension     OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVANCED403.scp_extension     OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVANCED404.scp_extension     OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVANCED425.scp_extension     OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVANCED435.scp_extension     OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVMAN400.scp_extension       OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVMAN401.scp_extension       OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVMAN402.scp_extension       OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVMAN403.scp_extension       OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVMAN404.scp_extension       OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVMAN425.scp_extension       OSFBASE440     UNKNOWN
  ./usr/.smdb./AFAADVMAN435.scp_extension       OSFBASE440     UNKNOWN
 
    * no missing files detected

1.4    NHD Installation

If you want to apply NHD3 on V4.0F then it should be done before the Patch Kit-0008 installation. The installation path of V 4.0F to Patch Kit-0008 to NHD3 is not supported in Patch Kit-0008 and may lead to an inconsistent state. The correct installation path is V4.0F to NHD3 to Patch Kit-0008.

1.5    Inclusion of Base Level in tar File Name

With this release, the name of the tar file containing the patch distribution has been expanded to include the baselevel for which this kit was built. This formerly internal baselevel number has become a common way of identifying kits. For complete information, see Section 1.3 of the Patch Kit Installation Instructions.

1.6    Release Note for TruCluster Server

If you are installing only TCR patches, you MUST rebuild the kernel and reboot the machine for the changes to take effect. If removing only TCR patches, you MUST also rebuild the kernel and reboot the machine for the changes to take effect.

1.7    Release Note for DEC 7000 Upgrades to AlphaServer 8400

This release note concerns systems that were upgraded from DEC 7000 to AlphaServer 8400 that have not installed the DWLPA-AA, DWLPB-AA, or the KFTIA. These are the I/O enhancements for the AlphaServer 8400.

Add the following information to the /sys/conf/SYSTEMNAME file:

bus             tiop0      at tlsb0     vector    tioperror
bus             pci0       at tiop0     slot  0
callout after_c "../bin/mkdata pci"
 
bus             isp0       at pci0      slot  0 vector    ispintr
controller      scsi0      at isp0      slot  0

You must do this on every reconfiguration of the system.

1.8    Release Notes for Tru64 UNIX Patches 476.00 and 351.00

The following release notes provide Visual Threads Upgrade information and updated information for the quotacheck(8), fsck(8), and fstab(4) reference pages.

1.8.1    Visual Threads Upgrade Required

Visual Threads users will need to upgrade to the latest version of Visual Threads for the race detection rules to work. The Visual Threads upgrade is available from http://www.tru64unix.compaq.com/visualthreads and will be available in the next Developer's Tooklit Supplement.

1.8.2    quotacheck(8), fsck(8), and fstab(4) Reference Pages

quotacheck(8) Reference Page Update

  SYNOPSIS
 
    /usr/sbin/quotacheck [-guv] filesystem ...
 
  OLD>  /usr/sbin/quotacheck -a [-guv] [-l number]
  NEW>  /usr/sbin/quotacheck -a [-guv] [-l number] [-t [no]type]
 
 
  FLAGS
 
  OLD>  -a    Checks all file systems identified in the /etc/fstab file
              as read/write with disk quotas.
 
  NEW>  -a    Checks all UFS and AdvFS file systems identified in the
              /etc/fstab file as read/write with userquota and/or
              groupquota options specified, and a pass number of 1 or
              greater.  If the -t option is specified, only the file systems
              of the specified type will be checked.  Alternatively, if
              type is prefixed with 'no', then the valid file systems in
              the /etc/fstab file that do not have that type will be
              checked.
 
 
  OLD>  -l    number Specifies the number of times to perform disk quota
              checking.
 
  NEW>  -l    number Specifies the maximum number of parallel quotacheck
              processes to run at one time.
 
  NEW>  -t    [no]type
  NEW>        Specifies the file system type.  The supported file systems are 
              as follows:
 
              advfs - Advanced File System (AdvFS)
 
              ufs - UNIX File System (UFS)
 
              See fstab(4) for a description of file system types.  If
              the 'no'  prefix is used, all of the above file types
              except the one specified are checked.
 
              Note, the -t flag is only valid when used with the -a flag.
 
  DESCRIPTION
 
  OLD>  The quotacheck command examines each specified file system, builds a
        table of current disk usage, and compares this table against that
        stored in the disk quota file for the file system.  If any
        inconsistencies are detected, both the quota file and the current
        system copy of the incorrect quotas are updated.  Each file system
        must be mounted with quotas enabled.
 
  NEW>  The quotacheck command examines each specified file system, builds a
        table of current disk usage, and compares this table against that
        stored in the disk quota file for the file system.  If any
        inconsistencies are detected, both the quota file and the current
        system copy of the incorrect quotas are updated.
 
  OLD>  The quotacheck command runs parallel passes on file systems using
        the number specified in the fsck field of the file system's entry in
        the /etc/fstab file.  The quotacheck command only checks file
        systems with pass number 1 or higher in the fsck field.  A file
        system with no pass number is not checked.
 
  NEW>  The quotacheck -a command runs parallel passes on file systems using
        the number specified in the /etc/fstab pass number field.  The
        quotacheck command only checks file systems with pass number 1 or
        higher in the fsck field.  A file system with no pass number is
        not checked.
 
  OLD>  For both UFS file systems and AdvFS filesets, you should assign the
        root file system a fsck field value of 1, and a value of 2 or
        higher to other file systems.  See fstab(4) for more information.
 
  NEW>  For both UFS file systems and AdvFS filesets, you should assign the
        root file system a pass number of 1, and a value of 2 or higher
        to other file systems.  See fstab(4) for more information.
 
  OLD>  The quotacheck command checks only file systems that have the
        userquota or groupquota option specified in the /etc/fstab file.
 
  NEW>  The quotacheck command checks only file systems that are mounted.
        UFS file systems must also have userquota and/or groupquota options
        specified in the /etc/fstab file.  The userquota and groupquota
        options are only needed for AdvFS file systems if quotas are
        actually going to be enforced or if they are to be selected with the 
        -a option.

fsck(8) Reference Page Update

OLD>  When the system boots, the fsck program is automatically
        run with the -p flag.  The program reads the /etc/fstab file to
        determine which file systems to check.  Only partitions that 
        are specified in the fstab file as being mounted ``rw'' or 
        ``ro'' and that have a non-zero pass number are checked.  
        File systems that have a pass number 1 
        (usually only the root file system) are checked one at a time.  
        When pass 1 completes, all the remaining file systems are
        checked, with one process running per disk drive.
 
  NEW>  When the system boots, the fsck program is automatically
        run with the -p flag.  The program reads the /etc/fstab file to
        determine which file systems to check.  Only partitions that 
        are specified in the fstab file as being mounted ``rw'' or 
        ``ro'' and that have a non-zero pass number are checked.  
        File systems that have a pass number 1
        (usually only the root file system) are checked one at a time.  
        When pass 1 completes, the remaining pass numbers are processed
        with one parallel fsck process running per disk drive in the 
        same pass.
 
  NEW>  The per disk drive logic is based on the /dev/disk/dsk0a
        syntax where different partition letters are treated as being 
        on the samedisk drive.  Partitions layered on top of an LSM 
        device may not follow this naming convention.  In this case 
        unique pass numbers in /etc/fstab may be used to sequence fsck 
        checks.

fstab(4) Reference Page Update

 userquota [=filename] and groupquota [=filename]
 
        If quotas are to be enforced for users or groups,
        one or both of the options must be specified.  If 
        userquota is specified, user quotas are to be enforced.  
        If groupquota is specified, group:
 
  OLD>  quotas are to be enforced.
 
  NEW>  quotas are to be enforced (also see quotaon and quotaoff(8)).
 
 
  OLD>  For UFS  file systems, the sixth field (fsck) is used by 
        the fsck command to determine the order in which file system
        checks are done at reboot time.  For the root file system, 
        specify 1 in the fsck field. For other UFS file systems, 
        specify 2 or higher in the fsck field.  Each UFS file system 
        should have a unique fsck value.
 
  NEW>  For UFS  file systems, the sixth field (pass number) is
        used by the fsck and quotacheck commands to determine the 
        order in which file system checks are done at reboot time.  
        For the root file system, specify 1 in the fsck field.  For 
        other UFS file systems specify 2 or higher in the pass number 
        field.
 
  OLD>  For AdvFS filesets, the sixth field is a pass number
        field that allows the quotacheck command to perform all of the
        consistency checks needed for the fileset.  For the root file 
        system, specify 1 in the fsck field.  Each AdvFS fileset in 
        an AdvFS file domain should have a unique fsck value, which 
        should be 2 or higher.
 
  NEW>  For AdvFS filesets, the  sixth field is a pass number
        field that allows the quotacheck command to perform all of the
        consistency checks needed for the fileset.  For the root file 
        system, specify 1 in the fsck field.  For other AdvFS file 
        systems specify 2 or higher in the pass number field.
 
  OLD>  File systems that are on the same disk are checked
        sequentially, but file systems on different disks are 
        checked at the same time to utilize parallelism available 
        in the hardware.  If the sixth field is not present or zero, 
        a value of 0 is returned and the fsck command
        assumes that the file system does not need to be checked.
 
  NEW>  File systems that are on the same disk or domain are checked
        sequentially, but file systems on different disks or
        domains but with the same or greater than 1 pass number are 
        checked at the same time to utilize parallelism available in 
        the hardware.  When all the file systems in a pass have 
        completed their checks, then the file systems with the 
        numerically next higher pass number will be processed.
 
  NEW>  The UFS per disk drive logic is based on the
        /dev/disk/dsk0a syntax where different partition letters 
        are treated as being on the same disk drive.  Partitions 
        layered on top of an LSM device may not follow this naming 
        convention.  In this case unique pass numbers may be used
        to sequence fsck and quotacheck processing.  If the sixth 
        field is not present or zero, a value of 0 is returned
        and the fsck command assumes that the file system does
        not need to be checked.

1.9    Release Note for Tru64 UNIX Patch 315.00

This is a release note for the Enhanced Round Robin Sequential Read Patch.

If the system configurable parameter lsm:lsm_V_ROUND_enhanced is set (value = 1) the enhanced read round robin policy is activated. This new policy stores the last block accessed by the previous I/O request. When returning for another block in round robin (V_ROUND) mode, that value is compared to the current read. If it is within a predefined, user-configurable value (lsm:lsm_V_ROUND_enhance_proximity), then the same plex is used. Otherwise the next plex is used as for a normal round robin behavior.

The two new additional tunable parameters are lsm_V_ROUND_enhanced set to 1 by default (V_ROUND read is activated) and lsm_V_ROUND_enhance_proximity is set to 512 by default.

Append any tuning changes to/etc/sysconfigtab. See the TUNING notes below for a description of the new lsm_V_ROUND_enhanced and lsm_V_ROUND_enhance_proximity tunables. These tunables are configured in the lsm stanza. For example:

lsm:

lsm_V_ROUND_enhanced = 1

lsm_V_ROUND_enhance_proximity = 1024

Note

If you already have an lsm stanza in your sysconfigtab file, add the two lsm_V_ROUND entries.

TUNING

The purpose of this patch is to increase performance with sequential reads. This patch introduces a new enhanced round robin mode where the last block read is now compared to the next block to read and a check is added to see if last block number-next block number is less than or equal to lsm_V_ROUND_enhance_proximity. If it is, read from the same plex. This is to attempt to hit the disk cache, and so increase performance.

The relevant tunable variables are as follows:

lsm_V_ROUND_enhanced

This variable activates the new enhanced round robin read policy if it is set to TRUE (1). Otherwise the policy is deactivated.

DEFAULT = 1

lsm_V_ROUND_proxmity

This variable provides the proximity in which the last read and new read most lie in an attempt to read data from the disk's cache by reading from the same plex. The variable can be adjusted from 0 to 4096.

DEFAULT = 512

1.10    Release Note for Tru64 UNIX Patch 351.00

For more information about the functionality provided and special installation instructions related to this patch, please refer to the online README file located at:

http://www.service.digital.com/patches/

From this directory, click on the following link:

duv40fwlseco2.README

Note

It may be necessary to navigate additional directories below this top-level URL to find the specific README file related to this patch.

1.11    Release Note for Tru64 UNIX Patch 592.00

This patch contains a solution for the following issue:

HP has advised owners of DS10, DS10L, ES40 AlphaServers, and XP900 AlphaStations that HP has determined in laboratory testing that there is a theoretical possibility that during read and write operations to the floppy disk on these systems, a single byte of data may be inaccurately read or written without notice to the user or system. The potential for this anomaly exists only if floppy disk read or write operations are attempted while there is extremely heavy traffic on these Alpha systems' internal input/output busses.

Although HP has observed the anomaly only in laboratory tests designed to create atypical system stresses, including almost constant use of the floppy disk drive, HP has informed owners of the remote possibility that the anomaly could occur so that they may take precautions to prevent it.

HP recommends that the solution be installed by all DS10, DS10L, ES40 AlphaServers, and XP900 AlphaStation customers.

The solution to this issue is also available as an individual, manually installed patch kit named floppy_CSP_v40g.tar.gz, available from:

http://ftp1.support.compaq.com/public/unix/v4.0g

1.12    Release Note for Tru64 UNIX Patches 1197.00 and 1199.00

This patch delivers version V1.0-032 of the libots3 library. Version 2.0 of the libots3 library is delivered with the Compaq FORTRAN Compiler, Versions 5.3 ECO1 and 5.4, or the Developers Tool Kit (DTK) (OTABASE subset). If libots3 V2.0 is already installed on your system, and you install this patch, you will receive the following informational message:

Problem installing:

- Tru64_UNIX_V4.0F / Software Development Environment Patches:

Patch 00XXX.00 - Fix for parallel processing support library

./usr/shlib/libots3.so: is installed by:

OTABASE212 and can not be replaced by this patch.

This patch will not be installed.

To determine what version of libots3 library is installed on your system, execute the following command:

# what /usr/shlib/libots3.so

libots3.so:

libots3.a V2.0-094 GEM 27 Feb 2001

1.13    Release Note for Tru64 UNIX Patch 1331.00

This patch provides the X server support for the new 3DLabs Oxygen VX1 PCI graphics card. In order to obtain full support for this graphic card, you must also select Patch 1493.00, which is the driver portion of the patch.

A list of supported platforms is available on the following web page:

http://www.compaq.com/alphaserver/products/options.html

1.14    Release Note for Tru64 UNIX Patch 1414.00

This release note contains the new fixfdmn(8) reference page.

NAME
 
  fixfdmn - Checks and repairs corrupted AdvFS domains
 
SYNOPSIS
 
  /sbin/advfs/fixfdmn [-mtype[,type]...] [-d directory] [-v number] [-a [-c]
  | -n] [-s {y | n}] [domain] [fileset]
 
  /sbin/advfs/fixfdmn -u directory domain
 
OPTIONS
 
  -a  Specifies that after repairing what it can, fixfdmn will attempt to
      activate the domain at the end of the run. This option cannot be used
      with the -n option.
 
  -c  Removes any clone filesets.  This option is only valid if used with the
      -a option.
 
  -d directory
      Specifies a directory to which the message log and undo files will be
      written. If the -d option is not used, the message and undo log files
      are put in the current working directory. The message log file is named
      fixfdmn.<domain>.log and the two undo files are named undo.<domain>.<#>
      and undoidx.<domain>.<#> where # will cause a number to be appended to
      the filenames to make them unique. The numbers will be rotated sequen-
      tially from 0 (zero) through 9 if multiple undo files are created for
      the same domain. The undo file will have the same ending number as its
      corresponding undo index file.
 
  -m type[,type...]
      Specifies a list of types of metadata, one or more of which can be
      checked and repaired. The valid types are log, sbm, sync, bmt, frag,
      quota and files. If you specify the fileset parameter, sync, log, sbm,
      and bmt are made invalid types for the -m option. If you do not specify
      -m, the default is to check all types.
 
      sync
          Corrects the magic number and synchronizes data across volumes (for
          example, volume numbers, mount ids, mount states, domain ids, and
          so on.)
 
      log Resets the transaction log so it is not processed.
 
      sbm Synchronizes the sbm to the information in the bmt.
 
      bmt Corrects the bmt.
 
      frag
          Corrects frag file groups and free lists and ensures that all file
          frags reside in the frag file.
 
      quota
          Checks and corrects sizes of quota files.
 
      files
          Verifies that directory metadata is correct.
 
  -n  Specifies that fixfdmn will check the domain and not do any repairs. It
      will report what problems were found and how it would have fixed them.
 
  -s {y | n}
      Specifies that "yes" or "no" should be answered to prompts when run
      from a script.
 
  -u directory
      Restores the domain to its previous state by undoing the effects of the
      last run of fixfdmn, using the most recent undo files in the specified
      directory.
 
  -v number
      Specifies the verbose mode level which controls the messages printed to
      stdout.
 
      0 = Only error messages
 
      1 = ( Default) Progress, errors and summary messages
 
      2 = Progress messages, detailed error messages, fix information and
      summary messages
 
OPERANDS
 
  domain
      The name of a corrupted domain to repair.
 
  fileset
      The name of the fileset to repair if only one fileset in this domain
      exhibits errors.  You may tell fixfdmn to check only that fileset and
      not specifically look for errors in other filesets.
 
DESCRIPTION
 
  The fixfdmn utility checks and repairs corrupt AdvFS domains and filesets.
 
  The fixfdmn utility is primarily concerned with fixing problems that have a
  limited scope. When a large portion of the domain is corrupted, there is
  very little fixfdmn can do, so it will recommend restoring data from backup
  or running the salvage(8) command.
 
  The fixfdmn utility uses the on-disk metadata to determine what corruptions
  exist in the domain. Only metadata will be repaired, as there is currently
  no way to check or repair the contents of users files.  Only those problems
  which prevent mounting the domain, or would result in a domain or system
  panic, will be repaired.
 
  After major areas of metadata are checked, and if a corruption was fixed,
  fixfdmn will prompt the user to determine if they want to continue looking
  for additional corruption.
 
  If fixfdmn detects an error in a clone fileset, the clone is marked out of
  sync and should not be used.
 
  If fixfdmn cannot recover the metadata for a specific file, the file may be
  truncated, moved, or deleted depending on the situation.  The fixfdmn util-
  ity will attempt to save as much of a file as possible.
 
  Every page fixfdmn changes will be saved to an undo file. If the user does
  not like the results of running fixfdmn, the user can undo the changes by
  running fixfdmn again with the -u option. If the file system containing the
  undo files runs out of space during the fixfdmn run, the user will be
  prompted on how to proceed. The user will  have the option to continue
  without the undo files, to continue adding more space to the domain
  containing the undo files, or to exit.
 
  Use the -m type option when you have information from a system/domain panic
  or output from verify or other tools which indicate where the corruption
  may be. This option limits the scope of what is checked and repaired.
 
NOTES
 
  The fixfdmn command will always clear the transaction log, even on a non-
  corrupt domain unless the -n option is specified
 
  There must be a domain entry for this domain in /etc/fdmns. The fixfdmn
  command opens the block devices specified for the volumes in /etc/fdmns.
 
  If you need to repair the root domain, you must boot from CD-ROM and create
  the entry for the root domain under /etc/fdmns.
 
RESTRICTIONS
 
  You must be root to run fixfdmn.
 
  The fixfdmn command requires that the domain specified will have no
  filesets mounted.
 
  Although fixfdmn may report success, it does not guarantee that all corrup-
  tions have been eliminated.
 
  If a domain is mounted and written to after being repaired by fixfdmn,
  using the fixfdmn utility with the -u option will likely cause corruptions.
 
EXIT STATUS
 
  0 (Zero)
      Success.
 
  1 Corrupt
      Unable to repair all found corruptions
 
  2 Failure
      Program or system error
 
FILES
 
  /etc/fdmns
      Contains AdvFS domain directories and locks.
 
SEE ALSO
 
  Commands: salvage(8), umount(8), verify(8), vrestore(8)

1.15    Release Note for Tru64 UNIX Patch 1320.00 and 1323.00

This patch updates the BIND version from V4 to V8.3.4 in order to provide a more secure version of BIND. In particular, it addresses the vulnerability described in SSRT2400, for which HP had previously published a workaround. The BINDv8 shipped here does not include the dnskeygen utility and thus cannot generate its own transaction keys. However, it can be configured to participate as a slave in a zone transfer that uses transaction keys.

BINDv8 uses a configuration file with a different name and format than that of BINDv4. The /usr/sbin/named-bootconf utility will convert the BINDv4 named.boot file to a BINDv8 named.conf file. After installing this patch, you must use the /usr/sbin/named-bootconf utility to convert your configuration file. Connect to the directory that contains the named.boot file, normally /etc/namedb, then run the conversion utility as shown:

/usr/sbin/named-bootconf < /etc/namedb/named.boot > /etc/namedb/named.conf

Then use /usr/sbin/rcmgr to insert the correct configuration filename in the BIND starting arguments, as shown:

/usr/sbin/rcmgr set BIND_SERVERARGS -c /etc/namedb/named.conf

At this point you may now stop the old server (if you have not already), and start the new named. Use these commands:

/sbin/init.d/named stop
/sbin/init.d/named start

If at any time you rerun bindsetup or bindconfig, make sure to run these /usr/sbin/named-bootconf and /usr/sbin/rcmgr commands again afterward.

Updated versions of the BIND Configuration Guide and the Network Administration: Services guide can be found on the Tru64 UNIX documentation website, http://h30097.www3.hp.com/docs/pub_page/doc_list.html.

Updated reference pages ship with this patch kit.

1.16    Release Note for Tru64 UNIX Patch 1421.00

A new Russian keyboard comes with 5 extra keycaps. To enable any of the extra keycaps, you will need to modify the /usr/lib/X11/xkb/symbols/digital_russian file. For example,

//    KEY <AD09> can be replaced by an extra keycap.
//    If you replace it with the extra keycap, please uncomment
//    the following definition and comment out the original one.
//
//    key <AD09> {
//      symbols[Group1]=3D [               o,               O ],
//      symbols[Group2]=3D [     Ukrainian_i,     Ukrainian_I ]
//    };
    key <AD09> {
        symbols[Group1]=3D [               o,               O ],
        symbols[Group2]=3D [  Cyrillic_shcha,  Cyrillic_SHCHA ]
    };
 
 

1.17    Release Notes for Tru64 UNIX Patch 1493.00

This section contains release notes for Patch 1493.00.

1.17.1    Update to the getsockopt (2), accept(2), getsockname(2), and getpeername(2) References Pages

This patch updates the getsockopt(2), accept(2), getsockname(2), and getpeername(2) references pages with the following change in the ERRORS section:

[EINVAL]

The option_value or option_len parameter is invalid; or the socket is shut down.

These changes were not made to the on line reference pages.

1.17.2    New Security Feature, No Execute Heap/Data

Caution

Read this release note completely and execute the /usr/sbin/javaexecutedata script before enabling this feature.

This patch kit introduces a new security feature called no execute heap/data, similar in concept to Tru64 UNIX's executable stack protection. When enabled, the feature prevents the execution of instructions that reside in heap or other data areas of process memory, providing additional protection against buffer overflow exploits.

In a buffer overflow exploit, an attacker feeds a privileged program an unexpectedly large volume of carefully constructed data through inputs such as command-line arguments and environment variables. If the program is not coded defensively, the attacker can overwrite areas of memory adjacent to the buffer. Depending upon the location of the buffer (stack, heap, data area), the attacker can deceive these programs into executing malicious code that takes advantage of the program's privileges, or alter a security-sensitive program variable to redirect program flow. Such an attack can be used to gain root access to the system.

Enabling the executable_data tunable changes a potential system compromise into, at worst, a denial of service attack. A vulnerable program may still contain a buffer overflow, but an exploit that writes an instruction stream into the buffer and attempts to transfer control to those instructions will fail, because memory protection will prohibit instruction execution from that area of memory.

The new feature is implemented as a dynamic sysconfig tunable, executable_data in the proc subsystem. The supported settings allow a system administrator to cause requests from privileged processes for writable and executable memory to fail, or to be treated as a request for writable memory, and to optionally generate a message when such a request occurs. Many applications unnecessarily request write-execute memory directly, or because of the default of some underlying function acting on their behalf, but never execute from the memory. By substituting writable memory for the requested write-execute memory, the executable_data tunable allows such applications to benefit from the additional protection without requiring application modification.

Five settings are supported for the executable_data tunable:

0

Disabled, the default setting. All processes may allocate writable and executable memory.

5

The recommended setting. When a process executing as root or a process running a setuid application requests writable, executable memory, the request succeeds but the process receives only writable memory. No message is generated.

21

When a process executing as root or a process running a setuid application requests writable, executable memory, the request fails with an EACCES status and no message is generated.

37

When a process executing as root or a process running a setuid application requests writable, executable memory, the request succeeds, the process receives only writable memory, and a message is generated.

53

When a process executing as root or a process running a setuid application requests writable, executable memory, the request fails with an EACCES status and a message is generated.

No other settings are supported. Attempting to use unsupported settings can cause unexpected and undesirable application behavior.

Note

Before changing executable_data from the default value of 0, you must run the /usr/sbin/javaexecutedata script. Otherwise, privileged java applications will fail in unpredictable ways. The Java language does not compile programs, but instead interprets them as they run. Unless marked as exempt, privileged applications written in Java will receive an error when they attempt to execute instructions residing in the unexecutable memory. The manner in which they handle the error is application-specific and thus unpredictable. If you plan to enable the executable_data tunable, you MUST use the /usr/sbin/javaexecutedata script.

Privileged Pascal programs that use non-local gotos may also fail. Such programs should also be marked as exempt, using the new chatr utility as follows:

$chatr +ed enable priv_pascal_executable
  current values:
     64-bit COFF executable
     execute from data: disabled
  new values:
     64-bit COFF executable
     execute from data: enabled

This example demonstrates the failing behavior to expect for privileged processes if you set execute_data to 53 but do not run the /usr/sbin/javaexecutedata script. Other Java applications run with privilege may exhibit different (but still failing) behavior.

# java -classic -jar SwingSet2.jar
Process 1185 Invalid write/execute mmap call denied.
Process 1185 Invalid write/execute mmap call denied.
Process 1185 Invalid write/execute mmap call denied.
(...)
Process 1185 Invalid write/execute mmap call denied.
Process 1185 Invalid write/execute mmap call denied.
**Out of memory, exiting**

This example demonstrates the failing behavior to expect for privileged processes if you set execute_data to 37 but do not run the /usr/sbin/javaexecutedata script. Other Java applications run with privilege may exhibit different (but still failing) behavior.

# java -classic -jar SwingSet2.jar
Process 1185 Invalid write/execute mmap call modified.
Process 1185 Invalid write/execute mmap call modified.
 (...)
Process 1185 Invalid write/execute mmap call modified.
Process 1185 Invalid write/execute mmap call modified.
Process 1185 Invalid write/execute mmap call modified.
SIGSEGV   11*  segmentation violation
(...)
Abort (core dumped)

1.17.3    Security Vulnerability

A potential security vulnerability has been discovered, where under certain circumstances, system integrity may be compromised. This may be in the form of improper file access. HP has corrected this potential vulnerability.

In addition the following changes were made:

Updated sh, csh and ksh

The updated shells in this kit all implement the following changes when processing shell inline input files:

sh noclobber option and >| , >>| constructs added

A noclobber option similar to that already available with csh and ksh has been added to the Bourne shell.

When the noclobber option is used (set -C), the shell behavior for the redirection operators > and >> changes as follows:

ksh noclobber behavior clarified

For > with noclobber set, ksh returns an error rather than overwrite an existing file. If the file name is actually a symlink, the presence of the symlink satisfies the criteria file exists whether or not the symlink target exists, and ksh returns an error. The >| construct will suppress these checks and create the file.

For >> with noclobber set, output is appended to the tail of an existing file. If the file name is actually a symlink to a non-existent file, ksh returns an error.

csh noclobber behavior clarified

For > with noclobber set, csh returns an error rather than overwrite an existing file. If the file name is actually a symlink, the presence of the symlink satisfies the criteria file exists whether or not the symlink target exists, and csh returns an error. The >! construct will suppress these checks and create the file.

1.17.4    New sys_check Reference Page

NAME
 
  sys_check, runsyscheck - Generates system configuration information and
  analysis
 
SYNOPSIS
 
  /usr/sbin/sys_check [options...]
 
OPTIONS
 
  -all
      Lists all subsystems, including security information and setld inven-
      tory verification.  This option may take a long time to complete.
 
  -debug
      Outputs debugging information to stderr (standard error output).
 
  -escalate [ xx ]
      Creates escalation files for reporting problems to your technical sup-
      port representative. This option produces one file,
      TMPDIR/escalate.tar unless there are crash dump files; if so,
      it also creates two other files: TMPDIR/escalate_vmunix.xx.gz
      and TMPDIR/escalate_vmcore.xx.gz. If you use the -escalate
      option, sys_check runs with the -noquick option and collects the output
      in the escalate.tar file. Optionally, you can specify a number (xx)
      with the -escalate option to define a crash number.
 
      See also the ENVIRONMENT VARIABLES section for information on how you
      can set the value of TMPDIR.
 
  -evm
      Generates Event Manager (EVM) warnings. When EVM is configured, warn-
      ings are posted as EVM events identified by the string
      sys.unix.sys_check.warning. Six levels of priority ranging from 0-500
      are used, as follows:
 
        +  0 - Information only.
 
        +  100 - Note
 
        +  200 - Tuning Note
 
        +  300 - Tuning Suggestion
 
        +  400 - Operational        
 
+  500 - Warning
 
  -frame
      Produces frame HTML output, which consists of three files:
      sys_checkfr.html, sys_checktoc.html, and sys_check.html (unless you
      specify a different file name with the -name option).  This option
      cannot be used with the -nohtml option. The following options are
      available for use with the -frame option:
 
      -name name
          Specifies the name to use for the frame files output.  The default
          name is sys_check.
 
      -dir name
          Sets the directory for the frames output.  Used only with the
          -frame option.  The default is the current directory (.).
 
  -help or (-h)
      Outputs help information.
 
  -nohtml
      Produces text output, consisting of one text file, instead of the
      default HTML output. This option cannot be used with the -frame option.
 
  -noquick
      Outputs configuration data and the setld scan.  Excludes security
      information.
 
  -perf
      Outputs only performance data and excludes configuration data. This
      option takes less time to run than others.
 
  -v  Displays the sys_check version number.
 
  -warn
      Executes only the warning pass. This option takes less time to run than
      other options.
 
  -nowarn
      Executes only the data gathering pass.
 
DESCRIPTION
 
  The sys_check utility is a system census and configuration verification
  tool that is also used to aid in diagnosing system errors and problems. Use
  sys_check to create an HTML report of your system's configuration (software
  and hardware). The size of the HTML output that is produced by the
  sys_check utility is usually between .5 MB and 3 MB.
 
  The sys_check utility also performs an analysis of operating system parame-
  ters and attributes such as those that tune the performance of the system.
  The report generated by sys_check provides warnings if it detects problems
  with any current settings. Note that while sys_check can generate hundreds
  of useful warnings, it is not a complete and definitive check of the health
  of your system. The sys_check utility should be used in conjunction with
  event management and system monitoring tools to provide a complete overview
  and control of system status. Refer to the EVM(5) reference page for infor-
  mation on event management. Refer to the System Administration guide for
  information on monitoring your system.
 
  When used as a component of fault diagnosis, sys_check can reduce system
  down time by as much as 50% by providing fast access to critical system
  data. It is recommended that you run a full check at least once a week to
  maintain the currency of system data. However, note that some options will
  take a long time to run and can have an impact on system performance.  You
  should therefore choose your options carefully and run them during off-peak
  hours. As a minimum, perform at least one full run (all data and warnings)
  as a post-configuration task in order to identify configuration problems
  and establish a configuration baseline. The following table provides guide-
  lines for balancing data needs with performance impact.
 
  ___________________________________________________________________________
 Option           Run time           Performance       Recommended At
                                     impact
___________________________________________________________________________
-warn, -perf      Short.             Minimal.          Regular updates,
                                                       at least weekly
null - no         Medium, perhaps    Some likely at    Run at least once
options           15 to 45 minutes   peak system use.  post-installation
selected.         depending on                         and update
                  processor.                           after major
                                                       configuration
                                                       changes. Update
                                                       your initial
                                                       baseline and
                                                       check warnings
                                                       regularly.
-noquick, -all,   Long, perhaps 45   Very likely at    Use only when
-escalate.        minutes on fast,   peak use.         troubleshooting
                  large systems to                     a system problem
                  hours on low-end                     or escalating
                  systems.                             a problem to your
                                                       technical support
                                                       representative.
  ___________________________________________________________________________

  You can run some sys_check options from the SysMan Menu or the
  /usr/sbin/sysman -cli command-line interface. Choose one of the following
  options from the Menu:
 
       >- Support and Services
           | Create escalation report [escalation]
           | Create configuration report [config_report]
 
  Alternatively, use the config_report and escalation accelerators from the
  command line. Note that the escalation option should only be used in con-
  junction with a technical support request.
 
  The runsyscheck script will run sys_check as a cron task automatically if
  you do not disable the crontab entry in /var/spool/cron/crontabs/root.
  Check for the presence of an automatically generated log file before you
  create a new log, as it may save time.
 
  When you run the sys_check utility without command options, it gathers con-
  figuration data excluding the setld scan and the security information and
  displays the configuration and performance data by default. It is recom-
  mended that you do this at least once soon after initial system configura-
  tion to create a baseline of system configuration, and to consider perform-
  ing any tuning recommendations.
 
  On the first run, the sys_check utility creates a directory named
  /var/recovery/sys_check. On subsequent runs, sys_check creates additional
  directories with a sequential numbering scheme:
 
    +  The previous sys_check directory is renamed to
       /var/recovery/sys_check.0 while the most recent data (that is, from
       the current run) is always maintained         in
       /var/recovery/sys_check.
 
    +  Previous sys_check directories are renamed with an incrementing exten-
       sion; /var/recovery/sys_check.0 becomes /var/recovery/sys_check.1, and
       so on, up to /var/recovery/sys_check.5.
  There is a maximum of seven directories. This feature ensures that you 
  always have up to seven sets of data automatically. Note that if you only
  perform a full run once, you may want to save the contents of that direc-
  tory to a different location.
 
  Depending on what options you choose, the /var/recovery/sys_check.* 
  directories will contain the following data:
 
    +  Catastrophic recovery data, such as an etcfiles directory, containing
       copies of important system files. In this directory, you will find
       copies of files such as /etc/group, /etc/passwd, and /etc/fstab.
 
    +  Formatted stanza files and shell scripts and that you can optionally
       use to implement any configuration and tuning recommendations gen-
       erated by asys_check run. You use the sysconfigdb command or run the
       shell scripts to implement the stanza files. See the sysconfigdb(8)
       reference page for more information.
 
NOTES
 
  You must be root to invoke the sys_check utility from the command line;
  you must be root or have the appropriate privileges through Division of
  Privileges (DoP) to run Create Configuration Report and Create Escalation
  Report from the SysMan Menu. The sys_check utility does not change any sys-
  tem files.
 
  The sys_check utility is updated regularly. You can obtain the latest ver-
  sion of the sys_check utility from either of two sources:
 
    +  The most up-to-date version of the sys_check kit is located on the
       sys_check tool web site,
       http://www.tru64unix.compaq.com/sys_check/sys_check.html
 
    +  You can also obtain sys_check from the patch kit, see
       http://www.support.compaq.com/patches/.
 
  You should run only one instance of sys_check at a time. The sys_check
  utility prevents the running of multiple instances of itself, provided that
  the value of the TMPDIR environment variable is /var/tmp, /usr/tmp, /tmp,
  or a common user-defined directory.  This avoids possible collisions when
  an administrator attempts to run sys_check while another administrator is
  already running it. However, no guarantees can be made for the case when
  two administrators set their TMPDIR environment variables to two different
  user-defined directories (this presumes that one administrator does not
  choose /var/tmp, /usr/tmp, or /tmp).
 
  The sys_check utility does not perform a total system analysis, but it does
  check for the most common system configuration and operational problems on
  production systems.
 
  Although the sys_check utility gathers firmware and hardware device revi-
  sion information, it does not validate this data.  This must be done by
  qualified support personnel.
 
  The sys_check utility uses other system tools to gather an analyze data. At
  present, sys_check prefers to use DECevent and you should install and con-
  figure DECevent for best results.
 
  If DECevent is not present, the sys_check utility issues a warning message
  as a priority 500 EVM event and attempts to use uerf instead. In future
  releases, Compaq Analyze will also be supported on certain processors.
 
  Note that there are restrictions on using uerf, DECevent and Compaq Analyze
  that apply to:
 
    +  The version of UNIX that you are currently using.
 
    +  The installed version of sys_check.
 
    +  The type of processor.
 
EXIT STATUS
 
  The following exit values are returned:
 
  0   Successful completion.
 
  >0  An error occurred.
 
LIMITATIONS
 
  DECevent or Compaq Analyze may not be able to read the binary error log
  file if old versions of DECevent are being used  or if the binary.errlog
  file is corrupted.  If this problem occurs, install a recent version of
  DECevent and, if corrupted, recreate the binary.errlog file.
 
  HSZ controller-specific limitations include the following:
 
  HSZ40 and HSZ50 controllers:
      The sys_check utility uses a free LUN on each target in order to com-
      municate with HSZ40 and HSZ50 controllers. To avoid data gathering
      irregularities, always leave LUN 7 free on each HSZ SCSI target for
      HSZ40 and HSZ50 controllers.
 
  HSZ70, HSZ80 and HSG80 controllers:
      The sys_check utility uses a CCL port in order to communicate with
      HSZ70 controllers. If a CCL port is not available, sys_check will use
      an active LUN.  To avoid data gathering irregularities, enable the CCL
      port for each HSZ70 controller.
 
  HSV controller-specific limitations include the following:
 
      The sys_check utility uses the SANscript utility (sssu) to collect data
      from the Enterprise controller.  This utility is included with the
      Enterprise Package Kit. Please install this utility in /usr/lbin and
      ensure that it has execute permissions.
 
      The sys_check utility cannot dynamically determine the SAN appliance or
      appliances used to manage your Enterprise storage.To do so, create the
      file /etc/enterprise.txt with the element name, the user name, and the
      password (separated by colons) of the SAN appliance as shown below;
      these values may contain embedded spaces. Set the permissions of this
      file to 600.
           element:user:password
           element 1:user 1:password
 
  The sys_check utility attempts to check the NetWorker backup schedule
  against the /etc/fstab file.  For some older versions of Networker, the
  nsradmin command contains a bug that prevents sys_check from correctly
  checking the schedule.  In addition, the sys_check utility will not
  correctly validate the NetWorker backup schedule for TruCluster services.
 
EXAMPLES
 
   1.  The following command creates escalation files that are used to report
       problems to your technical support organization:
            # sys_check -escalate
 
   2.  The following command outputs configuration and performance informa-
       tion, excluding security information and the setld inventory, and pro-
       vides an analysis of common system configuration and operational prob-
       lems:
            # sys_check > file.html
 
   3.  The following command outputs all information, including configura-
       tion, performance, and security information and a setld inventory of
       the system:
            # sys_check -all > file.html
 
   4.  The following command outputs only performance information:
            # sys_check -perf > file.html
 
   5.  The following command provides HTML output with frames, including con-
       figuration and performance information and the setld inventory of the
       system:
            # sys_check -frame -noquick
 
   6.  The following command starts the SysMan Menu config_report task from
       the command line:
            # /usr/sbin/sysman config_report
 
       Entering this command invokes the SysMan Menu, which prompts you to
       supply the following optional information:
 
         +  Save to (HTML) - A location to which the HTML report should be
            saved, which is /var/adm/hostname_date.html by default.
 
         +  Export to Web (Default) - Export the HTML report to Insight
            Manager. Refer to the System Administration for information on
            Insight Manager.
 
         +  Advanced options - This option displays another screen in which
            you can choose a limited number of run time options. The options
            are equivalent to certain command line options listed in the
            OPTIONS section.
 
            In this screen, you can also specify an alternate temporary
            directory other than the default of /var/tmp.
 
         +  Log file - The location of the log file, which is
            /var/adm/hostname_date.log by default.
 
   7.  The following is an example of a stanza file advfs.stanza in
       /var/recovery/sys_check.*:
            advfs:
            AdvfsCacheMaxPercent=8
 
   8.  The following is an example of a shell script apply.kshin
       /var/recovery/sys_check.*:
            cd /var/cluster/members/member/recovery/sys_check/
            llist="advfs.stanza
            vfs.stanza "
            for stf in $llist; do
            print " $stf "
                    stanza=`print $stf | awk -F . '{print $1 }'`
            print "/sbin/sysconfigdb -m -f $stf $stanza"
                    /sbin/sysconfigdb -m -f $stf $stanza
            done
            print "The system may need to be rebooted for these
            changes to take effect"
 
ENVIRONMENT VARIABLES
 
  The following environment variables affect the execution of the sys_check
  utility. Normally, you only change these variables under the direction of
  your technical support representative, as part of a fault diagnosis pro-
  cedure.
 
  TMPDIR
      Specifies a default parent directory for the sys_check working sub-
      directory, whose name is randomly created; this working subdirectory is
      removed when sys_check exits. The default value for TMPDIR is /var/tmp.
 
  LOGLINES
      Specifies the number of lines of log file text that sys_check includes
      in the HTML output.  The default is 500 lines.
 
  BIGNUMFILE
      Specifies the number of files in a directory, above which a directory
      is considered excessively large.  The default is 15 files.
 
  BIGFILE
      Specifies the file size, above which a file is considered excessively
      large. The default is 3072 KB.
 
  VARSIZE
      Specifies the minimum amount of free space that sys_check requires in
      the TMPDIR directory.  The default is 15 MB and should not be reduced.
      The sys_check utility will not run if there is insufficient disk space.
 
  RECOVERY_DIR
      Specifies the location for the sys_check recovery data.  The default is
      /var/recovery.  The sys_check utility automatically cleans up data from
      previous command runs.  The typical size of the output generated by
      each sys_check utility run is 400 KB.  This data may be useful in
      recovering from a catastrophic system failure.
 
  ADHOC_DIR
      Specifies the location at which sys_check expects to find the text
      files to include in the HTML output.  The default is the /var/adhoc
      directory.
 
  TOOLS_DIR
      Specifies the location at which sys_check expects to find the binaries
      for the tools that it calls.  The default is /usr/lbin.
 
FILES
 
  /usr/sbin/sys_check
      Specifies the command path.
 
                                       Note
 
         This file may be a symbolic link.
 
  /usr/lbin/*
      Various utilities in this directory are used by sys_check.
 
                                       Note
 
         These files may be symbolic links.
 
  The sys_check utility reads many system files.
 
SEE ALSO
 
  Commands: dop(8), sysconfigdb(8), sysman_cli(8), sysman_menu(8)
 
  Miscellaneous: EVM(5), insight_manager(5)
 
  Books: System Administration, System Tuning
 

1.17.5    tar/pax/cpio Behavior

This is regarding the behavior of tar/pax/cpio, when a slash (/) is specified at the end of an argument. While extracting or listing an archive, if a slash (/) is present at the end of an argument (for example, tar xvf foo.tar dir1/ or tar tvf foo.tar dir1/), then it only acts upon that particular directory and not the contents in the directory. If multiple slashes are used while creating an archive (for example, tar cvf foo.tar dir1/////////), previously all these slashes were put in the archive header. Now it will put only one slash for any directory entry in the header. If a single slash is specified while creating the archive, it still picks up all the contents as usual.

The pax and cpio commands behave in a similar way.

1.17.6    Changes to rexecd Reference Page

This patch contains changes to the rexecd reference page.

OPTIONS
 
  -s  Causes rexecd to check for the ptys keyword in the /etc/securettys file
      and to deny execution of the request if it is from root and on a pseudoterminal.
 
DESCRIPTION
 
   6.  The rexecd server then validates the user as is done at login time
       and, if started with the -s option, verifies that the /etc/securettys
       file is not setup to deny the user.  If the authentication was suc-
       cessful, rexecd changes to the user's home directory, and establishes
       the user and group protections for the user.  If any of these steps
       fail, the connection is aborted with a diagnostic message returned.

1.17.7    mountd Reference Page Update

The following is an update for the mountd reference page.

SYNOPSIS
        mountd [-d] [-i] [-n] [-s] [-r] [-R] [exportsfile]
 
FLAGS
...
  -r    Have mountd listen for requests on a reserved port.  This is the default behavior.
 
  -R    mountd may listen on an unreserved port.

1.17.8    UFS Delayed Metadata mount Option

This new mount option allows for disabling synchronous metadata writes on a specified file system. The new mount option name is delayed.

To maintain the file system's consistency, UFS metadata (such as inode, directory, and indirect blocks) is updated synchronously by default.

Metadata updates are typically performed synchronously to prevent file system corruption after a crash. The trade-off for this file system integrity, however, is performance. In some cases, such as a file system serving as a cache, performance (faster metadata update) is more important than preserving data consistency across a system crash; for example, files under /tmp or Web proxy servers such as Squid.

This means two things. One is that multiple updates to one block becomes only one block write, as opposed to multiple writes of the same block with traditional synchronous metadata update. The other is that users can experience much better responsiveness when they run metadata intensive applications because metadata writes will not go out to the disk immediately while users get their prompt back as soon as the metadata updates are queued.

This delayed option should not be used on the / or /usr file systems. It should be used only on file systems that do not need to survive across a system crash.

To enable the delayed option, run:

mount -o delayed

or

mount -u -o delayed

1.17.9    3DLabs Oxygen VX1 Graphics Card

This patch provides the driver support for the 3DLabs Oxygen VX1 graphics card. In order to obtain full support for this graphics card, you must also select Patch 1331.00, which is the X server portion of the patch.

If you have a system with this new graphics card, you will need to reconfigure and rebuild the kernel after installing this patch.

To reconfigure and rebuild the kernel, follow these steps:

  1. Shut down the system:

    # /usr/sbin/shutdown -h now

  2. Boot genvmunix to single-user mode:

    >>> boot -fi genvmunix -fl s

  3. After the system boots to single-user mode, mount the file systems, run the update command, and activate the swap partition:

    # sbin/bcheckrc

    # /sbin/update

    # /sbin/update

  4. Run doconfig to create a new kernel configuration file and rebuild the kernel:

    # /usr/sbin/doconfig

    Note

    Do not specify the -c option to doconfig. If you do, doconfig will use the existing kernel configuration file which will not have the appropriate controller entry for the 3DLabs Oxygen VX1 graphics card.

  5. Save the old /vmunix file and move the new kernel to /vmunix.

  6. Shut down the system:

    # /usr/sbin/shutdown -h now

  7. Boot the new kernel:

    >>> boot

If you remove this patch from your system after you have rebuilt the kernel to incorporate support for the 3DLabs Oxygen VX1 graphics card as described you will need to rebuild the kernel again to restore generic VGA graphics support. To do this, follow the steps given previously. The doconfig utitlity running on the original, unpatched genvmunix will not recognize the 3DLabs Oxygen VX1 graphics card and will include generic VGA graphics support in the resulting kernel.

1.17.10    PCI To Ethernet/Graphics Combo Adapter (3X-DEPVD-AA)

This patch provides the driver support for the PCI To Ethernet/Graphics Combo Adapter (3X-DEPVD-AA) (also known as the ITI6021E Fast Ethernet NIC 3D Video Combination Adapter, InterServer Combo, or JIB). To obtain full support for the PCI To Ethernet/Graphics Combo Adapter (3X-DEPVD-AA), you must also select Patch 1326.00, which is the X server portion of the patch.

1.17.11    DEGPA-TA Gigabit Ethernet Device

This patch provides support for DEGPA-TA (1000BaseT) Gigabit Ethernet device. If you have a system with this new Ethernet device, you will need to reconfigure and rebuild the kernel after installing this patch.

To do this, follow these steps:

  1. Shut down the system:

    # /usr/sbin/shutdown -h now

  2. Boot genvmunix to single-user mode:

    >>> boot -fi genvmunix -fl s

  3. After the system boots to single-user mode, mount the file systems, run the update command, and activate the swap partition:

    # /sbin/bcheckrc

    # /sbin/update

    # /sbin/swapon -a

  4. Run doconfig to create a new kernel configuration file and rebuild the kernel:

    # /usr/sbin/doconfig

    Note

    Do not specify the -c option to doconfig. If you do, doconfig will use the existing kernel configuration file which will not have the appropriate controller entry for the new graphics card.

  5. Save the old /vmunix file and move the new kernel to /vmunix.

  6. Shut down the system:

    # /usr/sbin/shutdown -h now

  7. Boot the new kernel:

    >>> boot

If you remove this patch from your system after you have rebuilt the kernel to incorporate support for the new Ethernet card as described previously, you will need to rebuild the kernel. To do this, follow the steps given previously. The doconfig running on the original, unpatched genvmunix will not recognize the new Ethernet driver.

1.17.12    Intelligent I/O Disks with mnemonic ri

If Patch 1493.00 is installed on a system with Intelligent I/O (I2O) disks that use the device identifier, mnemonic ri, Patch 1386.00 should also be installed if the user uses the diskconfig utility. Without Patch 1386.00, the diskconfig utility will not recognize or configure the Intelligent I/O (I2O) disks.

1.17.13    Virtual Memory Problem

Installing Patch 1493.00 on a system running Tru64 UNIX Versions 4.0D through 4.0F may cause the system to crash if you run an application that maps a large number of file system objects into virtual memory using the mmap(2) function call. This problem may occur with large threaded applications, such as the Netscape Enterprise Web Server, which use this technique to improve performance and scalability.

To avoid this problem, disable the kernel's virtual memory (vm:) subsystem attribute vm-map-index-enable after installing the patch and before rebooting the system. The attribute is disabled when its value is set to zero at boot time.

Enter the following commands at the shell prompt (when logged in as root) to add or modify the vm-map-index-enable attribute entry in the /etc/sysconfigtab file:

su root
cat << _EOF_ > /tmp/vm.stanza
> vm:
> vm-map-index-enabled=0
> _EOF_
sysconfigdb -m -f /tmp/vm.stanza vm
$rm -f /tmp/vm.stanza
reboot

See the sysconfigdb(8) reference page for additional information.

This problem will be fixed in the next release of the patch kits.

1.17.14    PCI To Ethernet/Graphics Combo Adapter

This patch provides support for the PCI To Ethernet/Graphics Combo Adapter (3X-DEPVD-AA). If you have a system with this adapter, you will need to reconfigure and rebuild the kernel after installing this patch. To do this, follow these steps:

  1. Shut down the system:

    # /usr/sbin/shutdown -h now

  2. Boot genvmunix to single-user mode:

    >>> boot -fi genvmunix -fl s

  3. After the system boots to single-user mode, mount the file systems, run the update command, and activate the swap partition:

    # /sbin/bcheckrc

    # /sbin/update

    # /sbin/swapon -a

  4. Run doconfig to create a new kernel configuration file and rebuild the kernel:

    # /usr/sbin/doconfig

    Note

    Do not specify the -c option to doconfig. If you do, doconfig will use the existing kernel configuration file, which will not have the appropriate controller entry for the PCI To Ethernet/Graphics Combo Adapter.

  5. Save the old /vmunix file and move the new kernel to /vmunix.

  6. Shut down the system:

    # /usr/sbin/shutdown -h now

  7. Boot the new kernel:

    >>> boot

If you remove this patch from your system after you have rebuilt the kernel, to incorporate support for the PCI To Ethernet/Graphics Combo Adapter as previously described, you will need to rebuild the kernel again to restore generic VGA graphics support. To do this, follow the steps previously given.

If doconfig is running on the original kernel, the unpatched genvmunix will not recognize the PCI To Ethernet/Graphics Combo Adapter and will include generic VGA graphics support in the resulting kernel.

1.17.15    Pleiades II Switches

This patch fixes a problem with the Pleiades II switches, where the switch ports would consume target IDs on the adapter's SCSI bus.

To determine if target IDs are being consumed by the switch, look at the contents of the /etc/emx.info file. If a FC Port Name exists that does not start with 0x0050 (a HSG80) or a 0x0010 (a KGPSA), it is most likely a switch entry consuming the target ID (or an unsupported FC device exists on the fabric).

To remove the switch entry from the emx target ID mappings, in addition to installing this patch, the /sys/data/emx_data.c file must be modified to contain the switch entry to be deleted (by setting the target ID to -1). See the reference pages for emx and emx_data.c for instructions on modifying the emx_data.c file. After the emx_data.c file has been modified, the kernel must be regenerated and the resulting kernel booted.

1.17.16    I/O Throttling/Smooth Sync

Note

Smooth Sync is for UNIX File System (UFS) only.

Note

To activate I/O Throttling/Smooth Sync, you must install Patch 299.00.

The new mount options are smsync2 and throttle. The smsync2 option enables an alternate smsync policy in which dirty pages do not get flushed until they have been dirty and idle for the smoothsync age period (the default 30 is seconds). The default policy is to flush dirty pages after being dirty for the smoothsync age period, regardless of continued modifications to the page. Note that mmaped pages always use this default policy, regardless of the smsync2 setting.

For example, change the /etc/fstab entries from:

/dev/rz12e /mnt/test ufs rw 0 2

to:

/dev/rz12e /mnt/test ufs rw,smsync2,throttle 0 2

Note

If you choose not to use smsync2 (which does not affect mmap buffers), remove the smsync2 option from the previous string.

Append any tuning changes to /etc/sysconfigtab. See the TUNING notes that follow for a description of the new io-throttle-shift and io-throttle-maxmzthruput tunables. These tunables are configured in the vfs stanza. The following three lines are an example:

vfs:

io-throttle-shift = 1

io-throttle-maxmzthruput = 1

When removing this patch, follow these steps:

  1. Remove the lines added in the previous example to /etc/inittab.

  2. Remove any additions to /etc/fstab you may have made (see previous instructions).

Failure to remove /etc/inittab and /etc/fstab modifications may result in unknown attribute messages, particularly upon system reboot.

TUNING

The purpose of this patch is to minimize system stalls resulting from a heavy system I/O load. This patch introduces a smoothsync approach to writing delayed I/O requests and introduces I/O throttling.

Using smoothsync allows each dirty page to age for a specified time period before getting pushed to disk. This allows more opportunity for frequently modified pages to be found in the cache, which decreases the net I/O load. Also, as pages are enqueued to a device after having aged sufficiently, as opposed to getting flushed by the update daemon, spikes are minimized in which large numbers of dirty pages are locked on the device queue.

I/O throttling further addresses the concern of locking dirty pages on the device queue. It enforces a limit on the number of delayed I/O requests allowed to be on the device queue at any point in time. This allows the system to be more responsive to any synchronous requests added to the device queue, such as a read or the loading of a new program into memory. This may decrease the duration of process stalls for specific dirty buffers, as pages remain available until placed on the device queue.

The relevant tunable variables are:

smoothsync-age

This variable can be adjusted from 0 (off) up to 300. This is the number of seconds a page ages before becoming eligible for being flushed to disk via the smoothsync mechanism. A value of 30 corresponds to the "guarantee" provided by the traditional UNIX update mechanism. Increasing this value increases the exposure of lost data should the system crash, but can decrease net I/O load (to improve performance) by allowing the dirty data to remain in cache longer. In some environments, any data that is not up to date is useless; these are prime candidates for an increased smoothsync-age value. The default value of smoothsync-age is 30.

io-throttle-shift

The greater the number of requests on an I/O device queue, the longer the time required to process those requests and make those pages and device available. The number of concurrent delayed I/O requests on an I/O device queue can be throttled by setting the io-throttle-shift tunable. The throttle value is based on this tunable and the calculated I/O completion rate. The throttle value is proportional to the time required to process the I/O device queue. The correspondences between io-throttle-shift values and the time to process the device queue are:

io-throttle-shift  time to process device queue (sec)
-------------------------------------------------------------------      -2                   0.25
      -1                   0.5
       0                   1
       1                   2
       2                   4

For example, an io-throttle-shift value of 0 corresponds to accommodating 1 second of I/O requests. The valid range for this tunable is [-4..4] (not all values are shown in the previous table; you can extrapolate). The default value of io-throttle-shift is 1. Environments particularly sensitive to delays in accessing the I/O device might consider reducing the io-throttle-shift value.

io-maxmzthruput

This is a toggle that trades off maximizing I/O throughput against maximizing the availability of dirty pages. Maximizing I/O throughput works more aggressively to keep the device busy, but within the constraints of the throttle. Maximizing the availability of dirty pages is more aggressive at decreasing stall time experienced when waiting for dirty pages.

The environment in which you might consider setting io-maxmzthruput off (0) is one in which I/O is confined to a small number of I/O-intensive applications, such that access to a specific set of pages becomes more important for overall performance than does keeping the I/O device busy. The default value of io-maxmzthruput is 1. Environments particularly sensitive to delays in accessing sets of frequently used dirty pages might consider setting io-maxmzthruput to 0.

1.17.17    Granularity Hint Regions Restriction Removal

This patch removes a Granularity Hint Regions (also called GH chunks) restriction which may be encountered on AlphaServerTMTM DS20 and ES40 systems running the Tru64 UNIX Version 4.0F release. This restriction can reduce performance for certain database applications.

The following error message on the system's console terminal (also logged in /var/adm/messages) indicates possible performance loss for applications using GH chunks:

gh_chunks value of # invalid

where # is a number that varies depending on memory size.

To remove the GH chunks restriction, you need to modify your target kernel configuration file (and rebuild the kernel) and change the state of a console firmware environment variable. To make these changes, follow these steps:

  1. Follow the steps in Section 4.5.3 of the Guide to System Adminstration, with the following exceptions:

    In step 4, edit the configuration file and add the following line immediately before the first line starting with makeoptions:

    makeoptions LOADADDR="fffffc0000430000"

    In step 6, instead of /usr/sbin/shutdown -r now, add the following line:

    /usr/sbin/shutdown -h now

  2. Check the console firmware version:

    P00>>>show version

    If the version is not Version 5.5 or later, you need to upgrade your firmware to Version 5.5 or later.

  3. Change the value of the console_memory_allocation environment variable from old to new and reset the system:

    P00>>>set console_memory_allocation new

    P00>>>init

  4. Boot the new kernel:

    P00>>>boot

    If the new kernel fails to boot use one of the following procedures:

    P00>>>set console_memory_allocation old

    P00>>>init

    P00>>>boot -fi vmunix.save

    or:

    P00>>>boot -fi genvmunix

    Correct the error and repeat the previous procedure.

Additional Information

Note

If you customized your existing configuration file, doconfig allows you to edit the new configuration file so you can restore your customizations.