Patch Name: PHKL_9153 Patch Description: s700 10.20 NFS server hang; write gathering support Creation Date: 96/11/26 Post Date: 96/11/27 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: JournalFS.VXFS-BASE-KRN OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Superseded Critical: No (superseded patches were critical) PHKL_8294: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_9153 Symptoms: PHKL_9153: Add write-gathering support for NFS servers. PHKL_8294: When multiple nfsd's access the same file simultaneously, they hang in a deadlock. Defect Description: PHKL_9153: Added code to update the v_last_fsync field on the vnode. This field will be used by rfs_write to implement write gathering on nfs servers. Patch PHKL_9155/56, which updates rfs_write(), must also be applied for this patch to be effective. If both patches are applied, server throughput should increase for write-intensive workloads, and I/O traffic to disk should decrease. PHKL_8294: 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. SR: 4701341669 5003330910 Patch Files: /usr/conf/lib/libhp-ux.a(vfs.o) /usr/conf/lib/libufs.a(ufs_vnops.o) /usr/conf/lib/libvxfs_base.a(vx_vnops.o) what(1) Output: /usr/conf/lib/libhp-ux.a(vfs.o): vfs.c $Date: 96/11/22 17:33:45 $ $Revision: 1.25.98.11 $ PATCH_10.20 (PHKL_9153) /usr/conf/lib/libufs.a(ufs_vnops.o): ufs_vnops.c $Date: 96/11/22 17:34:38 $ $Revision: 1.30.98.17 $ PATCH_10.20 (PHKL_9153) /usr/conf/lib/libvxfs_base.a(vx_vnops.o): vx_vnops.c $Date: 96/11/22 17:35:07 $ $Revision: 1.8.98.21 $ PATCH_10.20 (PHKL_9153) cksum(1) Output: 1148147061 20444 /usr/conf/lib/libhp-ux.a(vfs.o) 3381483645 33300 /usr/conf/lib/libufs.a(ufs_vnops.o) 690801697 26052 /usr/conf/lib/libvxfs_base.a(vx_vnops.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_8294 Equivalent Patches: PHKL_9154: s800: 10.20 Patch Package Size: 140 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_9153 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_9153.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_9153.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_9153. 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_9153.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_9153.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None