From: Jim Harris Date: Mon, 7 Oct 2019 15:40:05 +0000 (-0700) Subject: timer: remove useless check on x86 TSC reliability X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c1077933d45b2bb6b8721746e63f5a125bd2353a;p=dpdk.git timer: remove useless check on x86 TSC reliability This code was added 7+ years ago in commit fb022b85bae4 ("timer: check TSC reliability") presumably when variant TSCs were still somewhat common. But this code doesn't do anything except print a warning, and the warning doesn't give any kind of advice to the user, so let's just remove it. While the warning has no functional meaning, the /proc/cpuinfo parsing consumes a non-trivial amount of time which is especially noticeable in secondary processes. On my test system, it consumes 21ms out of the 66ms total execution time for rte_eal_init() in a secondary process. Signed-off-by: Jim Harris Acked-by: Stephen Hemminger Acked-by: Bruce Richardson --- diff --git a/lib/librte_eal/linux/eal/eal_timer.c b/lib/librte_eal/linux/eal/eal_timer.c index 76ec17034b..a904a8297c 100644 --- a/lib/librte_eal/linux/eal/eal_timer.c +++ b/lib/librte_eal/linux/eal/eal_timer.c @@ -192,41 +192,6 @@ 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) { @@ -263,6 +228,5 @@ rte_eal_timer_init(void) eal_timer_source = EAL_TIMER_TSC; set_tsc_freq(); - check_tsc_flags(); return 0; }