timer: remove useless check on x86 TSC reliability
[dpdk.git] / lib / librte_eal / linux / eal / eal_timer.c
index bc8f051..a904a82 100644 (file)
@@ -192,46 +192,12 @@ rte_eal_hpet_init(int make_default)
 }
 #endif
 
-static void
-check_tsc_flags(void)
-{
-       char line[512];
-       FILE *stream;
-
-       stream = fopen("/proc/cpuinfo", "r");
-       if (!stream) {
-               RTE_LOG(WARNING, EAL, "WARNING: Unable to open /proc/cpuinfo\n");
-               return;
-       }
-
-       while (fgets(line, sizeof line, stream)) {
-               char *constant_tsc;
-               char *nonstop_tsc;
-
-               if (strncmp(line, "flags", 5) != 0)
-                       continue;
-
-               constant_tsc = strstr(line, "constant_tsc");
-               nonstop_tsc = strstr(line, "nonstop_tsc");
-               if (!constant_tsc || !nonstop_tsc)
-                       RTE_LOG(WARNING, EAL,
-                               "WARNING: cpu flags "
-                               "constant_tsc=%s "
-                               "nonstop_tsc=%s "
-                               "-> using unreliable clock cycles !\n",
-                               constant_tsc ? "yes":"no",
-                               nonstop_tsc ? "yes":"no");
-               break;
-       }
-
-       fclose(stream);
-}
-
 uint64_t
 get_tsc_freq(void)
 {
 #ifdef CLOCK_MONOTONIC_RAW
 #define NS_PER_SEC 1E9
+#define CYC_PER_10MHZ 1E7
 
        struct timespec sleeptime = {.tv_nsec = NS_PER_SEC / 10 }; /* 1/10 second */
 
@@ -248,7 +214,8 @@ get_tsc_freq(void)
 
                double secs = (double)ns/NS_PER_SEC;
                tsc_hz = (uint64_t)((end - start)/secs);
-               return tsc_hz;
+               /* Round up to 10Mhz. 1E7 ~ 10Mhz */
+               return RTE_ALIGN_MUL_NEAR(tsc_hz, CYC_PER_10MHZ);
        }
 #endif
        return 0;
@@ -261,6 +228,5 @@ rte_eal_timer_init(void)
        eal_timer_source = EAL_TIMER_TSC;
 
        set_tsc_freq();
-       check_tsc_flags();
        return 0;
 }