[haiku-bugs] [Haiku] #9277: Date/Time Skew Depending on CPU Frequency Stepping Policy

  • From: "br3wski3" <trac@xxxxxxxxxxxx>
  • Date: Sun, 09 Dec 2012 23:35:49 -0000

#9277: Date/Time Skew Depending on CPU Frequency Stepping Policy
-------------------------------------------------+-------------------------
 Reporter:  br3wski3                             |        Owner:  nobody
     Type:  bug                                  |       Status:  new
 Priority:  normal                               |    Milestone:  R1
Component:  - General                            |      Version:
 Keywords:  cpu frequency date time skew         |  R1/alpha4.1
  CPUFrequency                                   |   Blocked By:
 Blocking:                                       |  Has a Patch:  0
 Platform:  All                                  |
-------------------------------------------------+-------------------------
 Hi,

 I noticed that the date clock time has been falling behind with respect to
 the real time. I have tracked this down to a dependence on the CPU
 frequency. When I have the stepping policy with CPUFrequency set to
 Dynamic performance or Low energy or explicitly set the state to a lower
 than maximum frequency, the system clock time falls behind. When I have
 the policy set to High performance or the max frequency, the system time
 seems to keep up.

 Here is an example of setting the time and checking the time skew at
 various points with the policy set to Low energy which demonstrates the
 severe skew. The time is retrieved/parsed from time.gov in the first call
 and then compared subsequently a handful of times. I should also note that
 the CPU max frequency is 1.6 GHz while the Low energy state puts it at 600
 MHz.


 {{{

 ~> date -s `curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v
 'meta http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'`
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  35003      0 --:--:-- --:--:-- --:--:--
 40915
 Sun Dec  9 17:00:05 GMT 2012

 ~> curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v 'meta
 http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'; date
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  11902      0 --:--:-- --:--:-- --:--:--
 12613
 17:00:07
 Sun Dec  9 17:00:06 GMT 2012

 ~> curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v 'meta
 http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'; date
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  16115      0 --:--:-- --:--:-- --:--:--
 18100
 17:00:27
 Sun Dec  9 17:00:13 GMT 2012

 ~> curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v 'meta
 http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'; date
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  31541      0 --:--:-- --:--:-- --:--:--
 47735
 17:41:59
 Sun Dec  9 17:22:49 GMT 2012

 ~> curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v 'meta
 http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'; date
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  52009      0 --:--:-- --:--:-- --:--:--
 64920
 17:55:03
 Sun Dec  9 17:27:54 GMT 2012

 }}}

 As can be seen, the deviation increases steadily over the course of about
 fifty-five minutes.

 Now, a similar example sequence but with the Stepping policy in
 CPUFrequency set to High performance.

 {{{

 ~> date -s `curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v
 'meta http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'`
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  18269      0 --:--:-- --:--:-- --:--:--
 30242
 Sun Dec  9 18:05:26 GMT 2012

 ~> curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v 'meta
 http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'; date;
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  29417      0 --:--:-- --:--:-- --:--:--
 34531
 18:05:33
 Sun Dec  9 18:05:32 GMT 2012

 ~> curl 'http://www.time.gov/timezone.cgi?Eastern/d/-5' | grep -v 'meta
 http-equi' | grep '..:..:..' | sed -e 's/.*<b>//' -e 's/<.*//'; date;
   % Total    % Received % Xferd  Average Speed   Time    Time     Time
 Current
                                  Dload  Upload   Total   Spent    Left
 Speed
 100  4869    0  4869    0     0  19713      0 --:--:-- --:--:-- --:--:--
 32245
 18:26:30
 Sun Dec  9 18:26:29 GMT 2012

 }}}

 As can be seen, over the course of more than twenty minutes, the
 system/clock time remains in-line with time.gov.

 I could not find any other ticket reporting this. Also, I do not know if
 there is something specific about my system causing this but I'd be happy
 to dig up any additional information that may be needed. The laptop
 running Haiku R1 Alpha 4.1 from HD is a Dell Inspiron 600m.

 Thanks!
 Brendan

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/9277>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: