[Midnightbsd-cvs] src [7750] trunk/sys/kern/kern_cpu.c: fix cpu frequency on turbo boost cpus

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Aug 20 19:04:48 EDT 2016


Revision: 7750
          http://svnweb.midnightbsd.org/src/?rev=7750
Author:   laffer1
Date:     2016-08-20 19:04:48 -0400 (Sat, 20 Aug 2016)
Log Message:
-----------
fix cpu frequency on turbo boost cpus

Modified Paths:
--------------
    trunk/sys/kern/kern_cpu.c

Modified: trunk/sys/kern/kern_cpu.c
===================================================================
--- trunk/sys/kern/kern_cpu.c	2016-08-20 22:47:00 UTC (rev 7749)
+++ trunk/sys/kern/kern_cpu.c	2016-08-20 23:04:48 UTC (rev 7750)
@@ -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