Annotation of embedaddon/ntp/html/hints/solaris.xtra.4095849, revision 1.1.1.1
1.1 misho 1: Bug Id: 4095849
2: Category: kernel
3: Subcategory: syscall
4: State: evaluated
5: Synopsis: time_constant value >6 with PLL in use leads to integer divide
6: zero trap panic
7: Description:
8: If the time_constant parameter is 7 or higher, and the phase-lock looping model
9: is in use, the system will take a "integer divide zero trap" panic in
10: the clock routine as soon as the time_offset becomes non-zero.
11:
12: time_constant defaults to 0. The only place it is set is in the ntp_adjtime
13: system call, from the 'constant' element of the timex structure argument.
14:
15: Work around:
16: Never set the constant element of the timex structure passed to ntp_adjtime to
17: a value larger than 6.
18:
19: satish.mynam@Eng 1998-04-30
20: 1. Use Sun's version of NTP software instead of PD version. This problem
21: is not seen with Sun's NTP version (which is mostly eqivalent to PD NTP 3.4
22: plus some Sun's local functionality futures).
23:
24: 2. Workaround for the public domain NTP version ONLY:
25: =====================================================
26: The workaround for public domain NTP version is to disable the
27: KERNEL_PLL from the NTP code. This way ntp_Adjtime() system call is
28: totally bypassed without sacrificing any of the functionality of the
29: NTP. The only hit you might see is the way kernel precision timminig
30: is done without the PLL algorithm in the kernel.
31:
32: The easiest way to disable ntp_adjtime option is(without changing
33: any makefiles or other config files) to disable the KERNEL_PLL
34: value in the ./config.h file.
35:
36: After doing a ./configure for probing for all the necessary tools(compilers,
37: os version, libraries), please comment out KERNEL_PLL macro in
38: the ./config.h file. This will disable the KERNEL_PLL part of the source
39: code and the newly obtained xntpd is just similar to the old one but it
40: does not use ntp_adjtime() system call. This prevents it from panic'ng
41: the kernel.
42:
43: /*#define KERNEL_PLL 1*/
44:
45: I complied a new xntpd binary this way and it does nothave any ntp_adjtime()
46: related stuff.
47:
48: Default:
49: =======
50: /net/divya/export/home/mynam/public_domain/ntp/xntp3-5.92/xntpd>strings
51: xntpd |
52: grep ntp_adjtime
53: 354:adj_frequency: ntp_adjtime failed: %m
54: 357:loop_config: ntp_adjtime() failed: %m
55: 435:get_kernel_info: ntp_adjtime() failed: %m
56:
57: With KERNEL_PLL disabled in config.h file
58: -=======================
59:
60: /net/divya/export/home/mynam/public_domain/ntp/xntp3-5.92/xntpd>strings
61: xntpd.nopll | grep ntp_adjtime
62:
63: Integrated in releases:
64: Duplicate of:
65: Patch id:
66: See also: 4133517
67: Summary:
68: If the time_constant parameter is 7 or higher, and the phase-lock looping model
69: is in use, the system will take a "integer divide zero trap" panic in
70: the clock routine as soon as the time_offset becomes non-zero.
71:
72: time_constant defaults to 0. The only place it is set is in the ntp_adjtime
73: system call, from the 'constant' element of the timex structure argument.
74: ----------------------------------------------------------------------------
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>