Patch Name: PHKL_28185 Patch Description: s700_800 11.11 Tunable;vxportal;vx_maxlink;DMAPI NFS hang Creation Date: 02/11/18 Post Date: 02/12/05 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_28185: HANG PHKL_26761: HANG Category Tags: defect_repair general_release critical halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_28185 Symptoms: PHKL_28185: ( SR:8606197052 CR:JAGad66249 ) When using an application that uses the JFS DMAPI interactively with NFS, all nfsd daemons may hang. The stack trace could be similar to the one shown below: _sleep+0x51c sleep_spinunlock+0x74 vx_event_waitsig+0xe0 kdm_eventprocess+0x4c kdm_eventpost+0x198 kdm_read_event_gen+0x1d8 vx_rdwr+0x228 rfs3_read+0x380 rfsexp_dispatch+0x210 svc_getreq+0x13c svc_run+0x1e0 nfsexp_svc+0x4d4 nfs_stub_svc+0xa4 coerce_scall_args+0xcc $syscallrtn+0x0 PHKL_28117: ( SR:8606266404 CR:JAGae30652 ) An attempt to create more than 32767 subdirectories in a directory is unsuccessful. PHKL_26761: ( SR:8606169860 CR:JAGad39126 ) Customers using HSM Migration software from Veritas may run into the following problems: 1. Hang in the migout daemon (migd) process while the system is running. 2. Process hang when starting up/shutting down the HSM Migration software when HP-UX Processor Sets are installed in the kernel. This hangs the boot process. This is caused by the same problem as the first symptom, but it is seen much earlier. PHKL_24783: ( SR:8606183953 CR:JAGad53163 ) vx_maxlink is currently an unsupported and undocumented tunable which is removed by this patch. ( SR:8606197105 CR:JAGad66299 ) vx_ninode is documented to be a tunable but it's not implemented in 11.11. Defect Description: PHKL_28185: ( SR:8606197052 CR:JAGad66249 ) The nfsd deamons may appear to hang as a result of NFS starvation. The NFS starvation occurs when a nfsd daemon can not process the read request quickly enough. When processing a large file that has been migrated and purged, but has not been cached back, the DM_EJUKEBOX error is returned through the JFS DMAPI. If a NFS read request is made on such a file, the nfsd daemon has to wait to get the file through the DMAPI application. After the client read timeout expires, it re-issues the read request, thereby causing another nfsd daemon to wait for the response from the DMAPI application. The final result is all available nfsd daemons are used up waiting on read events resulting in a state referred to as NFS starvation. Resolution: To prevent NFS starvation, the JFS DMAPI implementation was changed to return NFS3ERR_JUKEBOX back to NFS instead of ENOSYS, when the DMAPI detects a DM_EJUKEBOX error. This would cause a NFS response back to the client that would cause that client to go to sleep for additional time before retransmitting the request. Additionally, the nfsd daemon would go back to sleep waiting for a new request to come. PHKL_28117: ( SR:8606266404 CR:JAGae30652 ) The maximum reference count of a directory is limited to LINK_MAX, currently defined as 32767. Hence it is not possible to create more than 32767 subdirectories. Resolution: A new tunable vx_maxlink has been added which will allow to increase the maximum number of subdirectories of a directory from 32767 to 65534. When the tunable is set to a value greater than 65534, the operating system will reset it to 65534. Note that some older applications which are using the st_nlink field of the stat structure as type "short" instead of "unsigned short" may see negative values on the link count of directories when tuning vx_maxlink above 32767. PHKL_26761: ( SR:8606169860 CR:JAGad39126 ) Examination of the hung migout daemon, the migd process, shows that it is trying to create a VxFS vxfsd daemon thread by using the vxportal driver. The vxportal driver is bound to a single processor. An assumption is made that a thread will not be created by a driver that is bound to a single processor. In this case, the thread hangs because an attempt will be made to remove the binding. Since the binding is enforced by the driver, it cannot be removed, and the thread loops trying to remove it's binding. Resolution: The vxportal driver has been changed to eliminate the requirement that it bind with a single processor. PHKL_24783: ( SR:8606183953 CR:JAGad53163 ) vx_maxlink is a 32-bit integer which can store a value greater than 64K. This tunable is not supported and is not documented to customers. Resolution: ( SR:8606183953 CR:JAGad53163 ) Don't allow vx_maxlink to be a tunable. ( SR:8606197105 CR:JAGad66299 ) The size of VxFS inode cache table if auto tuned, may be very large for certain systems. This may lead to large consumption of system memory. The size of the VxFS inode cache table needs to be tuned according to the system. Resolution: ( SR:8606197105 CR:JAGad66299 ) Tunable vx_ninode added. vx_ninode allows setting the maximum number of inodes that can be present in the VxFS in-memory inode cache at a time. If set to zero (the default) the size is tuned according to how much physical memory the system has. Enhancement: No SR: 8606169860 8606183953 8606197052 8606197105 8606266404 Patch Files: JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libvxfs.a(kdm_machdep.o) /usr/conf/lib/libvxfs.a(vx_config.o) /usr/conf/master.d/vxfs /usr/conf/space.h.d/vxfs_space.h JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libvxfs.a(kdm_machdep.o) /usr/conf/lib/libvxfs.a(vx_config.o) /usr/conf/master.d/vxfs /usr/conf/space.h.d/vxfs_space.h what(1) Output: JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libvxfs.a(kdm_machdep.o): kdm_machdep.c $Date: 2002/11/15 00:36:12 $Revision: r11.11/2 PATCH_11.11 (PHKL_28185) /usr/conf/lib/libvxfs.a(vx_config.o): vx_config.c $Date: 2002/10/24 08:03:06 $Revision: r1 1.11/1 PATCH_11.11 (PHKL_28117) /usr/conf/master.d/vxfs: vxfs $Date: 2002/10/24 08:03:29 $Revision: r11.11/3 PATCH_11.11 (PHKL_28117) /usr/conf/space.h.d/vxfs_space.h: vxfs_space.h $Date: 2002/10/24 08:02:19 $Revision: r 11.11/2 PATCH_11.11 (PHKL_28117) JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libvxfs.a(kdm_machdep.o): kdm_machdep.c $Date: 2002/11/15 00:36:12 $Revision: r11.11/2 PATCH_11.11 (PHKL_28185) /usr/conf/lib/libvxfs.a(vx_config.o): vx_config.c $Date: 2002/10/24 08:03:06 $Revision: r1 1.11/1 PATCH_11.11 (PHKL_28117) /usr/conf/master.d/vxfs: vxfs $Date: 2002/10/24 08:04:52 $Revision: r11.11/3 PATCH_11.11 (PHKL_28117) /usr/conf/space.h.d/vxfs_space.h: vxfs_space.h $Date: 2002/10/24 08:02:43 $Revision: r 11.11/2 PATCH_11.11 (PHKL_28117) cksum(1) Output: JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 3395608916 4832 /usr/conf/lib/libvxfs.a(kdm_machdep.o) 2771046468 6688 /usr/conf/lib/libvxfs.a(vx_config.o) 3362857408 4983 /usr/conf/master.d/vxfs 2619293478 2569 /usr/conf/space.h.d/vxfs_space.h JFS.VXFS-BASE-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 2472449741 10520 /usr/conf/lib/libvxfs.a(kdm_machdep.o) 2516097748 12512 /usr/conf/lib/libvxfs.a(vx_config.o) 1195527989 4983 /usr/conf/master.d/vxfs 3556837492 2570 /usr/conf/space.h.d/vxfs_space.h Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_28117 PHKL_26761 PHKL_24783 Equivalent Patches: None Patch Package Size: 90 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_28185 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_28185.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_28185. If you do not wish to retain a copy of the original software, include the patch_save_files option in the swinstall command above: -x patch_save_files=false WARNING: If patch_save_files is false when a patch is installed, the patch cannot be deinstalled. Please be careful when using this feature. For future reference, the contents of the PHKL_28185.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_28185.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_28185.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None