From: Jun Sun <jsun@mvista.com>
To: "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>
Cc: Ralf Baechle <ralf@linux-mips.org>,
linux-mips@linux-mips.org, jsun@mvista.com
Subject: Re: [patch] Generic time fixes
Date: Tue, 22 Jul 2003 15:43:40 -0700 [thread overview]
Message-ID: <20030722154340.F3135@mvista.com> (raw)
In-Reply-To: <Pine.GSO.3.96.1030722225739.607J-100000@delta.ds2.pg.gda.pl>; from macro@ds2.pg.gda.pl on Tue, Jul 22, 2003 at 11:21:04PM +0200
On Tue, Jul 22, 2003 at 11:21:04PM +0200, Maciej W. Rozycki wrote:
> On Tue, 22 Jul 2003, Jun Sun wrote:
>
> > > Before I proceed further I need to get an aswer to the following
> > > question: why do we use rtc_set_time() for NTP RTC updates instead of
> > > rtc_set_mmss() like most other architectures do? Traditionally Linux only
> > > updated minutes and seconds in this context and I don't think we need to
> > > do anything more. And setting minutes and seconds only is way, way
> > > faster. Which might not matter that much every 11 minutes, except doing
> > > things slowly here incurs a disruption in the latency of the timer
> > > interrupt, which NTP might not like and the slow calculation of the RTC
> > > time causes less precise time being stored in the RTC chip.
> >
> > rtc_set_time() is more generic interface as it is also used in other
> > places. Boards which easily speed up (i.e., emulate rtc_set_mmss()) by
> > doing something like the following:
> >
> > rtc_set_time(t)
> > {
> > if (t-last_time_set < 660 + delta)
> > rtc_set_mmss(t);
> > else
> > /* do a full rtc set */
> > last_time_set = t;
> > }
> >
> > A lot of boards don't do RTC update, and even when they do they
>
> These should be fixed.
>
> > usually don't have performance issues (such as in vr41xx cases).
> > It is not fair to tax every board by requiring a new board interface
> > function.
>
> Well, rtc_set_time() is only used by the timekeeping code, so I see no
> problem with renaming it. And the interface remains the same -- it's a
> number of seconds. So if a full update is faster than changing minutes
> and seconds only (e.g. the RTC is a monotonic counter -- I know a system
> that just counts 10 ms intervals), an implementation is free to do so
> (although that enforces UTC to be kept in the RTC; a good thing anyway),
> but it shouldn't be required to. And I think the name should be changed
> to reflect that.
>
Actually the drivers/char/mips-rtc.c uses it too. In that context
a full rtc set is needed.
The same interface can be used for the 2.6 gen-rtc.c as well, where
a full rtc update is needed also.
I like the current way it is because :
1) rtc_set_time() is a more generic interface so that it can be used
in more places (such as mips-rtc.c and gen-rtc.c).
2) rtc_set_mmss() can be reasonally emulated if it is desired on a particular
board
3) it is better to have just one rtc_set_xxx() instead of two.
> > BTW, at least one other arch (PPC) is not using rtc_set_mmss().
>
> Their reasoning being?
>
Probably the same reason as above?
> > > It's already questionable whether the update should be done at all (this
> > > was discussed zillion of times at the NTP group) and it disrupts
> > > timekeeping of the DECstation severely, but given the current choice, I'd
> > > prefer to make it as lightweight as possible.
> > >
> >
> > Whether to keep rtc in sync is an option which can be set by a board
>
> It can't. But it should be configurable with a sysctl (but it isn't
> now).
>
> > Simply do a
> >
> > time_status |= STA_UNSYNC
> >
> > in your <board>_setup routine will disable any RTC update.
>
> Well, time_status = STA_UNSYNC initially, but ntpd will reset that.
> Which is of course required to become a server.
>
Actually searching through the kernel I can't find the place where
the flag is cleared. Am I mistaken?
Jun
next prev parent reply other threads:[~2003-07-22 22:43 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-22 7:58 [patch] Generic time fixes Maciej W. Rozycki
2003-07-22 8:32 ` Jan-Benedict Glaw
2003-07-22 10:04 ` Ralf Baechle
2003-07-22 10:21 ` Wolfgang Denk
2003-07-22 11:21 ` Ralf Baechle
2003-07-22 20:54 ` Maciej W. Rozycki
2003-07-22 17:16 ` Jun Sun
2003-07-22 21:24 ` Maciej W. Rozycki
2003-07-22 20:38 ` Maciej W. Rozycki
2003-07-22 17:10 ` Jun Sun
2003-07-22 21:21 ` Maciej W. Rozycki
2003-07-22 22:37 ` Ralf Baechle
2003-07-22 22:55 ` Maciej W. Rozycki
2003-07-22 22:43 ` Jun Sun [this message]
2003-07-22 23:10 ` Maciej W. Rozycki
2003-07-22 23:37 ` Jun Sun
2003-07-23 0:30 ` Maciej W. Rozycki
2003-07-23 1:14 ` Jun Sun
2003-07-23 14:52 ` Maciej W. Rozycki
2003-07-23 17:00 ` Jun Sun
2003-07-24 11:13 ` Maciej W. Rozycki
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=20030722154340.F3135@mvista.com \
--to=jsun@mvista.com \
--cc=linux-mips@linux-mips.org \
--cc=macro@ds2.pg.gda.pl \
--cc=ralf@linux-mips.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.