Evandro and others, Now it's me that missed the point. I didn't realize you were concerned about a milliwatt or two every second. My first kneejerk reaction was why would you use ntpd on a laptop under conditions where it might sleep? Better to kill it before sleeping and restart when waking up. My second jerk was, even if the seconds interrupt could be avoided, there are still arriving and departing packets. I assume this wakes the beast, although at 1024 s poll, that might not be a problem.
Well, let's consider the case of a tickless ntpd and see what breaks. The first thing that breaks is the frequency discipline. As somebody mentioned, that can be done in the kernel on the assumption that tick interrupts dyill work. At a tick interrupt rate of 1000 Hz, this doesn't seem a good idea. Or maybe the hardware can be programmed to adjust the frequency. The frequency needs to be desciplined to the order of a few parts in 10^9, which would require some unusual chipset capabilities. A second approach might be to abandon frequency discipline except when a packet shows up, which with laptops I know will considerably degrade the accuracy, probablly to many tens of milliseconds, but this might not matter if the machine is sleeping. When it comes awake; however, there will ee nasty transient. Even more clever, anticipate the change due to the calibrated frequency error and yank accordingly. To do this, however, means a substantial modification of the clock discipline algorithm and some kind os switch to know when to do this. Next, just dropping in a timer queue facility makes no sense unless those peskty seconds counters can be replaced by calculated intervals that may have to be recalculated when some event or other happens. To do this is a major redesign job. Even considering the effort and testing requiree, it might be a worthwhile project better suited to an implementation other than ntpd. Maybe openNTP or chrony would be a better place to start. Better yet, take the ntp_proto.c module from thedistribution, throw everything else out and rebuild the infrastructure specialized for laptops. I must disclose I have an ulterior motive here, since an approach like this is needed for spacecraft. Dave Evandro Menezes wrote: > On May 16, 12:29 pm, "David L. Mills" <[EMAIL PROTECTED]> wrote: > >>In modern machines a timer interupt takes about one microsecond and to >>scan through the one-second code is really quick. So, we are talking >>about an overhead in the order of .00001 percent. > > > In terms of performance, yes, but in terms of power, no. If NTP gets > the CPU out of a deep stand-by state, then it may take hundreds of > milliseconds for the CPU to go back to that state. Moreover, NTP 1s- > timer may prevent the CPU from going to even deeper stand-by states. > > With this in mind, if NTP wakes the CPU up in order to do nothing, > it's not doing the right thing, IMHO. > > HTH _______________________________________________ questions mailing list [email protected] https://lists.ntp.org/mailman/listinfo/questions
