Patch Name: PHKL_19166 Patch Description: s700 10.20 LVM cumulative patch Creation Date: 99/07/14 Post Date: 99/07/15 Repost: 99/10/27 A problem has been discovered in superseding patches PHSS_19209, PHKL_19696 and PHKL_20040 in that they may hang systems using LVM. PHSS_19166 does not exhibit the same problem and is being re-released until a replacement patch is available. Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: LVM.LVM-KRN Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_19166: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_19166 Symptoms: PHKL_19166: ( SR: 8606100864 DTS: JAGab39559 ) ( SR: 4701424846 DTS: JAGab14452 ) Performance degradation when massively parallel subpage size (<8K) reads are performed (as with Informix). ( SR: 8606100864 DTS: JAGab39559 ) ( SR: 1653289132 DTS: JAGaa67952 ) The system hangs when lvmkd is waiting for the lock obtained earlier by an application that performs a vg_create operation. The hang does not happen unless there is a powerfailed disk. ( SR: 8606100864 DTS: JAGab39559 ) ( SR: 4701424895 DTS: JAGab14455 ) Optimus Disk Arrays (model number A5277A-HP) are not recognized as an ACTIVE/PASSIVE device and subsequently are not handled properly by the driver. PHKL_17546: ( SR: 1653289553 DTS: JAGaa46305 ) LVM's autoresync after disk powerfail can leave extents stale. Defect Description: PHKL_19166: ( SR: 8606100864 DTS: JAGab39559 ) ( SR: 4701424846 DTS: JAGab14452 ) Informix issues massive ammounts of 1K reads in parallel. With an 8K page size and I/Os serialized within the page, performance suffers. Resolution: Logic was added to allow reads from the same 8K page to proceed in parallel when bad block relocation is completely disabled (lvchange -r N). ( SR: 8606100864 DTS: JAGab39559 ) ( SR: 1653289132 DTS: JAGaa67952 ) If the holder of the vg_lock is waiting for I/O to finish, and if the I/O can't finish until we switch to another link, then we get into a deadlock. Resolution: To resolve the deadlock, the code now obtains the lock temporarily, in order to switch to the alternate link, then returns the lock to the original holder to finish the I/O. ( SR: 8606100864 DTS: JAGab39559 ) ( SR: 4701424895 DTS: JAGab14455 ) We need to recognize Optimus Array as an ACTIVE/PASSIVE device. Resolution: Added code to recognize the Optimus Array as an ACTIVE/PASSIVE device. PHKL_17546: ( SR: 1653289553 DTS: JAGaa46305 ) lv_syncx() may return with stale extents without actually syncing all the extents. Resolution: Added additional check to see if all the extents are synced; otherwise return error. lv_syncx() will return SUCCESS only when the syncing is completed. Made changes in lv_resyncpv() to preserve error value. SR: 1653289132 1653289553 4701424846 4701424895 8606100864 Patch Files: /usr/conf/lib/liblvm.a(lv_block.o) /usr/conf/lib/liblvm.a(lv_cluster_lock.o) /usr/conf/lib/liblvm.a(lv_hp.o) /usr/conf/lib/liblvm.a(lv_lvsubr.o) /usr/conf/lib/liblvm.a(lv_phys.o) /usr/conf/lib/liblvm.a(lv_strategy.o) what(1) Output: /usr/conf/lib/liblvm.a(lv_block.o): lv_block.c $Date: 99/07/12 14:23:13 $ $Revision: 1.1 3.98.7 $ PATCH_10.20 (PHKL_19166) /usr/conf/lib/liblvm.a(lv_cluster_lock.o): lv_cluster_lock.c $Date: 99/02/05 15:01:21 $ $Revisi on: 1.10.98.7 $ PATCH_10.20 (PHKL_17546) /usr/conf/lib/liblvm.a(lv_hp.o): lv_hp.c $Date: 99/07/12 14:24:02 $ $Revision: 1.18.9 8.31 $ PATCH_10.20 (PHKL_19166) /usr/conf/lib/liblvm.a(lv_lvsubr.o): lv_lvsubr.c $Date: 99/07/12 14:24:11 $ $Revision: 1. 15.98.22 $ PATCH_10.20 (PHKL_19166) /usr/conf/lib/liblvm.a(lv_phys.o): lv_phys.c $Date: 99/07/12 14:24:16 $ $Revision: 1.14 .98.17 $ PATCH_10.20 (PHKL_19166) /usr/conf/lib/liblvm.a(lv_strategy.o): lv_strategy.c $Date: 99/07/12 14:24:17 $ $Revision: 1.14.98.13 $ PATCH_10.20 (PHKL_19166) cksum(1) Output: 1522248600 2660 /usr/conf/lib/liblvm.a(lv_block.o) 2286504099 10052 /usr/conf/lib/liblvm.a(lv_cluster_lock.o) 344153218 87200 /usr/conf/lib/liblvm.a(lv_hp.o) 4010340432 36160 /usr/conf/lib/liblvm.a(lv_lvsubr.o) 81713594 7736 /usr/conf/lib/liblvm.a(lv_phys.o) 1779448750 7516 /usr/conf/lib/liblvm.a(lv_strategy.o) Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_16750 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_17546 Equivalent Patches: PHKL_19167: s800: 10.20 PHKL_18483: s800: 11.00 Patch Package Size: 210 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_19166 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_19166.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_19166.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_19166. 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_19166.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_19166.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: This patch depends on base patch PHKL_16750. For successful installation, please ensure that PHKL_16750 is in the same depot with this patch, or PHKL_16750 is already installed.