Date: Mon, 19 Aug 2019 08:26:42 -0600 From: Ian Lepore <ian@freebsd.org> To: "O'Connor, Daniel" <darius@dons.net.au> Cc: "usb@freebsd.org" <usb@FreeBSD.org>, "freebsd-arm@FreeBSD.org" <freebsd-arm@FreeBSD.org> Subject: Re: Is it a good idea to use a usb-serial adapter for PPS input? Yes, it is. Message-ID: <fc1ef92211cfc9aeff3b4bd4335d69ceda5e5223.camel@freebsd.org> In-Reply-To: <9E142F1A-5E8C-4410-91F5-7C80B3D0A15B@dons.net.au> References: <f1d765814f722fb2c99c9870b3cc2607b4eca2d7.camel@freebsd.org> <B9EFA4D4-C1AD-4181-B421-F6BD53434FA5@dons.net.au> <bfd784f6ac9c939dbe6a243336bc3b6eab02d4f5.camel@freebsd.org> <61B1AAF3-40F6-47BC-8F05-7491C13BF288@dons.net.au> <9E142F1A-5E8C-4410-91F5-7C80B3D0A15B@dons.net.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2019-08-19 at 17:09 +0930, O'Connor, Daniel wrote: > > On 12 Aug 2019, at 09:09, O'Connor, Daniel <darius@dons.net.au> > > wrote: > > > always get lost on single-core processors which are in cpu_idle() > > > at > > > the time the hardclock interrupt happens. (But that's fixable by > > > just > > > increasing the number of timehands, I think at least 4 are > > > required.) > > > > OK, how do I increase the number of clock hands? > > I am going to try this diff but buildkernel is going to take a > while... > > diff --git a/sys/kern/kern_tc.c b/sys/kern/kern_tc.c > index 2656fb4d2..00440b6a2 100644 > --- a/sys/kern/kern_tc.c > +++ b/sys/kern/kern_tc.c > @@ -83,8 +83,48 @@ struct timehands { > struct timehands *th_next; > }; > > -static struct timehands th0; > +static struct timehands th2; > static struct timehands th1 = { > + .th_next = &th2 > +}; > + > +static struct timehands th3; > +static struct timehands th2 = { > + .th_next = &th3 > +}; > + > +static struct timehands th4; > +static struct timehands th3 = { > + .th_next = &th4 > +}; > + > +static struct timehands th5; > +static struct timehands th4 = { > + .th_next = &th5 > +}; > + > +static struct timehands th6; > +static struct timehands th5 = { > + .th_next = &th6 > +}; > + > +static struct timehands th7; > +static struct timehands th6 = { > + .th_next = &th7 > +}; > + > +static struct timehands th8; > +static struct timehands th7 = { > + .th_next = &th8 > +}; > + > +static struct timehands th9; > +static struct timehands th8 = { > + .th_next = &th9 > +}; > + > +static struct timehands th0; > +static struct timehands th9 = { > .th_next = &th0 > }; > static struct timehands th0 = { > Oh, I'm sorry, I forgot to respond about this. Yeah, that patch would do it. I think a minimum of 4 sets of timehands are needed for pps capture on a single-core system with a latching timecounter like dmtpps. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fc1ef92211cfc9aeff3b4bd4335d69ceda5e5223.camel>