Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 May 2012 15:21:12 +0900
From:      "Gen O." <annona2@gmail.com>
To:        freebsd-stable@freebsd.org
Subject:   Re: [stable 9] broken hwpstate calls
Message-ID:  <20120526152112.42b20e45.annona2@gmail.com>
In-Reply-To: <4FBFE624.1020208@FreeBSD.org>
References:  <1337319129.2915.4.camel@powernoodle-l7> <4FB6765A.2050307@FreeBSD.org> <1337710214.2916.8.camel@powernoodle-l7.corp.yahoo.com> <20120525163653.b61a08e2.lists@yamagi.org> <4FBFA9A9.7020806@FreeBSD.org> <4FBFBD39.7000105@FreeBSD.org> <4FBFDFFB.9020501@FreeBSD.org> <4FBFE624.1020208@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,
I suprised that followings , cited from AMD BKDG(42301 Rev 3.06 - January 25, 2012)
> 2.5.2.1.4
> Core P-state Visibility
> (snip)
> If a compute unit is in a boosted P-state,  MSRC001_0063[CurPstate]
> reads back as 0.
  ^^^^^^^^^^^^^

if in a boosted P-state, MSRC001_0063 "reads back as 0".

so here is ugly patch  ;-)

--- hwpstate.c.orig     2012-05-26 15:06:06.000000000 +0900
+++ hwpstate.c  2012-05-26 15:07:50.000000000 +0900
@@ -196,7 +196,7 @@
                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) {
+               if (msr != id && msr != 0) {
                        HWPSTATE_DEBUG(dev, "error: loop is not enough.\n");
                        error = ENXIO;
                }

but this doesn't reflect that the cpu frequency is equal to sysctl value.
So, disabling the boost and setting the p-state is an answer.
And when setting the max freq from sysctl, enable the boost is also.

-- 
Gen O.<annona2@gmail.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120526152112.42b20e45.annona2>