获取机器当前CPU频率
struct perf_cpu_info
{
int tsc;
int index;
int mhz;
};
struct perf_cpu_info *cpu_list;
static unsigned long long native_read_tsc(void)
{
unsigned long long val;
asm volatile("rdtsc": "=A" (val));
return val;
}
unsigned int calibrate_tsc(void)
{
unsigned long long val;
unsigned long long val2;
long long diff = 0;
int error = 0,cnt = 0;
unsigned long long min_tsc = (unsigned long long) -1;
val = native_read_tsc();
do {
usleep(4950);
val2 =native_read_tsc();
diff = val2 - val;
if (diff > 0) {
min_tsc = min_tsc > diff?diff:min_tsc;