Patch Name: PHKL_22155 Patch Description: s700 10.20 pfdat page unlock & exclusive mapped alias fix Creation Date: 00/08/04 Post Date: 00/08/18 Hardware Platforms - OS Releases: s700: 10.20 Products: N/A Filesets: OS-Core.CORE-KRN Automatic Reboot?: Yes Status: General Superseded Critical: Yes PHKL_22155: PANIC PHKL_10460: HANG Path Name: /hp-ux_patches/s700/10.X/PHKL_22155 Symptoms: PHKL_22155: (SR: 8606154259 CR: JAGad23577) Application issuing large amount of mmap calls to map multiple virtual addresses to the same physical page (using flags MAP_SHARED|MAP_FILE|MAP_FIXED) may cause system panic with the follow stack trace: panic: hdl_zero_page: page not mapped panic+0x14 hdl_zero_page+0xc8 virtual_fault+0x418 vfault+0x118 trap+0x280 nokgdb+0x8 Trace on other processor shows: panic+0x14 report_trap_or_int_and_panic+0x80 trap+0xde8 nokgdb+0x8 allocpfd_from_pond+0x134 allocate_page+0x68 lgpg_vfdfill+0x4c virtual_fault+0xc3c vfault+0x118 trap+0x280 nokgdb+0x8 PHKL_10460: Multiple processes sharing a memory region hang when trying to acquire the region lock, while the owner of the region lock waits infinitely for a page in the region to be unlocked. Defect Description: PHKL_22155: (SR: 8606154259 CR: JAGad23577) HP-UX handles multiple virtual addresses mapping to the same physical page by using virtual address aliasing. Large number of overlapping exclusive mapping calls (mmap with MAP_SHARED|MAP_FIXED|MAP_FILE) create excessive number of virtual address aliases and can exhaust the alias entries for physical pages. The exhaustion of alias entries results in failed attempts to add a page translation. Improper handling of the translation failure results in corruption in the free memory list, thus causing an unmapped page to be returned from the free memory pond. Resolution: Handle application requested overlapping exclusive mapping without using aliases. PHKL_10460: The vaslockpages() routine brings in a specified range of pages and acquires the pfdat locks for these pages. In the case that it does not have the correct access rights to all these pages due to the lack of free memory, it will unlock the pages and return an ENOMEM. The bug is that it unlocks an incorrect number of pages and leaves one page locked infinitely during the back out. SR: 5003359463 8606154259 Patch Files: /usr/conf/lib/libhp-ux.a(hdl_fault.o) /usr/conf/lib/libhp-ux.a(hdl_trans.o) /usr/conf/lib/libhp-ux.a(vm_misc.o) what(1) Output: /usr/conf/lib/libhp-ux.a(hdl_fault.o): hdl_fault.c $Date: 2000/08/04 14:07:31 $ $Revision: 1.13.98.13 $ PATCH_10.20 (PHKL_22155) /usr/conf/lib/libhp-ux.a(hdl_trans.o): hdl_trans.c $Date: 2000/08/04 14:17:48 $ $Revisio n: 1.12.98.13 $ PATCH_10.20 (PHKL_22155) /usr/conf/lib/libhp-ux.a(vm_misc.o): vm_misc.c $Date: 2000/08/04 14:24:18 $ $Revision: 1.14.98.15 $ PATCH_10.20 (PHKL_22155) cksum(1) Output: 2141662580 13644 /usr/conf/lib/libhp-ux.a(hdl_fault.o) 3692525272 11016 /usr/conf/lib/libhp-ux.a(hdl_trans.o) 279897295 8032 /usr/conf/lib/libhp-ux.a(vm_misc.o) Patch Conflicts: None Patch Dependencies: s700: 10.20: PHKL_16750 Hardware Dependencies: None Other Dependencies: None Supersedes: PHKL_10460 Equivalent Patches: PHKL_22156: s800: 10.20 Patch Package Size: 100 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_22155 5a. For a standalone system, run swinstall to install the patch: swinstall -x autoreboot=true -x match_target=true \ -s /tmp/PHKL_22155.depot By default swinstall will archive the original software in /var/adm/sw/patch/PHKL_22155. 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_22155.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_22155.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.