Kevin Hao | 20 Aug 11:33

[x86] apic timer tick interval is not so accurate in periodic mode

Hi all,

I found the apic timer tick interval is not so accurate when it works
in periodic mode(CONFIG_HIGH_RES_TIMERS=N).
But in one-shot mode(CONFIG_HIGH_RES_TIMERS=Y)  it works well.
I tested it on a Dell390 pc. HZ is 250. Kernel version is 2.6.27-rc3.
The following is the result:

In periodic mode:
tick = 1, apic tick timer interval is 4020211
tick = 1, apic tick timer interval is 4020233
tick = 1, apic tick timer interval is 4020233
tick = 1, apic tick timer interval is 4020199
tick = 1, apic tick timer interval is 4020267
tick = 1, apic tick timer interval is 4020218
tick = 1, apic tick timer interval is 4020278
tick = 1, apic tick timer interval is 4020173

In one-shot mode:
tick = 1, apic tick timer interval is 3999930
tick = 1, apic tick timer interval is 4000035
tick = 1, apic tick timer interval is 3999998
tick = 1, apic tick timer interval is 4000005
tick = 1, apic tick timer interval is 4000001
tick = 1, apic tick timer interval is 4000009
tick = 1, apic tick timer interval is 3999945
tick = 1, apic tick timer interval is 4000024
tick = 1, apic tick timer interval is 4000005

Why is there so big difference between these two mode?
The attachment is my test program and config file.
Any comments is appreciated .

Thanks,
Kevin
Attachment (test.diff): application/octet-stream, 2301 bytes
Attachment (config): application/octet-stream, 42 KiB

Gmane