Re: git: e81e77c5a055 - main - Enable PPS_SYNC on amd64, arm64 and armv7

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Mon, 11 Oct 2021 22:05:37 UTC
On Mon, Oct 11, 2021 at 02:09:58PM -0700, John Baldwin wrote:
> On 10/11/21 1:46 PM, Konstantin Belousov wrote:
> > On Mon, Oct 11, 2021 at 01:37:21PM -0700, John Baldwin wrote:
> > > On 10/10/21 12:34 PM, Konstantin Belousov wrote:
> > > > The branch main has been updated by kib:
> > > > 
> > > > URL: https://cgit.FreeBSD.org/src/commit/?id=e81e77c5a055d1cbf6d6a6f0acbaf443267aa84f
> > > > 
> > > > commit e81e77c5a055d1cbf6d6a6f0acbaf443267aa84f
> > > > Author:     Konstantin Belousov <kib@FreeBSD.org>
> > > > AuthorDate: 2021-10-10 12:20:45 +0000
> > > > Commit:     Konstantin Belousov <kib@FreeBSD.org>
> > > > CommitDate: 2021-10-10 19:34:40 +0000
> > > > 
> > > >       Enable PPS_SYNC on amd64, arm64 and armv7
> > > >       Remove the option from NOTES/LINT, and add to NOTES for powerpc and
> > > >       riscv.
> > > >       PR:     259036
> > > >       Requested by:   John Hay <john@sanren.ac.za>
> > > >       Discussed with: ian, imp
> > > >       Sponsored by:   The FreeBSD Foundation
> > > >       MFC after:      1 week
> > > 
> > > Hmm, if the option is MI, why move it out of the MI NOTES?  We don't
> > > generally remove items from NOTES just because they are enabled by default
> > > in GENERIC.  That would break the functionality of NOTES where it documents
> > > options (and sometimes provides more detail than the 1-liner comments we
> > > use in GENERIC).
> > > 
> > > In this case I would have left NOTES as-is and instead added PPS_SYNC to
> > > the relevant GENERIC files with a one-line comment leaving the more
> > > detailed comment in NOTES.
> > 
> > To have both PPS_SYNC and !PPS_SYNC covered during tinderbox.
> > If an option is present in both NOTES and GENERIC, there is a chance
> > that its absence is not compiled.> Bruce' opinion was that LINT should
> > be mostly complementary to GENERIC.
> 
> That doesn't match what we actually do.  For example, INET and INET6 are in
> both, SMP, SOFTUPDATES, etc.  I think you can go through amd64 GENERIC and
> every option in it is in NOTES except now for PPS_SYNC.
> 
> I ran this before your commit:
> 
> % awk '/^(device|options)/ { print $2 }' GENERIC | sort > one
> % awk '/^(device|options)/ { print $2 }' ../../conf/NOTES ../../x86/conf/NOTES NOTES | sort > two
> 
> Items only in GENERIC (I would say most of these are probably bugs in the form of
> missing entries in NOTES, ULE is 4BSD in NOTES instead, and VERBOSE_SYSINIT
> has the default value of 1 in NOTES):
> 
> % > comm -23 one two
> AH_AR5416_INTERRUPT_MITIGATION
> ATH_ENABLE_11N
> BUF_TRACKING
> DDB_CTF
> FIB_ALGO
> FULL_BUF_TRACKING
> IOMMU
> KDTRACE_FRAME
> PRINTF_BUFR_SIZE=128
> RACCT_DEFAULT_TO_DISABLED
> SCHED_ULE
> VERBOSE_SYSINIT=0
> ath_pci
> ocs_fc
> pvscsi
> tws
> vge
> 
> The number of options duplicated in both NOTES and GENERIC:
> 
> % comm -12 one two | wc -l
>      259

Ok, are you fine with the following?

commit 902360bb75ed2bc5a9c33b790eded627cac57483
Author: Konstantin Belousov <kib@FreeBSD.org>
Date:   Tue Oct 12 01:02:35 2021 +0300

    Restore PPS_SYNC in NOTES
    
    This partially reverts e81e77c5a055, leaving the option both in
    GENERICs on amd64/arm64/arm, and in global NOTES file.  Apparently
    this better matches existing practice, where we do not try to hard
    to make LINT and GENERIC complimentary.
    
    Requested by:   jhb
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week

diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index e41b00edf2f6..39446fba06b3 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -1245,6 +1245,12 @@ options 	CAPABILITY_MODE	# sandboxes with no global namespace access
 
 options 	HZ=100
 
+# Enable support for the kernel PLL to use an external PPS signal,
+# under supervision of [x]ntpd(8)
+# More info in ntpd documentation: http://www.eecis.udel.edu/~ntp
+
+options 	PPS_SYNC
+
 # Enable support for generic feed-forward clocks in the kernel.
 # The feed-forward clock support is an alternative to the feedback oriented
 # ntpd/system clock approach, and is to be used with a feed-forward
diff --git a/sys/powerpc/conf/NOTES b/sys/powerpc/conf/NOTES
index 1a0c70fb08f9..78d990331ead 100644
--- a/sys/powerpc/conf/NOTES
+++ b/sys/powerpc/conf/NOTES
@@ -46,8 +46,6 @@ options 	PSIM			#GDB PSIM ppc simulator
 options 	MAMBO			#IBM Mambo Full System Simulator
 options		QEMU			#QEMU processor emulator
 
-options 	PPS_SYNC
-
 # The cpufreq(4) driver provides support for CPU frequency control
 device		cpufreq
 
diff --git a/sys/riscv/conf/NOTES b/sys/riscv/conf/NOTES
index 60e842ab2709..7dda89bfe1a8 100644
--- a/sys/riscv/conf/NOTES
+++ b/sys/riscv/conf/NOTES
@@ -20,8 +20,6 @@ options 	FPE			# Floating-point extension support
 options 	RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
 options 	INTRNG			# Include INTRNG framework
 
-options 	PPS_SYNC
-
 # RISC-V SBI console
 device		rcons