Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Nov 2017 06:45:35 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        Henri Hennebert <hlh@restart.be>, freebsd-arm <freebsd-arm@freebsd.org>
Subject:   Re: PINE64 - 12.0-CURRENT r324563 - ntpd can't keep time
Message-ID:  <92708941-6FB9-446D-B231-05B9A5392108@dsl-only.net>
In-Reply-To: <509ED220-4989-4ADA-BE23-07ACD7D50671@dsl-only.net>
References:  <d85f883f-84c2-5051-1996-2a0e73a2c1e7@restart.be> <4BF75B1E-318C-414A-B5D4-4BA7D6578316@dsl-only.net> <1509029871.56824.49.camel@freebsd.org> <c2bff518-89ce-4956-2548-e56afab5d83d@restart.be> <509ED220-4989-4ADA-BE23-07ACD7D50671@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
[Adding kernel configuration for reference.]

On 2017-Nov-8, at 6:37 AM, Mark Millard <markmi at dsl-only.net> wrote:

> On 2017-Nov-8, at 5:04 AM, Henri Hennebert <hlh at restart.be> wrote:
>=20
>> On 10/26/2017 16:57, Ian Lepore wrote:
>>> On Thu, 2017-10-26 at 01:06 -0700, Mark Millard wrote:
>>>> On 2017-Oct-26, at 12:40 AM, Henri Hennebert <hlh@restart.be> =
wrote:
>>>>=20
>>>>>=20
>>>>> After a upgrade from r320599 to r324563, ntpd can't keep time for =
long.
>>>>> After one hour, the clock run too fast.
>>>> I'm running:
>>>>=20
>>>> # uname -apKU
>>>> FreeBSD pine64 12.0-CURRENT FreeBSD 12.0-CURRENT  r324743M  arm64 =
aarch64 1200051 1200051
>>>>=20
>>>> Top shows:
>>>>=20
>>>> /usr/sbin/ntpd -g -c /etc/ntp.conf -p /var/run/ntpd.pid -f =
/var/db/ntpd.drift
>>>>=20
>>>> It has been up for 3 days and date shows
>>>> what I'd expect (local time). Also:
>>>>=20
>>>> # ntpq -p
>>>>     remote           refid      st t when poll reach   delay   =
offset  jitter
>>>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
>>>> 0.freebsd.pool. .POOL.          16 p    -   64    0    0.000    =
0.000   0.000
>>>> +96.226.123.195  128.138.141.172  2 u  486  512  377   53.512   =
-0.639   0.795
>>>> +clock.xmission. 128.138.141.172  2 u   75  512  377   43.109   =
-0.005   1.301
>>>> *chl.la          127.67.113.92    2 u  272  512  177   29.258    =
0.091   1.667
>>>> +mirror1.sjc02.s 162.213.2.253    2 u   44  512  377   28.404   =
-0.632   2.297
>>>> -mdnworldwide.co 216.218.254.202  2 u   95 1024  377   68.184   =
-3.070   1.488
>>=20
>> I upgrade to r324743 and ntpd can't keep time. Maybe of importance, I =
was upgrading the ports after this switch to r324743. Moreover the =
problem with pf occurs really frequently (see
>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D222126)
>=20
> The Pine64+ 2GB that I have access to still is
> operating fine for the date/time:
>=20
> # uname -apKU
> FreeBSD pine64 12.0-CURRENT FreeBSD 12.0-CURRENT  r324743M  arm64 =
aarch64 1200051 1200051
>=20
> # uptime
> 5:59AM  up 16 days, 12:49, 2 users, load averages: 0.04, 0.07, 0.07
>=20
> (It has been largely idle over much of
> that time, but did svnlite update /usr/ports
> and poudriere bulk related to what I
> later list.)
>=20
> # date
> Wed Nov  8 06:00:35 PST 2017
>=20
> # more /var/db/ntpd.drift
> 39.921
>=20
> # ntpq -p
>     remote           refid      st t when poll reach   delay   offset  =
jitter
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> 0.freebsd.pool. .POOL.          16 p    -   64    0    0.000    0.000  =
 0.000
> -time-c-g.nist.g .NIST.           1 u  976 1024  377   91.445   -1.676 =
  1.383
> -tock.no-such-ag 129.6.15.29      2 u 1051 1024  377   79.671    0.076 =
  0.956
> +104.131.53.252  209.51.161.238   2 u  156 1024  377   79.349    1.070 =
  0.666
> +4.53.160.75     142.66.101.13    2 u  427 1024  377   56.329    2.112 =
  1.541
> *us-wa.ntp.dark- 200.98.196.212   2 u  301 1024  377   12.786    1.213 =
  2.268
>=20
>=20
> The Pine64+ 2GB configuration is nearly
> default, no pf or such. details follow.
>=20
> # more /boot/loader.conf=20
> geom_label_load=3D"YES"           # File system labels (see glabel(8))
> #
> kern.cam.boot_delay=3D"10000"
> dumpdev=3D"/dev/label/PINE642Gswap"
>=20
> # more /etc/rc.conf
> hostname=3D"pine64"
> #
> keymap=3D"us"
> #
> background_dhclient=3D"YES"
> synchronous_dhclient=3D"YES"
> #
> ifconfig_awg0=3D"DHCP"
> #
> sshd_enable=3D"YES"
> #
> # Nice if you have a network, else annoying.
> ntpd_enable=3D"YES"
> ntpd_sync_on_start=3D"YES"
> #
> # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
> dumpdev=3D"/dev/label/PINE642Gswap"
> #
> rpcbind_enable=3D"YES"
> nfs_server_enable=3D"YES"
> mountd_flags=3D"-r"
> #
> nfs_client_enable=3D"YES"
>=20
> (Note: The following were built with
> poudriere bulk, which, of course,
> built more than is installed.)
>=20
> # pkg info
> atf-0.21                       C, C++ and shell libraries to write =
ATF-compliant test programs
> binutils-2.28,1                GNU binary tools
> bonnie-2.0.6_1                 Performance Test of Filesystem I/O
> bonnie++-1.97.3                Performance Test of Filesystem I/O
> ca_root_nss-3.32.1             Root certificate bundle from the =
Mozilla Project
> curl-7.56.1                    Command line tool and library for =
transferring data with URLs
> dialog4ports-0.1.6             Console Interface to configure ports
> dtrace-toolkit-1.0_1           Collection of useful scripts for DTrace
> dwarfdump-20161124             Tool to display DWARF debugging =
information in ELF files
> expat-2.2.1                    XML 1.0 parser written in C
> freebsd-release-manifests-20171003 FreeBSD release manifests
> gcc7-7.2.0_2                   GNU Compiler Collection 7
> gdb-8.0.1_1                    GNU GDB of newer version than comes =
with the system
> gettext-runtime-0.19.8.1_1     GNU gettext runtime libraries and =
programs
> git-lite-2.14.3                Distributed source code management tool =
(lite package)
> gmp-6.1.2                      Free library for arbitrary precision =
arithmetic
> indexinfo-0.3                  Utility to regenerate the GNU info page =
index
> iorate-3.05                    General purpose storage I/O =
benchmarking tool
> iozone-3.457                   Performance Test of Sequential File I/O
> kyua-0.13_4,3                  Testing framework for infrastructure =
software
> libedit-3.1.20170329_2,1       Command line editor library
> libidn2-2.0.4                  Implementation of IDNA2008 =
internationalized domain names
> libnghttp2-1.27.0              HTTP/2.0 C Library
> libunistring-0.9.7             Unicode string library
> lua52-5.2.4                    Small, compilable scripting language =
providing easy access to C code
> lutok-0.4_6                    Lightweight C++ API for Lua
> mpc-1.0.3                      Library of complex numbers with =
arbitrarily high precision
> mpfr-3.1.6                     Library for multiple-precision =
floating-point computations
> patch-2.7.5                    GNU patch utility
> pcre-8.40_1                    Perl Compatible Regular Expressions =
library
> perl5-5.24.3                   Practical Extraction and Report =
Language
> pkg-1.10.1                     Package manager
> portlint-2.17.13               Verifier for FreeBSD port directory
> portmaster-3.17.10             Manage your ports without external =
databases or languages
> poudriere-devel-3.1.99.20171028 Port build and test system
> randomio-1.4                   Multithreaded disk i/o microbenchmark
> readline-7.0.3_1               Library for editing command lines as =
they are typed
> rsync-3.1.2_7                  Network file =
distribution/synchronization utility
> sqlite3-3.20.1_2               SQL database engine in a C library
> stress-1.0.4                   Tool to impose load on and stress test =
Unix-like systems
> sudo-1.8.21p2                  Allow others to run commands as root
> unzip-6.0_7                    List, test, and extract compressed =
files from a ZIP archive
> wget-1.19.2                    Retrieve files from the Net via HTTP(S) =
and FTP
> zip-3.0_1                      Create/update ZIP files compatible with =
PKZIP
>=20
> # svnlite info /usr/ports | grep "Re[plv]"
> Relative URL: ^/head
> Repository Root: svn://svn.freebsd.org/ports
> Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
> Revision: 453215
> Last Changed Rev: 453215
>=20
> # ps -aux
> USER     PID  %CPU %MEM   VSZ   RSS TT  STAT STARTED        TIME =
COMMAND
> root      11 400.0  0.0     0    64  -  RNL  22Oct17 93930:24.03 =
[idle]
> root       0   0.0  0.0     0   272  -  DLs  22Oct17     0:04.31 =
[kernel]
> root       1   0.0  0.0  9872   128  -  ILs  22Oct17     0:00.15 =
/sbin/init --
> root       2   0.0  0.0     0    16  -  DL   22Oct17     0:00.00 =
[crypto]
> root       3   0.0  0.0     0    16  -  DL   22Oct17     0:00.00 =
[crypto returns]
> root       4   0.0  0.0     0    32  -  DL   22Oct17    19:46.41 [cam]
> root       5   0.0  0.0     0    16  -  DL   22Oct17     0:00.00 =
[sctp_iterator]
> root       6   0.0  0.0     0    16  -  DL   22Oct17    15:21.84 =
[rand_harvestq]
> root       7   0.0  0.0     0    16  -  DL   22Oct17     0:00.43 =
[soaiod1]
> root       8   0.0  0.0     0    16  -  DL   22Oct17     0:00.33 =
[soaiod2]
> root       9   0.0  0.0     0    16  -  DL   22Oct17     0:00.42 =
[soaiod3]
> root      10   0.0  0.0     0    16  -  DL   22Oct17     0:00.00 =
[audit]
> root      12   0.0  0.0     0   224  -  WL   22Oct17   313:25.83 =
[intr]
> root      13   0.0  0.0     0    48  -  DL   22Oct17    34:24.71 =
[geom]
> root      14   0.0  0.0     0   160  -  DL   22Oct17    86:16.22 [usb]
> root      15   0.0  0.0     0    16  -  DL   22Oct17     2:59.38 =
[soaiod4]
> root      16   0.0  0.0     0    16  -  DL   22Oct17     0:09.45 =
[mmcsd0: mmc/sd card]
> root      17   0.0  0.0     0    48  -  DL   22Oct17     0:31.22 =
[pagedaemon]
> root      18   0.0  0.0     0    16  -  DL   22Oct17     0:00.00 =
[vmdaemon]
> root      19   0.0  0.0     0    32  -  DL   22Oct17     9:59.58 =
[bufdaemon]
> root      20   0.0  0.0     0    16  -  DL   22Oct17     0:22.27 =
[bufspacedaemon]
> root      21   0.0  0.0     0    16  -  DL   22Oct17     1:43.47 =
[syncer]
> root      22   0.0  0.0     0    16  -  DL   22Oct17     7:47.06 =
[vnlru]
> root     276   0.0  0.0 11500   384  -  Is   22Oct17     0:00.01 =
dhclient: awg0 [priv] (dhclient)
> _dhcp    277   0.0  0.0 11664   720  -  ICs  22Oct17     0:00.02 =
dhclient: awg0 (dhclient)
> root     382   0.0  0.0 13744   112  -  Is   22Oct17     0:01.61 =
/sbin/devd
> root     453   0.0  0.1 12108  1268  -  Ss   22Oct17     3:04.02 =
/usr/sbin/syslogd -s
> root     462   0.0  0.0 11300   708  -  Ss   22Oct17     0:03.89 =
/usr/sbin/rpcbind
> root     588   0.0  0.0 12468   868  -  Is   22Oct17     0:00.16 =
/usr/sbin/mountd -r
> root     590   0.0  0.0 11816   696  -  Is   22Oct17     0:00.09 nfsd: =
master (nfsd)
> root     591   0.0  0.1 10912  1096  -  I    22Oct17     3:01.28 nfsd: =
server (nfsd)
> root     627   0.0  0.9 17860 17944  -  Ss   22Oct17     1:13.39 =
/usr/sbin/ntpd -g -c /etc/ntp.conf -p /var/run/ntpd.pid -f =
/var/db/ntpd.drift
> root     670   0.0  0.0 19076   984  -  Is   22Oct17     0:00.01 =
/usr/sbin/sshd
> root     673   0.0  0.1 15308  1744  -  Ss   22Oct17     0:35.19 =
sendmail: accepting connections (sendmail)
> smmsp    676   0.0  0.1 15156  1060  -  Is   22Oct17     0:00.65 =
sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue (sendmail)
> root     680   0.0  0.1 11616  1044  -  Ss   22Oct17     0:07.92 =
/usr/sbin/cron -s
> root   29637   0.0  0.2 20412  3368  -  Is   Wed23       0:00.08 sshd: =
markmi [priv] (sshd)
> markmi 29640   0.0  0.1 20776  1508  -  S    Wed23       0:23.83 sshd: =
markmi@pts/0 (sshd)
> root     728   0.0  0.1 13360  1644 u0  Is   22Oct17     0:00.06 login =
[pam] (login)
> root    8809   0.0  0.1 12260  1940 u0  I    25Oct17     0:00.26 -sh =
(sh)
> root   11533   0.0  0.1 13396  2564 u0  I+   26Oct17    49:23.32 top =
-CawPosize
> markmi 29641   0.0  0.1 12256  1644  0  Is   Wed23       0:00.02 -sh =
(sh)
> root   29647   0.0  0.1 13320  1644  0  I    Wed23       0:00.04 su
> root   29648   0.0  0.1 12364  2180  0  S    Wed23       0:00.08 su =
(sh)
> root   77304   0.0  0.1 12228  2836  0  R+   06:03       0:00.01 ps =
-aux
>=20
> (Idle counts time per core.)
>=20
> # systat -vmstat
>=20
>    2 users    Load  0.06  0.07  0.07                  Nov  8 06:23
>   Mem usage:  76%Phy  1%Kmem
> Mem: KB    REAL            VIRTUAL                      VN PAGER   =
SWAP PAGER
>        Tot   Share      Tot    Share    Free           in   out     in =
  out
> Act   49684    8044   290752    16296  479568  count
> All   51444    9720   319156    44208          pages
> Proc:                                                            =
Interrupts
>  r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        ioflt    14 =
total
>             52        41    1   29   13    8             cow       4 =
gic0,p11:
>                                                          zfod        =
gic0,s0: u
> 0.0%Sys   0.0%Intr  0.0%User  0.0%Nice  100%Idle         ozfod       =
gic0,s60:
> |    |    |    |    |    |    |    |    |    |           %ozfod     2 =
gic0,s74:
>                                                          daefr     1 =
gic0,s82:
>                                      1273 dtbuf          prcfr       =
cpu0:ast
> Namei     Name-cache   Dir-cache     43272 desvn          totfr       =
cpu1:ast
>   Calls    hits   %    hits   %     43272 numvn          react       =
cpu2:ast
>       3       3 100                 34206 frevn          pdwak       =
cpu3:ast
>                                                          pdpgs     2 =
cpu0:preem
> Disks mmcsd   da0 pass0                                   intrn     1 =
cpu1:preem
> KB/t   0.00  0.00  0.00                            408808 wire      3 =
cpu2:preem
> tps       0     0     0                              5100 act       1 =
cpu3:preem
> MB/s   0.00  0.00  0.00                           1116460 inact       =
cpu0:rende
> %busy     0     0     0                             18472 laund       =
cpu1:rende
>                                                   479568 free        =
cpu2:rende
>                                                   143508 buf         =
cpu3:rende
>                                                                      =
cpu0:hardc
>=20
>=20
> It might be appropriate to back things off to
> near-default and see if the time keeping is
> then okay. (Compare to what I have, for
> example.) Sitting idle might be part of this
> experiment.
>=20
> If it is okay, then gradually reintroduce things,
> monitoring for time problems between, until
> time starts to be a problem. Back off the
> recent additions and then keep gradually
> adding other things. See what all you can
> have without having time problems vs. what
> leads to problems.
>=20
> Of course if the near-default still has time
> problems sitting idle it would suggest something
> more basic in your context is involved,
> possibly hardware or a bad ntp time source.

# more /usr/src/sys/arm64/conf/GENERIC-NODBG
#
# GENERIC -- Custom configuration for the arm64/aarch64
#

include "GENERIC"

ident   GENERIC-NODBG

makeoptions     DEBUG=3D-g                # Build kernel with gdb(1) =
debug symbols

options         ALT_BREAK_TO_DEBUGGER

options         KDB                     # Enable kernel debugger support

# For minimum debugger support (stable branch) use:
#options        KDB_TRACE               # Print a stack trace for a =
panic
options         DDB                     # Enable the kernel debugger

# Extra stuff:
#options        VERBOSE_SYSINIT         # Enable verbose sysinit =
messages
#options        BOOTVERBOSE=3D1
#options        BOOTHOWTO=3DRB_VERBOSE
#options        KTR
#options        KTR_MASK=3DKTR_TRAP
##options       KTR_CPUMASK=3D0xF
#options        KTR_VERBOSE

# Disable any extra checking for. . .
nooptions       DEADLKRES               # Enable the deadlock resolver
nooptions       INVARIANTS              # Enable calls of extra sanity =
checking
nooptions       INVARIANT_SUPPORT       # Extra sanity checks of =
internal structures, required by INVARIANTS
nooptions       WITNESS                 # Enable checks to detect =
deadlocks and cycles
nooptions       WITNESS_SKIPSPIN        # Don't run witness on spinlocks =
for speed
nooptions       DIAGNOSTIC
nooptions       MALLOC_DEBUG_MAXZONES   # Separate malloc(9) zones
nooptions       BUF_TRACKING
nooptions       FULL_BUF_TRACKING


=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?92708941-6FB9-446D-B231-05B9A5392108>