/* * Derive the TSC frequency in Hz from the /proc/cpuinfo, for example: * ... * model name : Intel(R) Xeon(R) Gold 6154 CPU @ 3.00GHz * ... * will return 3000000000.
*/ static u64 cpuinfo_tsc_freq(void)
{
u64 result = 0;
FILE *cpuinfo; char *line = NULL;
size_t len = 0;
cpuinfo = fopen("/proc/cpuinfo", "r"); if (!cpuinfo) {
pr_err("Failed to read /proc/cpuinfo for TSC frequency\n"); return 0;
} while (getline(&line, &len, cpuinfo) > 0) { if (!strncmp(line, "model name", 10)) { char *pos = strstr(line + 11, " @ "); double float_result;
if (pos && sscanf(pos, " @ %lfGHz", &float_result) == 1) {
float_result *= 1000000000;
result = (u64)float_result; goto out;
}
}
}
out: if (result == 0)
pr_err("Failed to find TSC frequency in /proc/cpuinfo\n");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.