mh0rst / turionpowercontrol

Automatically exported from code.google.com/p/turionpowercontrol
9 stars 4 forks source link

Scaler is broken, need new implementation #4

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Scaler is not working at all, requires a new implementation to follow the 
PerformanceCounter class implementation to deal with cpu load.

Original issue reported on code.google.com by paolo.sa...@gmail.com on 30 May 2011 at 10:40

GoogleCodeExporter commented 9 years ago
This feature is really crucial for me, as I use TPC on my desktop system with 
an unlocked Ph II 720 BE which has different voltage requirements for the 
unlocked core to work.

Original comment by rune.mor...@gmail.com on 17 Aug 2011 at 8:50

GoogleCodeExporter commented 9 years ago
I'm working on a new scaler implementation. At the moment it is working good on 
my dual core machine, but may need some optimization and some testing on 
triple/quad core machines.

Original comment by paolo.sa...@gmail.com on 18 Aug 2011 at 3:33

GoogleCodeExporter commented 9 years ago
I think I forgot to mention mention that TPC is a great and useful tool :)

What are the odds that you can use the knowledge you have gained so far to 
create a replacement/enhanced powernow-k8 driver? Or is that too complicated? 
In particular, having cpufreq compatibility would be nice :)

If you need feedback, I'd be happy to test the experimental scaler code on my 
systems, as I have both a dual core athlon II, a triple core Ph II and a quad 
core Ph II.

Original comment by rune.mor...@gmail.com on 18 Aug 2011 at 4:04

GoogleCodeExporter commented 9 years ago
Hi, thank you!
At the moment I think the powernow-k8 follows the specification coming from AMD 
and from Linux kernel developers, tpc instead is an amateur software and has a 
higher degree of tweaking freedom.

If you wish to experiment, you can download via SVN the latest bits of code, or 
contact me in private using the mail address you can find in the documentation. 
I will be happy to send you a packaged development version with some tests you 
can do.

Original comment by paolo.sa...@gmail.com on 18 Aug 2011 at 5:20

GoogleCodeExporter commented 9 years ago
Ok, just tried the scaler in tpc 0.41 on my 4th core unlocked Ph II 720 BE 
running on an ASUS M4A79-E AM2+ board @3.0 GHz with the following settings:

TurionPowerControl -set core all ps 0 freq 3000 vcore 1.400 ps 1 freq 2400 
vcore 1.325 ps 2 freq 1600 vcore 1.200 ps 3 freq 800 vcore 1.1

## -l
Turion Power States Optimization and Control - by blackshard - v0.41

Main processor is Family 10h Processor
    Family: 0xf     Model: 0x4      Stepping: 0x2
    Extended Family: 0x10   Extended Model: 0x4
    Package Type: 0x1   BrandId: 0x4146 
Machine has 1 nodes
Processor has 4 cores
Processor has 5 p-states

Power States table:
-- Node: 0 Core 0
core 0 pstate 0 - En:1 VID:12 FID:14 DID:0.00 Freq:3000 VCore:1.4000
core 0 pstate 1 - En:1 VID:18 FID:8 DID:0.00 Freq:2400 VCore:1.3250
core 0 pstate 2 - En:1 VID:28 FID:0 DID:0.00 Freq:1600 VCore:1.2000
core 0 pstate 3 - En:1 VID:36 FID:0 DID:1.00 Freq:800 VCore:1.1000
core 0 pstate 4 - En:0 VID:0 FID:0 DID:0.00 Freq:1600 VCore:1.5500
-- Node: 0 Core 1
core 1 pstate 0 - En:1 VID:12 FID:14 DID:0.00 Freq:3000 VCore:1.4000
core 1 pstate 1 - En:1 VID:18 FID:8 DID:0.00 Freq:2400 VCore:1.3250
core 1 pstate 2 - En:1 VID:28 FID:0 DID:0.00 Freq:1600 VCore:1.2000
core 1 pstate 3 - En:1 VID:36 FID:0 DID:1.00 Freq:800 VCore:1.1000
core 1 pstate 4 - En:0 VID:0 FID:0 DID:0.00 Freq:1600 VCore:1.5500
-- Node: 0 Core 2
core 2 pstate 0 - En:1 VID:12 FID:14 DID:0.00 Freq:3000 VCore:1.4000
core 2 pstate 1 - En:1 VID:18 FID:8 DID:0.00 Freq:2400 VCore:1.3250
core 2 pstate 2 - En:1 VID:28 FID:0 DID:0.00 Freq:1600 VCore:1.2000
core 2 pstate 3 - En:1 VID:36 FID:0 DID:1.00 Freq:800 VCore:1.1000
core 2 pstate 4 - En:0 VID:0 FID:0 DID:0.00 Freq:1600 VCore:1.5500
-- Node: 0 Core 3
core 3 pstate 0 - En:1 VID:12 FID:14 DID:0.00 Freq:3000 VCore:1.4000
core 3 pstate 1 - En:1 VID:18 FID:8 DID:0.00 Freq:2400 VCore:1.3250
core 3 pstate 2 - En:1 VID:28 FID:0 DID:0.00 Freq:1600 VCore:1.2000
core 3 pstate 3 - En:1 VID:36 FID:0 DID:1.00 Freq:800 VCore:1.1000
core 3 pstate 4 - En:0 VID:0 FID:0 DID:0.00 Freq:1600 VCore:1.5500

 --- Node 0:
Processor Maximum PState: 3
Processor Startup PState: 3
Processor Maximum Operating Frequency: No maximum defined. Unlocked multiplier.

Minimum allowed VID: 123 (0.013v) - Maximum allowed VID 0 (1.550v)
Processor AltVID: 34 (1.125v)

Done.

## -spec
Turion Power States Optimization and Control - by blackshard - v0.41
Northbridge Power States table:
------ Node 0 of 1
PState 0 - NbVid 24 (1.2500) NbDid 0 NbFid 6
PState 1 - NbVid 28 (1.2000) NbDid 0 NbFid 6
PState 2 - NbVid 28 (1.2000) NbDid 0 NbFid 6
PState 3 - NbVid 28 (1.2000) NbDid 0 NbFid 6
PState 4 - NbVid 32 (1.1500) NbDid 0 NbFid 6
Northbridge Maximum frequency: no maximum frequency, unlocked NB multiplier

Core 0 C1E CMP halt bit is enabled
Core 1 C1E CMP halt bit is enabled
Core 2 C1E CMP halt bit is enabled
Core 3 C1E CMP halt bit is enabled

Voltage Regulator Slamming time register: 6
Voltage Regulator Step Up Ramp Time: 8
Voltage Regulator Step Down Ramp Time: 8
Processor PState Identifier: 0x6
Processor is using Serial VID Interface (probably Dual Plane mode)
PSI_L bit enabled (improve VRM efficiency in low power)
PSI voltage threshold VID: 34 (1.125v)

Done.

However, it looks as if the monitor (tpc -CM) doesn't correctly register when 
the scaler switches?

From running the 7-zip benchmark with '7z b' the monitor showed that power 
states were switched, but this didn't show up in the counters shown in the 
monitor.

Any suggestions?

Original comment by rune.mor...@gmail.com on 16 Sep 2011 at 4:37

GoogleCodeExporter commented 9 years ago
I think you omitted the call to 

> TurionPowerControl -scaler

to activate the scaler.

You also have to deactivate the OS scaler (just by locking it to a fixed 
frequency, using for example cpufreq-set utility) or both of them will 
interfere each other.
The -CM switch should tell you the current status of all cores either if you 
use the OS scaler or the tpc scaler

Original comment by paolo.sa...@gmail.com on 16 Sep 2011 at 7:25

GoogleCodeExporter commented 9 years ago
I meant to imply that I did in fact run TurionPowerControl -scaler in one 
terminal window and monitored its performance in another terminal window with 
TurionPowerControl -CM .

Cool'n'Quiet is turned off in the BIOS, so the ACPI objects that powernow-k8 
looks for are not found and hence the powernow-k8 module is never loaded.

The thing that struck me as odd was that single line that shows the current 
power state of each core showed that some cores switched state depending on 
load, but the -CM periodic statistics overview never picked up those changes 
and just showed all cores running at the same powerstate for all sample points.

Original comment by rune.mor...@gmail.com on 17 Sep 2011 at 12:44

GoogleCodeExporter commented 9 years ago
Ok, very clear. I understood, I'll need to check out that thing about 
statistics and open a new issue for this.

Original comment by paolo.sa...@gmail.com on 20 Sep 2011 at 1:01