Short pings? Or long?



  • This screenshot was sent to me by a friend:

    I'm trying to figure out whether he has a psychic server, or whether his server is taking a really, really, really long time. Or, the third option, that ping is returning wonky results. :)



  • Fourth option: your clock was updated in the time it took that reply to come back. I'm not certain, but if ping is using the system clock to calculate return times, and the clock is skewed back several milliseconds, then it could in the right situations mess up ping output. While I believe the default clock synching in Windows XP doesn't skew, if you have something more like proper NTP, that could be the cause.



  • Wonky results indeed.

    The Real WTF®™© is that the user's directory is user (or that you took time to anonymize the screenshot).



  • Or your clock is simply broken, or you have discovered a new bug in Windows.



  • If you have a dual core AMD then google is your friend:

     http://wiki.ljackson.us/Negative_Ping_Time

     I.

     



  • @IanB said:

    If you have a dual core AMD then google is your friend:

     http://wiki.ljackson.us/Negative_Ping_Time


    OK, I have to ask... WTF is a 'processor driver'? Is that a device driver you need to use your processor? What runs the processor device driver - other than the processor, which you can't use without the processor driver? Argh...




  • @pscs said:


    OK, I have to ask... WTF is a 'processor driver'?

    It's a fix to a Windows bug stashed inside a device driver file. 



  • I once tried to run openntp on a xen guest VM which had apparently been configured such that the hypervisor kept the system clocks of all the systems in sync (in some way, not entirely sure). What happaned was that the two would constantly skew the clock back and forth, leading to some amusing things. MySQL was apparently using -3846.2% CPU, and nagios went absolutely crazy, reporting random ping times in billions of ms (unsigned/signed) for random hosts ;)



  • It’s more WTF that -10 is obviously larger than 0 because it’s the maximum.



  • @aquanight said:

    Fourth option: your clock was updated in the time it took that reply to come back. I'm not certain, but if ping is using the system clock to calculate return times, and the clock is skewed back several milliseconds, then it could in the right situations mess up ping output. While I believe the default clock synching in Windows XP doesn't skew, if you have something more like proper NTP, that could be the cause.

    Incidentally, it was completely repeatable (note that he did it twice in that screenshot).

    Funny that his directory is "user".. I didn't anonymize anything, but he may have.



  • Maybe it's a really long (3599.990 seconds) ping and his computer crossed into another time zone, so it reset the clock back an hour?



  • @rbowes said:

    Funny that his directory is "user".. I didn't anonymize anything, but he may have.

    That would be a pretty WTF method of anonymization considering that he could do 'cd \' instead.
     



  • @pscs said:

    @IanB said:

    If you have a dual core AMD then google is your friend:

    http://wiki.ljackson.us/Negative_Ping_Time


    OK, I have to ask... WTF is a 'processor driver'? Is that a device driver you need to use your processor? What runs the processor device driver - other than the processor, which you can't use without the processor driver? Argh...


     

    All hardware has it's quirks. The system needs to know about these quirks in order to optimize the way it works. A good example is the fact that you have a dual-core processor. To correctly schedule programs on the dual-core you need to know what the processor's preference for execution is... You may have hyperthreading (or other variations of it) and you need to know which "processor" is the primary thread and which one is the secondary one... Two cores each with two threads, the scheduler should not schedule 2 processes on the same core, but rather 1 on each core and a 3rd on the first and a 4th on the second. You also need to know what instruction sets you can execute to prevent system crashes from some program trying to execute an AMD64 instruction on a pentium... Also often games would avoid the operating system and issue commands directly to the processor instead of going through the system's scheduler, etc... This is why the drivers correct for such issues... Also it lets the manufacturers correct such issues without having to recall the processor.

     

    Also important for virtualization. 



  • @dlikhten said:

    @pscs said:
    @IanB said:

    If you have a dual core AMD then google is your friend:

    http://wiki.ljackson.us/Negative_Ping_Time


    OK, I have to ask... WTF is a 'processor driver'? Is that a device driver you need to use your processor? What runs the processor device driver - other than the processor, which you can't use without the processor driver? Argh...


     

    All hardware has it's quirks. The system needs to know about these quirks in order to optimize the way it works. A good example is the fact that you have a dual-core processor. To correctly schedule programs on the dual-core you need to know what the processor's preference for execution is... You may have hyperthreading (or other variations of it) and you need to know which "processor" is the primary thread and which one is the secondary one... Two cores each with two threads, the scheduler should not schedule 2 processes on the same core, but rather 1 on each core and a 3rd on the first and a 4th on the second. You also need to know what instruction sets you can execute to prevent system crashes from some program trying to execute an AMD64 instruction on a pentium... Also often games would avoid the operating system and issue commands directly to the processor instead of going through the system's scheduler, etc... This is why the drivers correct for such issues... Also it lets the manufacturers correct such issues without having to recall the processor.

     

    Also important for virtualization. 

    However, this particular driver does none of these things. It is merely a fix to a Windows bug relating to CPU power management and the rate at which the CPU's internal clocks tick.



  • I believe it just makes sure you have /usemptimer ("Use Multi-Processor Timer"?) in your boot.ini.

    IIRC Wasn't this fixed in XP SP2 anyway? 



  • @Thief^ said:

    I believe it just makes sure you have /usemptimer ("Use Multi-Processor Timer"?) in your boot.ini.

    It also fixes some incorrect assumptions about the behaviour of the high-resolution CPU timers.


Log in to reply