Messages in this thread | | | From | pradeep hettiarachchi <> | Date | Tue, 22 Sep 2009 12:30:34 -0400 | Subject | Intel Local APIC behavior on low frequencies |
| |
Hi,
Here’s a description of my problem. It would be great if you can find some info on this matter.
I need to find some information about local APIC and CPU frequency scaling behavior. Currently I am modifying the Linux kernel for my research, which involves studying a custom job scheduler I am developing at different CPU frequencies. As we know, if the kernel works in tick-less mode (and in hi resolution mode) it uses the local APIC as a clock event device and as the clock tick device.
My working environment is: Linux vanilla kernel 2.6.24, Intel core 2 Quad Q6600, Intel core 2 duo T6500 processors. Gcc compiler and the tool chain.
The information I am trying to find is:
1) I want to find-out the tick count(say for a 100 ms period) of the local APIC when the CPU operates at different operating frequencies. When I study this matter, I found that the local APIC does not tick (does not work accurately) reliably as the clock frequency is varied. It works accurately in the maximum frequency of the system. Do you know any reason for that? or it is the way it operates?(is that normal?)
(my observation: when I count the LAPIC tick count for the maximum CPU frequency, it matches with the number of ticks that the system generates at the time of the initial LAPIC calibration, which happens at the very beginning of the kernel initialization; however when I try to count the number of ticks with scaled frequencies, the LAPIC "current counter" difference is very less, some times less than 100 for 100 ms, which should not be true.)
I don't have good reason to think that, some other task re-programs the LAPIC: I set the LAPIC "initial counter" to a huge value, further I assume when the system works in hi resolution mode, the re-program happens from the LAPIC handler "hrtimer_interrupt" which I replace with a dummy handler.
Thank you in advance.
-Pradeep -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |