[asterisk-bugs] [Zaptel 0010314]: [patch] Merged in support for high resolution timers in kernel >=2.6.16

noreply at bugs.digium.com noreply at bugs.digium.com
Sun Aug 5 16:37:59 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=10314 
====================================================================== 
Reported By:                darren1713
Assigned To:                
====================================================================== 
Project:                    Zaptel
Issue ID:                   10314
Category:                   ztdummy
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     new
Zaptel Version:              SVN 
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!): 2770 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             07-26-2007 18:36 CDT
Last Modified:              08-05-2007 16:37 CDT
====================================================================== 
Summary:                    [patch] Merged in support for high resolution timers
in kernel >=2.6.16
Description: 
The new high resolution timer in the kernel generates very accurate
periodic timing. Just using the kernel based timing gets these sorts of
results from ztdummy (99.999992% avg):

......
8192 samples in 8192.000000 sample intervals 100.000000%
8192 samples in 8192.008000 sample intervals 99.999908%
--- Results after 123 passes ---
Best: 100.000000 -- Worst: 99.999512 -- Average: 99.999992

The high resolution timer in ztdummy is only built if it's supported and
enabled in the kernel, and will continue to use the RTC timing if the high
resolution timers are not available. 

Specifically, CONFIG_HIGH_RES_TIMERS needs to be enabled (Processor type
and features -> High Resolution Timer Support), and optionally, (Processor
type and features -> HPET Timer Support) provides a better clock source.

There should be no side effects to this, since it's the new kernel
timers.

Adding an option into the "make menuselect" to force RTC instead if they
are both available would be a good addition. Configs/Makefiles are not my
fortay, so this would be better for someone else to do.

====================================================================== 

---------------------------------------------------------------------- 
 bradley - 08-05-07 16:37  
---------------------------------------------------------------------- 
The patch makes use of the realtime clock rather than the monotonic clock,
however according to this LWN article "The high-resolution timer API"
("http://lwn.net/Articles/167315/") the realtime clock is affected by NTP
changes whereas the monotonic clock is not:

  “when the system time is adjusted, perhaps as a result of
   administrator action, tweaking by the network time protocol
   code, or suspending and resuming the system. In any of these
   situations, CLOCK_MONOTONIC will tick forward as if nothing
   had happened, while CLOCK_REALTIME may see discontinuous changes”

so I would think that the line:

   hrtimer_init(&zaptimer, CLOCK_REALTIME, HRTIMER_MODE_REL);

should be changed to be:

   hrtimer_init(&zaptimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
08-05-07 16:37  bradley        Note Added: 0068461                          
======================================================================




More information about the asterisk-bugs mailing list