[dpdk-dev] [PATCH] Revert "timer: get TSC frequency from /proc/cpuinfo"

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Apr 9 14:23:44 CEST 2014


2014-04-07 13:57, Bruce Richardson:
> This reverts commit da6fd0759cbeb5fc14991a79e40105b9f6b99059.
> 
> The use of cpuinfo to determine the frequency of the TSC is not
> advisable and leads to incorrect results when power management is
> in use. This is because, while the TSC frequency does not change
> in modern cpus with constant_tsc support, the frequency of the core,
> and hence the frequency of the core reported by cpuinfo *does* change.
> 
> Depending on the current frequency of core 0 when an application is
> started, the EAL can get a wildly incorrect value for the TSC freq.
> Since frequency is scaled down for power saving, any incorrect value
> is likely to be lower than the default, which means that any delay
> loops inside the code which rely on the TSC will be shorter than
> planned. This can cause issues (reported on the mailing list by a number
> of people) where ports are not initialized correctly due to delays being
> too short.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>

I agree that using CPU frequency for TSC calibration is wrong with 
constant_tsc support. The goal was to have a precise calibration but the 
result is the reverse because of constant TSC.

Acked and applied.

Thank you Bruce for catching this.
-- 
Thomas


More information about the dev mailing list