svn commit: r258994 - stable/10/sys/x86/cpufreq

Sean Bruno sbruno at FreeBSD.org
Thu Dec 5 17:57:52 UTC 2013


Author: sbruno
Date: Thu Dec  5 17:57:51 2013
New Revision: 258994
URL: http://svnweb.freebsd.org/changeset/base/258994

Log:
  MFC r257769 to stable/10
  
  Fix powerd/states on AMD cpus.  Resolves issues with system reporting:
  hwpstate0: set freq failed, err 6
  
  Tested on FX-8150 and others.
  
  PR:		kern/167018
  Submitted by:	avg@
  Approved by:	re (gjb)

Modified:
  stable/10/sys/x86/cpufreq/hwpstate.c
Directory Properties:
  stable/10/sys/   (props changed)

Modified: stable/10/sys/x86/cpufreq/hwpstate.c
==============================================================================
--- stable/10/sys/x86/cpufreq/hwpstate.c	Thu Dec  5 17:50:18 2013	(r258993)
+++ stable/10/sys/x86/cpufreq/hwpstate.c	Thu Dec  5 17:57:51 2013	(r258994)
@@ -184,16 +184,21 @@ hwpstate_goto_pstate(device_t dev, int p
 			id, PCPU_GET(cpuid));
 		/* Go To Px-state */
 		wrmsr(MSR_AMD_10H_11H_CONTROL, id);
+	}
+	CPU_FOREACH(i) {
+		/* Bind to each cpu. */
+		thread_lock(curthread);
+		sched_bind(curthread, i);
+		thread_unlock(curthread);
 		/* wait loop (100*100 usec is enough ?) */
 		for(j = 0; j < 100; j++){
+			/* get the result. not assure msr=id */
 			msr = rdmsr(MSR_AMD_10H_11H_STATUS);
 			if(msr == id){
 				break;
 			}
 			DELAY(100);
 		}
-		/* get the result. not assure msr=id */
-		msr = rdmsr(MSR_AMD_10H_11H_STATUS);
 		HWPSTATE_DEBUG(dev, "result  P%d-state on cpu%d\n",
 		    (int)msr, PCPU_GET(cpuid));
 		if (msr != id) {


More information about the svn-src-stable mailing list