+static int
+set_tsc_freq_from_cpuinfo(void)
+{
+ char line[256];
+ FILE *stream;
+ double dmhz;
+
+ stream = fopen("/proc/cpuinfo", "r");
+ if (!stream) {
+ RTE_LOG(WARNING, EAL, "WARNING: Unable to open /proc/cpuinfo\n");
+ return -1;
+ }
+
+ while (fgets(line, sizeof line, stream)) {
+ if (sscanf(line, "cpu MHz\t: %lf", &dmhz) == 1) {
+ eal_tsc_resolution_hz = (uint64_t)(dmhz * 1000000UL);
+ break;
+ }
+ }
+
+ fclose(stream);
+
+ if (!eal_tsc_resolution_hz) {
+ RTE_LOG(WARNING, EAL, "WARNING: Cannot read CPU clock from cpuinfo\n");
+ return -1;
+ }
+ return 0;
+}
+