Determining if a thermal event occurred
Posted: Tue Aug 09, 2011 11:24 am
Dear all,
Brendan mentioned in this post http://forum.osdev.org/viewtopic.php?f= ... hilit=hpet that:
Brendan mentioned to use the "thermal sensor" IRQ (in the local APIC) to determine when the speed of the RDTSC changes but I don’t really understand how this could be done in practice.
Probably what he means is to check the “Thermal Status Log flag, bit 1” of the IA32_THERM_STATUS MSR register before and after the measurements. The problem I’ve got is that Intel manuals say that the aforementioned MSR has been introduced as an MSR in the 0x0F family, model 0x0 (i.e. Intel Xeon Processors).
Does that mean that my Intel Atom processor (family=0x6, model=0x1C) doesn’t support it? If not, how can I determine if a thermal event occurred in my case?
Thanks a lot for your time.
Regards,
limp.
Brendan mentioned in this post http://forum.osdev.org/viewtopic.php?f= ... hilit=hpet that:
I have an Intel Atom 330 which unfortunately doesn’t have an invariant TSC. So, what I want to do is to check before and after I've taken some timing measurements, whether or not a thermal event occurred during the measurements (so that I know if the CPU frequency changed). If this is not the case, then I’ll assume my measurements are accurate otherwise I’ll re-take them.Brendan wrote: for some CPUs the TSC doesn't run at a fixed frequency, but you can use the "thermal sensor" IRQ (in the local APIC) to determine when the speed of the RDTSC changes; and therefore you could still use the TSC for precise timing by doing something like "virtual_ticks += (current_TSC_count - last_TSC_count) * scaling_factor" (where the scaling factor is changed whenever the RDTSC speed changes).
Brendan mentioned to use the "thermal sensor" IRQ (in the local APIC) to determine when the speed of the RDTSC changes but I don’t really understand how this could be done in practice.
Probably what he means is to check the “Thermal Status Log flag, bit 1” of the IA32_THERM_STATUS MSR register before and after the measurements. The problem I’ve got is that Intel manuals say that the aforementioned MSR has been introduced as an MSR in the 0x0F family, model 0x0 (i.e. Intel Xeon Processors).
Does that mean that my Intel Atom processor (family=0x6, model=0x1C) doesn’t support it? If not, how can I determine if a thermal event occurred in my case?
Thanks a lot for your time.
Regards,
limp.