Re: dtrace walltimestamp

From: Fabian Keil <freebsd-listen_at_fabiankeil.de>
Date: Sun, 24 Jun 2012 19:59:51 +0200
Fabian Keil <freebsd-listen_at_fabiankeil.de> wrote:

> At least on my system, timestamp offsets can only can be relied
> on with either kern.timecounter.hardware=TSC or with C3
> states disabled, though.
> 
> Measuring the elapsed time (in ms) between events that happen
> in roughly 1 second intervals with kern.timecounter.hardware=HPET
> and dev.cpu.0.cx_lowest=C2:
> 
>   elapsed
>            value  ------------- Distribution ------------- count
>              990 |                                         0
>             1000 |_at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at_  57
>             1010 |                                         0
>             1020 |                                         0
>             1030 |_at_                                        1
>             1040 |                                         0
> 
>   elapsed avg                                                    1007
> 
> And doing the same with dev.cpu.0.cx_lowest=C3:
> 
>   elapsed
>            value  ------------- Distribution ------------- count
>               40 |                                         0
>               50 |_at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at__at_                      28
>               60 |_at__at__at__at__at__at__at_                                  10
>               70 |_at__at__at_                                      5
>               80 |_at_                                        1
>               90 |                                         0
>              100 |_at_                                        2
>              110 |_at_                                        2
>              120 |_at_                                        2
>              130 |                                         0
>              140 |_at_                                        1
>              150 |_at_                                        1
>              160 |_at_                                        1
>              170 |_at_                                        1
>              180 |                                         0
>              190 |                                         0
>              200 |                                         0
>              210 |                                         0
>              220 |_at_                                        1
>              230 |_at_                                        1
>              240 |                                         0
>              250 |                                         0
>              260 |                                         0
>              270 |                                         0
>              280 |                                         0
>              290 |_at_                                        1
>              300 |_at_                                        1
>              310 |                                         0
>              320 |_at_                                        1
>              330 |                                         0
> 
>   elapsed avg                                                      90

Copying over some code from mips seems to fix this:
http://www.freebsd.org/cgi/query-pr.cgi?pr=amd64/169379

Fabian

Received on Sun Jun 24 2012 - 16:02:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:28 UTC