Patch Name: PHKL_27727 Patch Description: s700_800 11.11 Fix clock sync for SD, fix negative useconds Creation Date: 02/10/30 Post Date: 02/11/26 Hardware Platforms - OS Releases: s700: 11.11 s800: 11.11 Products: N/A Filesets: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP Automatic Reboot?: Yes Status: General Release Critical: Yes PHKL_27727: ABORT ServiceGuard will routinely call gettimeofday(), and if it receives one of these invalid timeval structures, it will reset the machine unexpectedly. PHKL_25869: ABORT PHKL_23625: OTHER PANIC Without this patch, a Superdome derivative machine may take much longer time to boot or may panic in boot process with "Data and/or code translations improperly disabled" message. Category Tags: defect_repair hardware_enablement enhancement general_release critical panic halts_system Path Name: /hp-ux_patches/s700_800/11.X/PHKL_27727 Symptoms: PHKL_27727: ( SR:8606261225 CR:JAGae25547 ) gettimeofday(2) causes unexpected abort. Calling gettimeofday may return a timeval structure with a negative microsecond field. PHKL_25869: ( SR:8606225194 CR:JAGad94281 ) Calling gettimeofday() from user space may return a timeval structure with a negative microsecond field. ServiceGuard will routinely call gettimeofday(), and if it receives one of these invalid timeval structures, it will reset the machine unexpectedly. PHKL_23625: ( SR:8606170271 CR:JAGad39535 ) Some Superdome machines may take excessive boot time and may panic in the boot process with "Data and/or code translations improperly disabled" message. Defect Description: PHKL_27727: ( SR:8606261225 CR:JAGae25547 ) On multi-CPU systems, if gettimeofday() is called on a non-monarch CPU, the microsecond field(tv_usec) can be negative. The following are some of the possible reasons. 1. clock drift :- The clocks of the CPUs are synchronized at boot. If there is a difference in the speeds of the clocks, they will slowly drift over time. The drift correction code may cause the microsecond field to become negative. 2. interrupt held-off for long time :- The microsecond field can be negative if interrupt held-off for long time. 3. overflow of an unsigned 32 bit quantity :- Since microsecond field is a signed quantity, it can be negative because of manipulation with large value like, 0x80000000 or more. Resolution: This fix will reduce the chance of getting a negative value in the microsecond field, in each of the above cases. 1. forcing clock re-synchronization if clock drift happens. 2. proper comparison of register values 3. using 64 bit quantity for manipulation of unsigned quantity. PHKL_25869: ( SR:8606225194 CR:JAGad94281 ) On systems with multiple CPUs, the clocks of the CPUs are syncronized at boot. If there is a difference in the speeds of the clocks, they will slowly drift over time. If gettimeofday() is called on a non-monarch CPU, the drift correction code may add a negative correction amount. If the time of day has a small number of microseconds, this correction can cause the microsecond field to become negative. Resolution: Detect a negative drift correction and cause the CPU clocks to be resyncronized at the next clock interrupt. PHKL_23625: ( SR:8606170271 CR:JAGad39535 ) Superdome derivative platforms are not properly identified during initial clock synchronization. Resolution: Use time reference type as platform identifier. Enhancement: No (superseded patches contained enhancements) PHKL_27727: Enhancements were delivered in a patch this one has superseded. Please review the Defect Description text for more information. SR: 8606170271 8606225194 8606261225 Patch Files: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libclock-pdk.a(clock.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libclock-pdk.a(clock.o) what(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: /usr/conf/lib/libclock-pdk.a(clock.o): clock.c $Date: 2002/10/22 23:21:04 $Revision: r11.11 /4 PATCH_11.11 (PHKL_27727) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: /usr/conf/lib/libclock-pdk.a(clock.o): clock.c $Date: 2002/10/22 23:21:04 $Revision: r11.11 /4 PATCH_11.11 (PHKL_27727) cksum(1) Output: OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_32,v=HP: 247406431 23728 /usr/conf/lib/libclock-pdk.a(clock.o) OS-Core.CORE2-KRN,fr=B.11.11,fa=HP-UX_B.11.11_64,v=HP: 1164678141 67640 /usr/conf/lib/libclock-pdk.a(clock.o) Patch Conflicts: None Patch Dependencies: None Hardware Dependencies: 9000/800 Other Dependencies: None Supersedes: PHKL_25869 PHKL_23625 Equivalent Patches: None Patch Package Size: 120 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_27727 5. Run swinstall to install the patch: swinstall -x autoreboot=true -x patch_match_target=true \ -s /tmp/PHKL_27727.depot By default swinstall will archive the original software in /var/adm/sw/save/PHKL_27727. 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_27727.text file is available in the product readme: swlist -l product -a readme -d @ /tmp/PHKL_27727.depot To put this patch on a magnetic tape and install from the tape drive, use the command: dd if=/tmp/PHKL_27727.depot of=/dev/rmt/0m bs=2k Special Installation Instructions: None