Re: cpufreq driver + wrong cpu time

From: Eric Piel
Date: Sun Oct 30 2005 - 16:22:16 EST


Alexander Shaposhnikov wrote:
Hello to everyone.

Hello Alexander,

I have written cpufreq_nForce4 kernel driver for cpufreq subsystem.
It allows for CPU frequency changing by adjusting FSB speed, for nForce4
based motherboards. Works for single-cpu systems, as well as for SMP.
The problem is, after changing CPU(s) speed on SMP systems, programs
report wrong cpu time (wall time is OK).
What do you mean by CPU time? Do you mean the output of "time foo" ? How do you know the *right* CPU time? Could you provide some examples :-)

Well, anyway, by _rough_ guess, if on UP it works and on SMP it doesn't, we could imagine that the difference comes from the fact the tick interrupt source is not the same on those systems. You could try to boot a UP kernel with local APIC (selectable in the .config) on the multi-processor computer to check. Then it might mean that after changing the FSB speed, the interrupt source has to be re-programmed...

What would be the best way to fix this, and shouldn't this be done by
the cpufreq subsystem, rather than by hardware driver?

Probably the best place to discuss about cpufreq is the dedicated mailing list : cpufreq@xxxxxxxxxxxxxxxxxx . If you don't mind, you could continue there.

Also please, provide the sources of your driver to have a look :-)

cu,
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/