From: Alexander Gordeev <lasaine@lvk.cs.msu.su>
To: john stultz <johnstul@us.ibm.com>
Cc: linux-kernel@vger.kernel.org, linuxpps@ml.enneenne.com,
"Nikita V. Youshchenko" <yoush@cs.msu.su>,
stas@lvk.cs.msu.su, Rodolfo Giometti <giometti@enneenne.com>
Subject: Re: [PATCHv2 0/6] pps: time synchronization over LPT
Date: Tue, 23 Mar 2010 00:37:47 +0300 [thread overview]
Message-ID: <20100323003747.35ea417a@tornado.gnet> (raw)
In-Reply-To: <1269291710.3283.11.camel@localhost.localdomain>
[-- Attachment #1: Type: text/plain, Size: 3750 bytes --]
В Mon, 22 Mar 2010 14:01:50 -0700
john stultz <johnstul@us.ibm.com> пишет:
> On Mon, 2010-03-22 at 23:42 +0300, Alexander Gordeev wrote:
> > Hi John,
> >
> > Sorry for the delay...
> >
> > В Mon, 8 Mar 2010 19:25:07 -0800
> > john stultz <johnstul@us.ibm.com> пишет:
> >
> > > On Wed, Feb 24, 2010 at 4:28 AM, Alexander Gordeev
> > > <lasaine@lvk.cs.msu.su> wrote:
> > > > This patchset is tested against the vanilla 2.6.32.9 kernel.
> > > > But we are actually using it on 2.6.31.12-rt20 rt-preempt
> > > > kernel most of the time. Also there is a version which should
> > > > be applied on top of LinuxPPS out of tree patches (i.e. all
> > > > clients and low-level irq timestamps stuff). Those who are
> > > > interested in other versions of the patchset can find them in
> > > > my git repository:
> > > > http://lvk.cs.msu.su/~lasaine/timesync/linux-2.6-timesync.git
> > > >
> > > > There is one problem however: hardpps() works bad when used on
> > > > top of 2.6.33-rc* with CONFIG_NO_HZ enabled. The reason for
> > > > this is commit a092ff0f90cae22b2ac8028ecd2c6f6c1a9e4601.
> > > > Without it hardpps() is able to sync to 1us precision in about
> > > > 10 seconds. With it
> > >
> > > Uh. Not sure I see right off why the logarithmic time accumulation
> > > would give you troubles. Its actually there to try to fix a
> > > couple of NTP issues that cropped up when the accumulation
> > > interval was pushed out to 2HZ with CONFIG_NO_HZ.
> >
> > Yes, I know. I guess (based on the commit log and other sources)
> > that this change was added to make chrony work better on tickless
> > kernel. So chrony corrects the time using only frequency
> > corrections?
>
> I'm not super familiar with chrony, but from talking with folks who
> work on it, it doesn't use the doesn't use the kernel pll, and
> instead uses old oneshot mode.
>
> So yea, the logarithmic accumulation did help chrony as well as other
> users of adjtimex that expected to be able to make HZ granular
> adjustments.
>
>
> > My approach is different: use time_offset t remove the phase error
> > and adjust time_freq to remove frequency error.
>
> This sounds much closer to how NTP does it.
> So are you using the kernel PLL? or just singleshot for the offset?
It's very close a singleshot adjustment, but it uses time_offset instead
of time_adjust. This code does the trick:
static inline s64 ntp_offset_chunk(s64 offset)
{
if (time_status & STA_PPSTIME && time_status & STA_PPSSIGNAL)
return offset;
else
return shift_right(offset, SHIFT_PLL + time_constant);
}
So when kernel consumer is active, the whole time_offset is applied
immediately.
> > > Do you have any extra insight here as to whats going on with your
> > > code? The only thing I could guess would be second_overflow() is
> > > happening closer to the actual overflow, but maybe less
> > > regularly? But again, I'm not sure how this would be drastically
> > > different then before with the 2HZ accumulation period.
> >
> > I still can't find this out (partially because I'm too busy with
> > other tasks). The new code seems ok to mee. time_offset is added at
> > second_overflow as usual. Maybe the problem is with the frequency
> > correction. I'm going to run some tests that should show where the
> > problem is: in the phase or freq correction.
>
> Yea, you can play with things on the kernel side by setting
> NTP_INTERVAL_FREQ to 2 in include/linux/timex.h to move back to the
> coarser granularity (while preserving the logarithmic accumulation).
Great, thanks for the point! Didn't think of it.
> Do let me know if you find anything here.
Sure!
--
Alexander
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
prev parent reply other threads:[~2010-03-22 21:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-24 12:28 [PATCHv2 0/6] pps: time synchronization over LPT Alexander Gordeev
2010-02-24 12:28 ` [PATCHv2 1/6] ntp: add hardpps implementation Alexander Gordeev
2010-03-01 8:14 ` Rodolfo Giometti
2010-03-01 10:43 ` Alexander Gordeev
2010-02-24 12:28 ` [PATCHv2 2/6] pps: unify timestamp gathering Alexander Gordeev
2010-03-01 8:18 ` Rodolfo Giometti
2010-02-24 12:28 ` [PATCHv2 3/6] pps: capture MONOTONIC_RAW timestamps as well Alexander Gordeev
2010-03-01 8:19 ` Rodolfo Giometti
2010-02-24 12:28 ` [PATCHv2 4/6] pps: add kernel consumer support Alexander Gordeev
2010-03-01 8:29 ` Rodolfo Giometti
2010-03-01 10:48 ` Alexander Gordeev
2010-02-24 12:28 ` [PATCHv2 5/6] pps: add parallel port PPS signal generator Alexander Gordeev
2010-03-01 8:38 ` Rodolfo Giometti
2010-03-01 10:51 ` Alexander Gordeev
2010-02-24 12:28 ` [PATCHv2 6/6] pps: add parallel port PPS client Alexander Gordeev
2010-03-01 8:42 ` Rodolfo Giometti
2010-03-09 3:25 ` [PATCHv2 0/6] pps: time synchronization over LPT john stultz
2010-03-22 20:42 ` Alexander Gordeev
2010-03-22 21:01 ` john stultz
2010-03-22 21:37 ` Alexander Gordeev [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100323003747.35ea417a@tornado.gnet \
--to=lasaine@lvk.cs.msu.su \
--cc=giometti@enneenne.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxpps@ml.enneenne.com \
--cc=stas@lvk.cs.msu.su \
--cc=yoush@cs.msu.su \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox