Patch Name:  PHKL_10873

Patch Description: s700 10.10 LVM, UFS, VM, pstat(2) cumulative patch

Creation Date: 97/04/25

Post Date:  97/05/03

Hardware Platforms - OS Releases:
        s700: 10.10

Products: N/A

Filesets:
        LVM.LVM-KRN OS-Core.CORE-KRN ProgSupport.C-INC

Automatic Reboot?: Yes

Status: General Superseded

Critical:
        No (superseded patches were critical)
        PHKL_10201: PANIC
        PHKL_8393: HANG
                This patch adds a new feature to LVM.
                The feature is provided to customers
                who need the option to limit the time LVM waits
                for powerfailed disks in given logical volumes
                to return.
        PHKL_8292: HANG
        PHKL_8201: HANG
        PHKL_8082: ABORT
        PHKL_7868: PANIC
        PHKL_7458: PANIC
        PHKL_7301: PANIC
        PHKL_7244: OTHER
                Performance problems caused by excessive protection
                id faults
        PHKL_7187: CORRUPTION
        PHKL_7167: ABORT
        PHKL_7164: ABORT
        PHKL_7050: PANIC
        PHKL_6969: PANIC
        PHKL_6748: HANG
        PHKL_6484: PANIC CORRUPTION

Path Name:  /hp-ux_patches/s700/10.X/PHKL_10873

Symptoms:
        PHKL_10873:
        HP-UX doesn't log any error when a user process:
            1. encounters a swap space shortage
            2. exceeds a system resource limitation
        Processes are terminated but the errors were not
        recorded in any of the system log files.

        PHKL_10270:
        The total length (including terminators) of all argv and
        env strings passed to a newly-EXECed process was 20480
        bytes.  If a greater length was detected, the exec() failed
        with E2BIG.

        PHKL_10201:
        System panic (data page fault) when debugging processes
        over an interruptable NFS mount point.

        PHKL_10103:
        Syslogd fills up file system.

        PHKL_9073:
        Applications using Memory Mapped Files were performing
        poorly when mapping thousands of pregions to the same file.
        The problem would mainly be noticed with shared (MAP_SHARED)
        and exclusive (MAP_FIXED with address in the process private
        data space) mappings.  This patch is required when using the
        Object Store database product from ODI.

        PHKL_8928:
        Unable to mprotect non-mmap(2) addresses.

        PHKL_8920:
        On hp-ux 9.04 (S800) and 10.x (S700/S800), large MP
        systems with a high switch rate result in unacceptable
        level of KI CPU overhead.  Moreover, the KI has the
        processor spinlock during this time with interrupts
        disabled!  We have observed on a 10.10 TPC benchmark
        system that enabling the swtch trace in the KI
        reduces TPC throughput by 10%.

        PHKL_8790:
        Running strings on a raw sar(1) output file can show some
        printable strings (sar ignores these).

        PHKL_8714:
        After call to pstat_getmsg(), all accesses to the message
        queue pstat_getmsg() was called hang.

        PHKL_8461:
        The directory entry for a file system object (FSO) will no
        longer be readable once the contents of that object have
        been deleted.

        This was not shipped as a separate patch.

        PHKL_8393:
        This change supports a new -t switch for lvchange allowing
        the administrator the option to limit the time lvm holds
        i/os to be retried on logical volumes when disks are
        powerfailed.
        Without using this option, LVM will hold the i/os as long
        as there is is one disk where the data resides which may
        eventually return.  Using this option would cause LVM to
        give up on the powerfailed disk and return i/o errors to
        the user application using the logical volume.  This
        feature is obviously not to be used indiscriminately.
        For many High Availability applications, having i/os
        held in kernel indefinitely is not acceptable.
        Most customers should not need to use the new switch.

        PHKL_8292:
        When multiple nfsd's access the same file simultaneously,
        they hang in a deadlock.

        PHKL_8201:
        MP system hangs during panic. The LED shows system staying
        at INIT CB0B. Machine needs to be TOC'ed to save the core
        dump.

        PHKL_8082:
        LVM may return I/O's with errors instead of sending them to
        an alternate link.  This patch also facilitates using
        "vgreduce -f" for physical volumes which have alternate
        links; without this patch "vgreduce -f" is not allowed on
        LVM disks with alternate links.

        PHKL_7868:
        lvreduce(1M) may cause a system panic, if it is used to
        reduce an lvol which was left inconsistent by a prior
        LVM operation.  lvreduce(1M) could not be used to remove
        lvols that were somehow corrupted, if it was, the command
        would cause a system panic.

        PHKL_7668:
        Several types of symptoms may occur:
            - logins on NFS clients may receive incorrect access on
              NFS servers
            - files from NFS servers may appear to be owned by the
              wrong logins on NFS clients
            - setuid and setgid binaries available on NFS servers
              may allow client logins to run with incorrect access

        PHKL_7458:
        "panic trap type 18" problem on HP-UX 10.X NFS file
        server with short file name file system.

        PHKL_7334:
        Panic during power failure recovery on non-UPS systems.

        PHKL_7301:
        System panic with "Data page fault" in set_purge_SIDS()
        when using mprotect(2):
           trap type 15, pcsq.pcoq = 0.249f0c, isr.ior = 0.3c
           panic: (display==0xb800, flags==0x0) Data page fault
              panic+0x10
              report_trap_or_int_and_panic+0x8c
              trap+0x72c
              set_purge_SIDS+0x0
              invalidate_protids+0xbc
              hdl_changerange+0x1e0
              hdl_mprotect+0x398
              do_mprotect+0x140
              foreach_pregion+0xe8
              mprotect+0x78
              syscall+0x1f4

        This panic was mostly observed on systems running SAP R/3.

        PHKL_7244:
        MP T500 running 10.01 or 10.10 with Informix database
        exhibits poor performance and high levels of
        protection id traps after reboot. Problem exhibits
        itself after stopping/restarting application until
        system rebooted. /usr was a JFS VxFS file system.

        PHKL_7187:
        lvmerge could merge an lvol back with all PEs marked as
        current and yet the syncing of stale LTGs had failed.
        lv_recover_ltg(k), which does the syncing, had no mechanism
        to return error to lv_table_reimage(k). lv_table_reimage(k)
        therefore returns success when this may not be the case.

        PHKL_7167:
        program with itimer gets SIGILL when debugger uses ptrace
        PT_SINGLE

        PHKL_7164:
        Performance suffers for sequential i/o with LVM and disk
        arrays with stripe depth > 64k.
        Edison ARM utilities (and diagnostic tools that require
        exclusive access to a device) fail reporting device busy
        (EBUSY) even when all volume groups accessing the device
        are deactivated.
        Edison ARM utilities (and diagnostic tools that require
        exclusive access to a device) fail reporting device busy
        (EBUSY) if the device was ever used as a Service Guard
        Cluster Lock disk.

        PHKL_7124:
        For very large /etc/passwd files, passwd command may return
        EDEADLK and print an error message about lockf deadlock
        detection.

        PHKL_7050:
        pvmove leads to panic: lv_reducelv extmap, when
        the mirrored logical volume contains unallocated
        physical extents (might caused by previous
        unsuccessful pvmove operation (kill -9).

        vgchange: Couldn't activate volume group "/dev/vgpam":
        Invalid argument

        when users is doing deactivate a volume group, the system
        panic with "lv_cache_deactivate inflight".  PHKL_6675 fixes
        some case and this patch fixes a special case.

        PHKL_6969:
        system panic when vgchange -a y VG with bad sectors
        on the bad block directory area.

        PHKL_6852:
        When a customer has a /etc/lvmtab which is out of data with
        running kernel, this will cause vgcfgbackup to fail.

        PHKL_6801:
        None.

        PHKL_6748:
        Rename deadlock:  This deadlock occurs in the following
        situation:  Process 1 is moving a directory to a new
        parent directory at the same time as Process 2 is doing a
        lookup on the new parent directory Process 1's directory
        is being moved into.  Both processes will sleep forever
        and all accesses to both directories will also sleep.

        PHKL_6653:
        None. This is a pstat enhancement.

        PHKL_6484:
        itrunc: no space panic when truncating a file with a hole
        in it on a full file system.  If the truncation makes the
        new end of the file fall into the middle of the hole, a
        disk block must be allocated for the end of the file, and if
        one can't be allocated, itrunc() would panic.  This fix has
        itrunc gracefully backout instead.

        Possibility of random file system corruption or data loss
        when removing ACLs or files with ACLs has also been fixed.

Defect Description:
        PHKL_10873:
        This patch provides support for logging of errors from
        memory management related system calls such as brk/sbrk, as
        well as handling error cases during stack growth.  Errors
        are logged to the system console (dmesg) and to syslog.  The
        variable mman_elog, which defaults to OFF, is used to
        control the logging.  This variable can be set through adb
        at a customer site to enable error logging.

        PHKL_10270:
        The internal buffer within the kernel was created with
        a length of 20480 bytes, with no provision for increasing
        its size.  This patch provides for up to 100 such buffers,
        with all but the first allocated only if required (that
        is, if more than 20480 bytes of argv/env information is
        found).  Thus, exec() now supports up to 2048000 bytes of
        argv/env information.

        PHKL_10201:
        When  debugging  processes over an  interruptable  NFS mount
        point there was a window during which a traced process could
        sleep in exec() while the debugger  would exit  clearing the
        traced bit and  freeing  the  ptrace  data  structure.  Upon
        wakeup, the no longer traced  process would panic the system
        trying to dereference a NULL pointer.

        PHKL_10103:
        msg_bufx was set to the value over MSG_BSIZE.

        PHKL_9073:
        The pregions list associated to a shared region was designed
        as a doubly-linked list thus providing a linear access to
        pregions in the list.  This design was not suited to deal
        with thousands of pregions and the doubly-linked list was
        replaced by a skip-list for faster access. Two other changes
        were required to deliver better performance: the algorithm
        to check the total virtual address space and the routine to
        locate the stack pregion were enhanced.

        PHKL_8928:
        Currently mprotect() restricts the addresses it will
        accept for protection.  Only those addresses returned
        from a call to mmap() can be used for mprotect().  However
        there are customers who need to mprotect addresses in
        the data, stack and shared memory segments; objects not
        created vi a call to mmap().  So mprotect() was opened
        to allow mprotect'ing on data, stack and shared memory
        objects.  Text is not allowed unless the executable is
        EXEC_MAGIC.

        PHKL_8920:
        The KI swtch trace generation code in the kernel walks
        all pregions in the vas of the swtched process.  PTC's MI
        and performance tools do not need rss values updated every
        context switch - the extra overhead is not worth the small
        increase in accuracy.

        It is sufficient to copy the pid's
        vas_t->va.prss+vas_t->va.rss (private + shared) value
        which is updated every 5 seconds by statdaemon.

        PHKL_8790:
        pstat_dynamic() allocates a buffer but fails to initialize
        it before using it.  Buffer ends up containing some garbage.
        This is a cosmetic defect only; sar ignores the
        uninitialized spaces.

        PHKL_8714:
        pstat_msginfo() calls msgconv() to convert the offset into
        a message queue pointer.  msgconv() was changed to not only
        do the conversion, but to lock the queue and return a
        pointer to the queue's lock.  pstat_msginfo() had not been
        changed to take into account msgconv()'s new behavior.

        PHKL_8461:
        The name of a file in a directory entry is not cleared when
        the file object itself is deleted (say, with rm(1)).  To
        demonstrate this:

        $ mkdir test
        $ cd test
        $ touch delete_me
        $ ls
        delete_me
        $ rm delete_me
        $ ll
        total 0
        $ strings .         # Examine strings in cwd.
              delete_me     # Filename is still in cwd entry.

        This was not shipped as a separate patch.

        PHKL_8393:
        LVM makes every effort to avoid returning an error to user
        applications.  LVM will hold onto an I/O to retry it later
        if there is even the smallest hope that the device will
        return.  If a disk simply does not respond and no bad
        writes made it to the media, LVM will hang onto the i/o as
        long as the disk does not respond with an indication that
        there was actually a bad write or read.  The patch
        provides a new feature that allows administrators
        the option of limiting the time lvm will wait for disks
        in an logical volume to return, and cause lvm to return
        i/os with EIO instead of hanging onto them indefinitely.

        PHKL_8292:
        ufs_bread(), called by nfs server routines, prematurely
        unlocks the inode while the caller still owns the buffer.
        This opens a window for another process to grab the inode
        lock. Deadlock occurs when the process owning the buffer
        tries to access the inode again and the process holding
        the inode waits for the buffer to be available before
        it can release the inode lock.

        The fix is to delay the inode unlocking in ufs_bread()
        until the inode is no longer needed.

        PHKL_8201:
        In 10.X, interrupt distribution is implemented to allow
        reassignment of interrupt processors to I/O interfaces
        for workload balancing. The assigned interrupt processor
        for an I/O interface may or may not be the system monarch
        depending on the the number of I/O cards and processors
        available.

        During a panic, if the panic processor is the system
        monarch, it will flush the buffer cache on its way down.
        If the interrupt of the disk it is syncing is serviced by
        one of the other processor(s), the I/O completion interrupt
        will not be received and the ISR will not be called
        because the other processor(s) are TOC'ed at this point.
        Without the ISR to signal biodone(), the biowait() sleeps
        forever.

        The fix is to add a timeout in the panic_boot path to break
        out from the hang in disk sync'ing and continue with the
        reboot.

        PHKL_8082:
        Without this patch LVM will not retry failed i/os on
        alternate links unless the error is one that denotes that
        the device is offline or powerfailed.  Other errors,
        are not retried on an alternate link and may cause LVM to
        report the error to users applications.  Typically,
        customers with unmirrored lvols using multiported devices
        like the HP3232 (Nike) disk array would see the problem
        when an EIO error is reported to LVM from the underlying
        device driver due to a device or driver problem.  In this
        situation LVM would report the EIO to user applications
        without trying any available alternate link.  Another
        problem this patch fixes allows reducing out physical
        volumes from a volume group when the device is not
        available and the device has links, formerly devices with
        links could not be removed if they were not available.

        PHKL_7868:
        The problem was that the kernel forced a panic whenever any
        inconsistency was found during an lvreduce.  For example,
        if a logical extent in an lvol referred to a physical
        extent that was not allocated, it would cause
        lvreduce(1M) to panic the system.  This occured even when
        the objective was to remove the offending lvol.
        This is a very rare occurance.

        PHKL_7668:
        A future HP-UX release will increase the value of MAXUID,
        providing for a greater range of valid UIDs and GIDs.  It
        will also introduce problems in mixed-mode NFS environments.

        Let "LUID" specify a machine running a version of HP-UX
        with large-UID capability.  Let "SUID" specify a machine
        with current small-UID capability.  The following problems
        may occur:

        LUID client, SUID server
            - Client logins with UIDs outside the server's range
              appear as the anonymous user.  However, the anonymous
              user UID is configurable, and is sometimes configured
              as the root user (in order to "trust" all client root
              logins without large-scale modifications to the
              /etc/exports file).  Thus, all logins with large UIDs
              on the client could be mapped to root on the server.
            - Files owned by the nobody user on the server will
              appear to be owned by the wrong user on the client.

        SUID client, LUID server
            - Files owned by large-UID logins on the server will
              appear to be owned by the wrong user on the client.
            - Executables with the setuid or setgid mode turned
              on will allow logins on the client to run as the
              wrong users.

        PHKL_7458:
        K200 HP-UX10.01 is the NFS file server.  "/db1" is exported.
        exportfs
        /db1    -anon=65534,root=g40
        /db2    -anon=65534,root=g40
        /home   -anon=65534,root=g40
        /usr/itl.obj -anon=65534,root=g40
        These are HFS file systems.  g40 HP-UX9.04 is the client.
        The customer executed NFS mount command on g40.
        1- mount k200:/db1/itloper /users/itloper/itl
        2- mount k200:/db1/itloper/itc /users/itloper/itc
        The system rebooted at step 2 by trap type 18.

        PHKL_7334:
        page reference traps were not correctly set on I/O pages.

        PHKL_7301:
        The code for processes Virtual Address Space duplication
        (used by fork) inserted pregions in the associated region
        lists before setting the VAS field va_proc.  This opened a
        time window where set_purge_SIDS() could dereference a
        proc pointer before it was actually set. The system would
        then trap and panic with a data page fault.

        The defect would occur when using mprotect(2), and this
        panic was mostly observed on systems running SAP R/3.

        PHKL_7244:
        We only allow a public mapping if we are mapping shared (and
        thus read-only for now) and if the file's modes meet our
        tests (no ACL, and mode at least r-xr-xr-x).

        In one case, /usr (where the shared libraries reside) on
        their system turns out to be a JFS file system.  JFS does
        not know about ACL and does not manipulate the va_acl bit in
        'struct vattr', when VOP_GETATTR() is called.  HFS on the
        other hand will set va_acl to 1 if that file has ACL and 0,
        if not.  Since, smmap() does not initialize the structure
        (on the stack) and calls VOP_GETATTR() and then looks at the
        va_acl bit, it can either be a 1 or a 0, randomly.  It is
        not correct for VM subsystem to assume all file systems
        support ACL and will correct set/reset the bit in the vattr
        structure as there could be third party file system (eg:
        JFS) that do not support it.

        When the libc.1 is first mmapp'ed, the smmap() code finds
        that va_acl is set (wrongly), it decides not to do public
        mapping (the region does not get the RHDL_MMAP_PUBLIC set)
        and so the protection id is set to the second quadrant space
        id of that process, instead of the public protection id of 0

        Since, the informix (oninit) processes have a lot of shared
        memory segments, each of which has an unique protection id,
        and constantly accesses the shared memory region and execute
        library code, the protection id (pid3 & pid4) is getting
        thrashed in the pid registers.  The instruction protection
        fault code is getting thrashed in the pid registers.  The
        instruction protection fault code (IMEM_PROT) does not make
        use of the cache (kept per processor) and always uses the
        trap (long) path to update the protection registers.  Hence,
        you see about 30-40% of the time in trap code.

        The following fix will ensure that the shared library text
        segments always get the public protection id.  This will cut
        down the number of protection faults seen in informix.

        PHKL_7187:
        lvmerge could merge an lvol back with all PEs marked as
        current and yet the syncing of stale LTGs had failed.
        lv_recover_ltg(k), which does the syncing, had no mechanism
        to return error to lv_table_reimage(k). lv_table_reimage(k)
        therefore returns success when this may not be the case

        PHKL_7167:
        See defect

        PHKL_7164:
        LVM user data was aligned to a 1k bound.  For sequential
        i/o directed to disk arrays which stripe the data, i/os
        with a buf size approaching the stripe depth of the device
        (64k for the Edison array) would require the device to
        perform two i/os for each i/o directed to the device.
        LVM was not always closing and releasing devices held when
        volume groups were deactivated or when a device was used
        as a Service Guard Cluster Lock disk.

        PHKL_7124:
        PHKL_6763 caused the kernel routine direnter() to return
        EDEADLK if it couldn't lock all the directories and files
        it needed to.  The change was made to fix a deadlock problem
        caused by moving directories, and it was thought that
        direnter() could only hit this state for the DE_RENAME
        function.  The problem can also be hit for large, popular
        files like /etc/passwd which are being linked to a new
        name.  The fix is to have ufs_link() retry direnter() if
        EDEADLK is returned, just as ufs_rename() did in the
        original patch.

        PHKL_7050:
        Customer were using pvmove command to move data from
        one disk to another.  For some reason, the mirrored
        logical volume to be moved contains unallocated
        physical extents.  system panic: lv_reducelv extmap

        For vgchange: Couldn't activate volume group problem, it is
        easily duplicatable following the replacement
        of a disk mech, or with a simply vgcfgrestore/vgchange
        combination to the right disks.
        - connect an HP-FL disk to system, then do the following:
          Create a volume group with this disk in it
          (automatically runs vgcfgbackup)
          pvcreate -f /dev/rdsk/c0t2d0
          mkdir /dev/vgdan
          mknod /dev/vgdan/group c 64 0x090000
          vgcreate /dev/vgdan /dev/dsk/c0t2d0

          then de-activate the vg: vgchange -a n /dev/vgdan
          restore the lvm data structures to the disk:
             vgcfgrestore -n /dev/vgdan /dev/rdsk/c0t2d0

          At this point, any further activation of the VG will fail:
            vgchange -a y /dev/vgdan
            vgchange: Couldn't activate volume group "/dev/vgpam":
            Invalid argument

        The lv_cache_deactivate inflight panics problem were:
        When user is doing deactivate a volume group, if mwc cache
        is not clean, the deactivation routine will detect it and
        panic.  When the last user LV (/dev/vgXX/lvol[1-n]) of a
        volume group is closing and the controlling LV
        (/dev/vgXX/group) still opened, it should also wait for
        all outstanding MWC cache writes to be finished.

        PHKL_6969:
        if a LVM disk have bad sectors on the bad block directory
        area. vgchange -a y VG will cause the panic.

        PHKL_6852:
        The customer has a T500 & HPUX10.01 and ran into the problem
        with "/etc/lvmtab is out of date with running kernel" when
        doing a vgcfgbackup.  The current PV value is set to 7,
        while there are only 6 disks in the /etc/lvmtab.

        PHKL_6801:
        None.

        PHKL_6748:
        Directory renaming code locks the new parent directory and
        reads the new parent directory buffer, thereby locking it.
        It then drops the new parent directory lock and later tries
        to reacquire it.  If a lookup process has gotten the new
        parent directory lock in the meantime and is sleeping
        waiting for the new parent directory buffer to be free,
        deadlock!

        PHKL_6653:
        No defect with the kernel. Although this patch does allow
        a patch to fix a defect with fuser -k to work.

        PHKL_6484:
        If truncating a file with a hole in the middle of it causes
        the new end of file to fall in the middle of a hole, a new
        disk block must be allocated to hold the end of file.  If
        the file system is full and a block can't be allocated,
        itrunc was panicing.

        There is a remote possibility that removing an Access
        Control List could cause file system data loss or
        corruption.  This defect was found during a code
        inspection, and has never (to our knowledge) been seen
        by any customer.

SR:
        1653096131 1653144071 1653153247 1653162669 1653166785
        1653202754 4701311381 4701311415 4701312934 4701314179
        4701314302 4701315317 4701317131 4701318352 4701319335
        4701319541 4701321554 4701321695 4701321711 4701330647
        4701334698 4701334839 4701336412 4701339945 5000697466
        5000714352 5003281469 5003300400 5003309385 5003314252
        5003314633 5003318667 5003323493 5003325506 5003330910
        5003334961 5003341925

Patch Files:
        /usr/conf/h/pstat.h
        /usr/conf/lib/libhp-ux.a(asm_excp.o)
        /usr/conf/lib/libhp-ux.a(asm_tlb.o)
        /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o)
        /usr/conf/lib/libhp-ux.a(dmem.o)
        /usr/conf/lib/libhp-ux.a(fmpyfadd.o)
        /usr/conf/lib/libhp-ux.a(fpudispatch.o)
        /usr/conf/lib/libhp-ux.a(hdl_fault.o)
        /usr/conf/lib/libhp-ux.a(hdl_mprotect.o)
        /usr/conf/lib/libhp-ux.a(hdl_policy.o)
        /usr/conf/lib/libhp-ux.a(hdl_trans.o)
        /usr/conf/lib/libhp-ux.a(kern_exec.o)
        /usr/conf/lib/libhp-ux.a(kern_fork.o)
        /usr/conf/lib/libhp-ux.a(kern_mman.o)
        /usr/conf/lib/libhp-ux.a(lpmc.o)
        /usr/conf/lib/libhp-ux.a(lv_config.o)
        /usr/conf/lib/libhp-ux.a(lv_lvm.o)
        /usr/conf/lib/libhp-ux.a(machdep.o)
        /usr/conf/lib/libhp-ux.a(pm_procdup.o)
        /usr/conf/lib/libhp-ux.a(proc_iface.o)
        /usr/conf/lib/libhp-ux.a(pstat.o)
        /usr/conf/lib/libhp-ux.a(snakes_rs232.o)
        /usr/conf/lib/libhp-ux.a(subr_prf.o)
        /usr/conf/lib/libhp-ux.a(sysV_shm.o)
        /usr/conf/lib/libhp-ux.a(sys_ki.o)
        /usr/conf/lib/libhp-ux.a(trap.o)
        /usr/conf/lib/libhp-ux.a(vm_devswap.o)
        /usr/conf/lib/libhp-ux.a(vm_machdep.o)
        /usr/conf/lib/libhp-ux.a(vm_mmap.o)
        /usr/conf/lib/libhp-ux.a(vm_pdir1_1.o)
        /usr/conf/lib/libhp-ux.a(vm_pdir2_0.o)
        /usr/conf/lib/libhp-ux.a(vm_pregion.o)
        /usr/conf/lib/libhp-ux.a(vm_region.o)
        /usr/conf/lib/libhp-ux.a(vm_remap.o)
        /usr/conf/lib/libhp-ux.a(vm_vas.o)
        /usr/conf/lib/libhp-ux.a(vm_vhand.o)
        /usr/conf/lib/liblvm.a(lv_block.o)
        /usr/conf/lib/liblvm.a(lv_cluster_lock.o)
        /usr/conf/lib/liblvm.a(lv_defect.o)
        /usr/conf/lib/liblvm.a(lv_hp.o)
        /usr/conf/lib/liblvm.a(lv_ioctls.o)
        /usr/conf/lib/liblvm.a(lv_kdb.o)
        /usr/conf/lib/liblvm.a(lv_lvsubr.o)
        /usr/conf/lib/liblvm.a(lv_malloc.o)
        /usr/conf/lib/liblvm.a(lv_mircons.o)
        /usr/conf/lib/liblvm.a(lv_pbuf.o)
        /usr/conf/lib/liblvm.a(lv_phys.o)
        /usr/conf/lib/liblvm.a(lv_schedule.o)
        /usr/conf/lib/liblvm.a(lv_strategy.o)
        /usr/conf/lib/liblvm.a(lv_subr.o)
        /usr/conf/lib/liblvm.a(lv_syscalls.o)
        /usr/conf/lib/liblvm.a(lv_vgda.o)
        /usr/conf/lib/liblvm.a(lv_vgsa.o)
        /usr/conf/lib/liblvm.a(sh_vgsa.o)
        /usr/conf/lib/liblvm.a(slvm_comm.o)
        /usr/conf/lib/liblvm.a(slvm_schedule.o)
        /usr/conf/lib/libufs.a(ufs_dir.o)
        /usr/conf/lib/libufs.a(ufs_inode.o)
        /usr/conf/lib/libufs.a(ufs_vnops.o)
        /usr/include/sys/pstat.h

what(1) Output:
        /usr/conf/h/pstat.h:
                pstat.h $Date: 96/01/18 13:52:54 $ $Revision: 1.9.89
                        .13 $ PATCH_10.10 (PHKL_6653)
        /usr/conf/lib/libhp-ux.a(asm_excp.o):
                asm_excp.s $Date: 96/02/29 17:42:54 $ $Revision: 1.2
                        1.89.7 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(asm_tlb.o):
                asm_tlb.s      $Date: 96/04/19 10:15:17 $ $Revision:
                         1.5.89.7 $ PATCH_10.10 (PHKL_7334)
        /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o):
                asm_tlb2_0.s   $Date: 96/04/19 10:15:22 $ $Revision:
                         1.2.90.6 $ PATCH_10.10 (PHKL_7334)
        /usr/conf/lib/libhp-ux.a(dmem.o):
                dmem.c  $Date: 96/02/29 17:49:24 $ $Revision: 1.50.8
                        9.14 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(fmpyfadd.o):
                fmpyfadd.c  $Date: 96/02/29 17:58:11 $ $Revision: 1.
                        2.89.5 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(fpudispatch.o):
                fpudispatch.c  $Date: 96/02/29 17:49:31 $ $Revision:
                         1.4.89.8 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(hdl_fault.o):
                hdl_fault.c    $Date: 97/04/25 14:21:38 $ $Revision:
                         1.10.89.15 $ PATCH_10.10 (PHKL_10873)
        /usr/conf/lib/libhp-ux.a(hdl_mprotect.o):
                hdl_mprotect.c  $Date: 96/11/13 16:15:50 $ $Revision
                        : 1.3.89.10 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(hdl_policy.o):
                hdl_policy.c  $Date: 96/11/13 16:16:03 $ $Revision:
                        1.11.89.17 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(hdl_trans.o):
                hdl_trans.c  $Date: 96/02/29 17:49:20 $ $Revision: 1
                        .10.89.13 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(kern_exec.o):
                kern_exec.c    $Date: 97/03/10 16:36:27 $ $Revision:
                         1.89.89.37 $ PATCH_10.10 (PHKL_10270)
        /usr/conf/lib/libhp-ux.a(kern_fork.o):
                kern_fork.c    $Date: 96/04/19 10:19:21 $ $Revision:
                         1.67.89.45 $ PATCH_10.10 (PHKL_7334)
        /usr/conf/lib/libhp-ux.a(kern_mman.o):
                kern_mman.c   $Date: 97/04/25 14:15:18 $ $Revision:
                        1.33.89.13 $ PATCH_10.10 (PHKL_10873)
        /usr/conf/lib/libhp-ux.a(lpmc.o):
                lpmc.c  $Date: 96/02/29 17:49:26 $ $Revision: 1.4.89
                        .7 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(lv_config.o):
                lv_config.c $Date: 96/09/05 22:29:27 $ $Revision: 1.
                        8.89.10 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/libhp-ux.a(lv_lvm.o):
                lv_lvm.c $Date: 96/09/05 22:37:26 $ $Revision: 1.2.8
                        9.2 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/libhp-ux.a(machdep.o):
                machdep.c   $Date: 96/08/07 10:29:00 $ $Revision: 1.
                        120.89.16 $ PATCH_10.10 (PHKL_8201)
        /usr/conf/lib/libhp-ux.a(pm_procdup.o):
                pm_procdup.c  $Date: 96/04/16 13:37:04 $ $Revision:
                        1.8.89.20 $ PATCH_10.10 (PHKL_7301)
        /usr/conf/lib/libhp-ux.a(proc_iface.o):
                proc_iface.c   $Date: 96/04/19 10:19:12 $ $Revision:
                         1.2.89.15 $ PATCH_10.10 (PHKL_7334)
        /usr/conf/lib/libhp-ux.a(pstat.o):
                pstat.c   $Date: 96/10/01 10:40:47 $ $Revision: 1.14
                        .89.34 $ PATCH_10.10 (PHKL_8790)
        /usr/conf/lib/libhp-ux.a(snakes_rs232.o):
                snakes_rs232.c $Date: 96/04/19 10:16:51 $ $Revision:
                         1.5.89.3 $ PATCH_10.10 (PHKL_7334)
        /usr/conf/lib/libhp-ux.a(subr_prf.o):
                subr_prf.c   $Date: 97/02/12 10:04:14 $ $Revision: 1
                        .63.89.12 $ PATCH_10.10 (PHKL_10103)
        /usr/conf/lib/libhp-ux.a(sysV_shm.o):
                sysV_shm.c    $Date: 96/11/13 16:13:08 $ $Revision:
                        1.53.89.9 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(sys_ki.o):
                sys_ki.c   $Date: 96/11/08 12:42:51 $ $Revision: 1.1
                        5.89.26 $ PATCH_10.10 (PHKL_8920)
        /usr/conf/lib/libhp-ux.a(trap.o):
                trap.c        $Date: 96/04/19 10:12:44 $ $Revision:
                        1.165.89.33 $ PATCH_10.10 (PHKL_7334)
        /usr/conf/lib/libhp-ux.a(vm_devswap.o):
                vm_devswap.c  $Date: 96/02/29 17:53:41 $ $Revision:
                        1.15.89.21 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(vm_machdep.o):
                vm_machdep.c  $Date: 96/11/13 16:16:06 $ $Revision:
                        1.152.89.38 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(vm_mmap.o):
                vm_mmap.c     $Date: 96/11/13 16:13:01 $ $Revision:
                        1.13.89.21 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(vm_pdir1_1.o):
                vm_pdir1_1.c  $Date: 96/04/19 10:15:13 $ $Revision:
                        1.2.90.12 $ PATCH_10.10 (PHKL_7334)
        /usr/conf/lib/libhp-ux.a(vm_pdir2_0.o):
                vm_pdir2_0.c  $Date: 96/02/29 17:49:36 $ $Revision:
                        1.2.90.10 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(vm_pregion.o):
                vm_pregion.c  $Date: 96/11/13 16:12:57 $ $Revision:
                        1.12.89.15 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(vm_region.o):
                vm_region.c   $Date: 96/11/13 16:13:10 $ $Revision:
                        1.17.89.7 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(vm_remap.o):
                vm_remap.c  $Date: 96/02/29 17:53:43 $ $Revision: 1.
                        6.89.10 $ PATCH_10.10 (PHKL_6801)
        /usr/conf/lib/libhp-ux.a(vm_vas.o):
                vm_vas.c      $Date: 96/11/13 16:12:21 $ $Revision:
                        1.14.89.30 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/libhp-ux.a(vm_vhand.o):
                vm_vhand.c    $Date: 96/11/13 16:13:04 $ $Revision:
                        1.16.89.17 $ PATCH_10.10 (PHKL_9073)
        /usr/conf/lib/liblvm.a(lv_block.o):
                lv_block.c   $Date: 96/09/05 22:26:47 $ $Revision: 1
                        .8.89.5 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_cluster_lock.o):
                lv_cluster_lock.c   $Date: 96/09/05 22:28:56 $ $Revi
                        sion: 1.3.89.12 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_defect.o):
                lv_defect.c $Date: 96/09/05 22:31:21 $ $Revision: 1.
                        8.89.13 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_hp.o):
                lv_hp.c $Date: 96/09/05 22:31:29 $ $Revision: 1.8.89
                        .36 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_ioctls.o):
                lv_ioctls.c    $Date: 96/09/05 22:31:34 $ $Revision:
                         1.8.89.21 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_kdb.o):
                lv_kdb.c   $Date: 96/09/05 22:31:37 $ $Revision: 1.6
                        .89.5 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_lvsubr.o):
                lv_lvsubr.c   $Date: 96/09/05 22:31:39 $ $Revision:
                        1.8.89.27 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_malloc.o):
                lv_malloc.c   $Date: 96/09/05 22:31:42 $ $Revision:
                        1.8.89.5 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_mircons.o):
                lv_mircons.c $Date: 96/09/05 22:31:43 $ $Revision: 1
                        .8.89.17 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_pbuf.o):
                lv_pbuf.c   $Date: 96/09/05 22:31:46 $ $Revision: 1.
                        8.89.7 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_phys.o):
                lv_phys.c $Date: 96/09/05 22:31:47 $ $Revision: 1.8.
                        89.11 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_schedule.o):
                lv_schedule.c $Date: 96/09/05 22:31:49 $ $Revision:
                        1.8.89.14 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_strategy.o):
                lv_strategy.c $Date: 96/09/05 22:31:52 $ $Revision:
                        1.8.89.12 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_subr.o):
                lv_subr.c $Date: 96/09/05 22:31:54 $ $Revision: 1.8.
                        89.16 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_syscalls.o):
                lv_syscalls.c $Date: 96/09/05 22:31:56 $ $Revision:
                        1.8.89.12 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_vgda.o):
                lv_vgda.c   $Date: 96/09/05 22:31:58 $ $Revision: 1.
                        8.89.11 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(lv_vgsa.o):
                lv_vgsa.c $Date: 96/09/05 22:31:59 $ $Revision: 1.8.
                        89.19 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(sh_vgsa.o):
                sh_vgsa.c $Date: 96/09/05 22:32:03 $ $Revision: 1.2.
                        89.12 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(slvm_comm.o):
                slvm_comm.c $Date: 96/09/05 22:32:06 $ $Revision: 1.
                        2.89.6 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/liblvm.a(slvm_schedule.o):
                slvm_schedule.c $Date: 96/09/05 22:32:07 $ $Revision
                        : 1.2.89.16 $ PATCH_10.10 (PHKL_8393)
        /usr/conf/lib/libufs.a(ufs_dir.o):
                ufs_dir.c      $Date: 96/06/07 11:25:31 $ $Revision:
                         1.17.89.16 $ PATCH_10.10 (PHKL_8461)
        /usr/conf/lib/libufs.a(ufs_inode.o):
                ufs_inode.c   $Date: 96/01/10 13:40:27 $ $Revision:
                        1.42.89.15 $ PATCH_10.10 (PHKL_6484)
        /usr/conf/lib/libufs.a(ufs_vnops.o):
                ufs_vnops.c    $Date: 96/08/14 17:02:08 $ $Revision:
                         1.24.89.25 $ PATCH_10.10 (PHKL_8292)
        /usr/include/sys/pstat.h:
                pstat.h $Date: 96/01/18 13:52:54 $ $Revision: 1.9.89
                        .13 $ PATCH_10.10 (PHKL_6653)

cksum(1) Output:
        351025292 35051 /usr/conf/h/pstat.h
        3931996340 3108 /usr/conf/lib/libhp-ux.a(asm_excp.o)
        1169006284 41224 /usr/conf/lib/libhp-ux.a(asm_tlb.o)
        2534453469 14452 /usr/conf/lib/libhp-ux.a(asm_tlb2_0.o)
        2366865159 8908 /usr/conf/lib/libhp-ux.a(dmem.o)
        986054333 17224 /usr/conf/lib/libhp-ux.a(fmpyfadd.o)
        3159161935 10932 /usr/conf/lib/libhp-ux.a(fpudispatch.o)
        3165764122 12940 /usr/conf/lib/libhp-ux.a(hdl_fault.o)
        2430971761 15792 /usr/conf/lib/libhp-ux.a(hdl_mprotect.o)
        3733008830 11660 /usr/conf/lib/libhp-ux.a(hdl_policy.o)
        3260695634 8880 /usr/conf/lib/libhp-ux.a(hdl_trans.o)
        966050192 15700 /usr/conf/lib/libhp-ux.a(kern_exec.o)
        613436261 14236 /usr/conf/lib/libhp-ux.a(kern_fork.o)
        2668531744 3816 /usr/conf/lib/libhp-ux.a(kern_mman.o)
        3103322954 6824 /usr/conf/lib/libhp-ux.a(lpmc.o)
        4045814602 26584 /usr/conf/lib/libhp-ux.a(lv_config.o)
        2325117923 100804 /usr/conf/lib/libhp-ux.a(lv_lvm.o)
        2666974195 30032 /usr/conf/lib/libhp-ux.a(machdep.o)
        1140687353 6408 /usr/conf/lib/libhp-ux.a(pm_procdup.o)
        1374434585 12912 /usr/conf/lib/libhp-ux.a(proc_iface.o)
        4058233401 23044 /usr/conf/lib/libhp-ux.a(pstat.o)
        3705526801 5964 /usr/conf/lib/libhp-ux.a(snakes_rs232.o)
        2432253643 16484 /usr/conf/lib/libhp-ux.a(subr_prf.o)
        3611221468 8428 /usr/conf/lib/libhp-ux.a(sysV_shm.o)
        2093087402 59652 /usr/conf/lib/libhp-ux.a(sys_ki.o)
        403410752 21680 /usr/conf/lib/libhp-ux.a(trap.o)
        2090489607 15296 /usr/conf/lib/libhp-ux.a(vm_devswap.o)
        3561121188 88400 /usr/conf/lib/libhp-ux.a(vm_machdep.o)
        354670341 20668 /usr/conf/lib/libhp-ux.a(vm_mmap.o)
        874224294 39144 /usr/conf/lib/libhp-ux.a(vm_pdir1_1.o)
        2738926588 29600 /usr/conf/lib/libhp-ux.a(vm_pdir2_0.o)
        1975125224 11700 /usr/conf/lib/libhp-ux.a(vm_pregion.o)
        3495003745 11328 /usr/conf/lib/libhp-ux.a(vm_region.o)
        4138546304 8704 /usr/conf/lib/libhp-ux.a(vm_remap.o)
        3420929275 12968 /usr/conf/lib/libhp-ux.a(vm_vas.o)
        632083219 15924 /usr/conf/lib/libhp-ux.a(vm_vhand.o)
        393755852 2368 /usr/conf/lib/liblvm.a(lv_block.o)
        3318921656 10124 /usr/conf/lib/liblvm.a(lv_cluster_lock.o)
        712499186 12036 /usr/conf/lib/liblvm.a(lv_defect.o)
        1781902993 41716 /usr/conf/lib/liblvm.a(lv_hp.o)
        4244308075 22644 /usr/conf/lib/liblvm.a(lv_ioctls.o)
        2752481651 732 /usr/conf/lib/liblvm.a(lv_kdb.o)
        1103374982 34468 /usr/conf/lib/liblvm.a(lv_lvsubr.o)
        3038027272 2404 /usr/conf/lib/liblvm.a(lv_malloc.o)
        2657479867 18120 /usr/conf/lib/liblvm.a(lv_mircons.o)
        109153416 5876 /usr/conf/lib/liblvm.a(lv_pbuf.o)
        1538978385 6784 /usr/conf/lib/liblvm.a(lv_phys.o)
        3558788590 19996 /usr/conf/lib/liblvm.a(lv_schedule.o)
        1652603983 7436 /usr/conf/lib/liblvm.a(lv_strategy.o)
        3897675314 8576 /usr/conf/lib/liblvm.a(lv_subr.o)
        576236109 17960 /usr/conf/lib/liblvm.a(lv_syscalls.o)
        1357408577 8708 /usr/conf/lib/liblvm.a(lv_vgda.o)
        2780714036 12764 /usr/conf/lib/liblvm.a(lv_vgsa.o)
        3716281752 28620 /usr/conf/lib/liblvm.a(sh_vgsa.o)
        595119750 23012 /usr/conf/lib/liblvm.a(slvm_comm.o)
        1222554868 6984 /usr/conf/lib/liblvm.a(slvm_schedule.o)
        602422226 19660 /usr/conf/lib/libufs.a(ufs_dir.o)
        3942758326 25636 /usr/conf/lib/libufs.a(ufs_inode.o)
        640680162 30648 /usr/conf/lib/libufs.a(ufs_vnops.o)
        351025292 35051 /usr/include/sys/pstat.h

Patch Conflicts: None

Patch Dependencies:
        s700: 10.10: PHCO_8459

Hardware Dependencies:  None

Other Dependencies:  None

Supersedes:
        PHKL_6484 PHKL_6653 PHKL_6748 PHKL_6801 PHKL_6852 PHKL_6969
        PHKL_7050 PHKL_7124 PHKL_7164 PHKL_7167 PHKL_7187 PHKL_7244
        PHKL_7301 PHKL_7334 PHKL_7458 PHKL_7668 PHKL_7868 PHKL_8082
        PHKL_8201 PHKL_8292 PHKL_8393 PHKL_8461 PHKL_8714 PHKL_8790
        PHKL_8920 PHKL_8928 PHKL_9073 PHKL_10103 PHKL_10201 PHKL_10270

Equivalent Patches:
        PHKL_10874:
        s800: 10.10

Patch Package Size:  1250 Kbytes

Installation Instructions:
        Please review all instructions and the Hewlett-Packard
        SupportLine User Guide or your Hewlett-Packard support terms
        and conditions for precautions, scope of license,
        restrictions, and, limitation of liability and warranties,
        before installing this patch.
        ------------------------------------------------------------
        1. Back up your system before installing a patch.

        2. Login as root.

        3. Copy the patch to the /tmp directory.

        4. Move to the /tmp directory and unshar the patch:

                cd /tmp
                sh PHKL_10873

        5a. For a standalone system, run swinstall to install the
            patch:

                swinstall -x autoreboot=true -x match_target=true \
                        -s /tmp/PHKL_10873.depot

        5b. For a homogeneous NFS Diskless cluster run swcluster on the
            server to install the patch on the server and the clients:

                swcluster -i -b

            This will invoke swcluster in the interactive mode and
            force all clients to be shut down.

            WARNING: All cluster clients must be shut down prior to the
                     patch installation.  Installing the patch while the
                     clients are booted is unsupported and can lead to
                     serious problems.

            The swcluster command will invoke an swinstall session in which
            you must specify:

                alternate root path  -  default is /export/shared_root/OS_700
                source depot path    -  /tmp/PHKL_10873.depot

            To complete the installation, select the patch by choosing
            "Actions -> Match What Target Has" and then "Actions -> Install"
            from the Menubar.

        5c. For a heterogeneous NFS Diskless cluster:

                - run swinstall on the server as in step 5a to install
                  the patch on the cluster server.

                - run swcluster on the server as in step 5b to install
                  the patch on the cluster clients.

        By default swinstall will archive the original software in
        /var/adm/sw/patch/PHKL_10873.  If you do not wish to retain a
        copy of the original software, you can create an empty file
        named /var/adm/sw/patch/PATCH_NOSAVE.

        Warning: If this file exists when a patch is installed, the
                 patch cannot be deinstalled.  Please be careful
                 when using this feature.

        It is recommended that you move the PHKL_10873.text file to
        /var/adm/sw/patch for future reference.

        To put this patch on a magnetic tape and install from the
        tape drive, use the command:

                dd if=/tmp/PHKL_10873.depot of=/dev/rmt/0m bs=2k

Special Installation Instructions:
        Due to the number of objects in this patch, the
        customization phase of the update may take more than 10
        minutes.  During that time the system will not appear to
        make forward progress, but it will actually be installing
        the objects.