[Midnightbsd-cvs] src [7751] stable/0.8/sys/kern/kern_cpu.c: MFC: fix cpu core frequency detection on turbo boost cpus

root at midnightbsd.org root at midnightbsd.org
Sat Aug 20 19:08:10 EDT 2016


Revision: 7751
          http://svnweb.midnightbsd.org/src/?rev=7751
Author:   root
Date:     2016-08-20 19:08:10 -0400 (Sat, 20 Aug 2016)
Log Message:
-----------
MFC: fix cpu core frequency detection on turbo boost cpus

Modified Paths:
--------------
    stable/0.8/sys/kern/kern_cpu.c

Modified: stable/0.8/sys/kern/kern_cpu.c
===================================================================
--- stable/0.8/sys/kern/kern_cpu.c	2016-08-20 23:04:48 UTC (rev 7750)
+++ stable/0.8/sys/kern/kern_cpu.c	2016-08-20 23:08:10 UTC (rev 7751)
@@ -417,7 +417,7 @@
 	struct cf_setting *curr_set, set;
 	struct pcpu *pc;
 	device_t *devs;
-	int count, error, i, n, numdevs;
+	int bdiff, count, diff, error, i, n, numdevs;
 	uint64_t rate;
 
 	sc = device_get_softc(dev);
@@ -493,14 +493,15 @@
 	}
 	cpu_est_clockrate(pc->pc_cpuid, &rate);
 	rate /= 1000000;
+	bdiff = 1 << 30;
 	for (i = 0; i < count; i++) {
-		if (CPUFREQ_CMP(rate, levels[i].total_set.freq)) {
+		diff = abs(levels[i].total_set.freq - rate);
+		if (diff < bdiff) {
+			bdiff = diff;
 			sc->curr_level = levels[i];
-			CF_DEBUG("get estimated freq %d\n", curr_set->freq);
-			goto out;
 		}
 	}
-	error = ENXIO;
+	CF_DEBUG("get estimated freq %d\n", curr_set->freq);
 
 out:
 	if (error == 0)



More information about the Midnightbsd-cvs mailing list