Re: Dual-core systems - AMD - Windows Vista



Danny Mayer wrote:
David J Taylor wrote:
Thanks for your reply. Perhaps my recollection is at fault here, but I
recall that NTP on Windows uses some interpolation technique to overcome
timer granularity, and that the interpolation used a CPU counter.

We are intending to implement that but we haven't done so yet.

Huh? Danny you should know the code is already there for many years ...

Now I think further into the topic, I realise that with Windows XP NTP
works perfectly witha dual-core AMD or Intel system (once the multi-media
timers are enabled for the duration), but the problem appears to be on
Windows Vista. So the question I should be asking is more: "How does
Windows Vista differ from Windows XP so as to affect NTP, and is that
anything to do with multi-processors or not?".

The performance I'm seeing is definitely much poorer and, at times, it
looks almost like NTP is switching between two different times. For
example, look at yesterday around 10:00 UTC.

As mentioned in my other post, this may depend on which HAL is currently
used, i.e. which type of timer is being used to implement the performance
counter, and whether the timer clock frequency is constant, or not. I did
not yet have more time to play around with this.

http://www.david-taylor.myby.co.uk/mrtg/gemini_ntp.html

I may try rebooting that PC with dual-core disabled and see what happens.

There are a couple of boot switches you can try and see if that makes a
difference. I'm not really familiar with Vista and the switch might not
help on Vista. You should also consider that it may be doing things in a
different way which could cause additional interrupts so that the clock
tick doesn't update in a regular fashion. The possibilities are endless.
Time for a support call to Microsoft? I know you don't have 8 hours to
remain on hold.

There is one other thing that needs to be considered. This is a 64-bit
system> In that case it's possible that the code may need to be changed
to deal with it properly. For example using the VS 2005 compiler I have
found that it uses a 64-bit integer instead of 32-bit integer for
time_t. This could affect the quality of the results, it's hard to say.

Shouldn't this only matter when the 32 bit time_t overflows?

Martin
--
Martin Burnicki

Meinberg Funkuhren
Bad Pyrmont
Germany
.



Relevant Pages

  • Re: ntp client over satellite and no CMOS battery
    ... uses the Windows multimedia timers and sets them to highest resolution of 1 ... like NTP looses about 15 to 20 milliseconds, which looks to NTP as if the ... system time has been stepped a bit. ... However, you know that under Windows, NTP uses a timer callback function ...
    (comp.protocols.time.ntp)
  • Re: ntp client over satellite and no CMOS battery
    ... >> already set the mm timer to high?est resolution at startup. ... Using the API calls provided by Windows, which are presumably also used by ... >> However, you know that under Windows, NTP uses a timer callback function ... >> which is used to interpolate the system time between two timer ticks. ...
    (comp.protocols.time.ntp)
  • Re: Regular 16ms jump of NTP on Windows XP SP2
    ... I didn't think NTP used old timers like that... ... ist run which modifies the Windows Multimedia Timer you will observe time ... clock loose a timer tick. ... We've had a customer where the Windows system time had lost 30 seconds ...
    (comp.protocols.time.ntp)
  • Re: Non-administrators can change time?
    ... Windows Server 2003 DOES have built in NTP service and can provide time syncronization to clients. ... the default is for all member computers to syncronize their time with a domain controller. ... Everything else required to keep all the domain controllers and domain members in sync is done automatically by the Windows Time Service. ... > Configure Windows NTP Client Enabled ...
    (microsoft.public.windows.server.general)
  • Re: Do-Nothing WinForm App Using 4 Threads?
    ... Windows CE). ... | refactoring a multi-threaded GUI app at work and want to be sure it's ... I expected a timer to be on its own ... And the event handling from remote objects ...
    (microsoft.public.dotnet.languages.csharp)