hp dm1z undervolting and (limited) fan control

More popular than ever, but some are still very noisy.

Moderators: NeilBlanchard, Ralf Hutter, sthayashi, Lawrence Lee

Bitbron
Posts: 2
Joined: Wed May 04, 2011 12:24 am

Re: hp dm1z w/amd fusion is a screamer!

Post by Bitbron » Wed May 04, 2011 8:32 pm

Would it be possible to perform the undervoling from Windows as I have no Linux skills whatsoever.
If I would be able to do this I'd buy the DM1 in a heartbeat.

Great work on the undervolting.

StApostol
Posts: 39
Joined: Sat Mar 17, 2007 12:57 am

Re: hp dm1z w/amd fusion is a screamer!

Post by StApostol » Thu May 05, 2011 1:09 am

thierryg wrote:
Bitbron wrote:Have you tried the following method?

Patching DSDT Table
Personally, no. I tried a part of it (decompiling the dsdt, searching for a fan speed in it) without finding anything, but then I don't understand much of what is in a dsdt anyway.

Now, given that, with undervolting and the "quiet" profile, I need to have my ear right next to the left vent to hear the fan spinning at a very low speed, it seems there is little need for dsdt patching. Turning off the harddrive or upgrading to a SSD, maybe :wink:
I have tried dsdt patching but (a) there is no fan device in the dsdt and (b) modifying the temperature readout does not affect fan speed, i.e. the fan controller either uses the non-acpi temperature sensor (there are two of them) or it reads the acpi one directly from the hardware before being modified from the dsdt.

It is possible to modify fan speed by continuously writing to EC register 0xE5 (this is a temperature readout that is connected to fan speed and 0x5E (set bit #1 to shut down the fan).

Using the "silent" coolsense profile with an undervolted processor will limit fan speeds to 1500rpm which is relatively quiet and unobtrusive (not silent though). I tried shutting down the fan completely and, without undervolting, temperatures surpass 70C which is not something I am comfortable with. I'll try again with the undervolted CPU and report back.

Unfortunately, the cooler is very small and doesn't work well for passive cooling. The ideal would be to limit the fan to 800-1200rpm for temps under ~55C which would should be undetectable noise-wise under all but the most silent environments. Unfortunately, I haven't found a way to do this (and I'm not willing to do a hardware mod on a brand new system!)

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Thu May 05, 2011 5:33 am

Bitbron wrote:Would it be possible to perform the undervoling from Windows as I have no Linux skills whatsoever.
If I would be able to do this I'd buy the DM1 in a heartbeat.

Great work on the undervolting.
Normally, you have better tools to undervolt under windows :wink:

I believe the tool used by StApostol, that I have to thank for the EC register address for activating the quiet fan profile, is able to do the MSR writing needed.
StApostol wrote:I've been poking around with an awesome (and dangerous) little program, called rw-everything and I've been able to uncover some more info on the external controller (EC) section.
I'm writing a C program to be able to set the ViD value in an easier way (and specially to script it at startup) but I don't know how it could be ported to Windows 7.

StApostol
Posts: 39
Joined: Sat Mar 17, 2007 12:57 am

Re: hp dm1z w/amd fusion is a screamer!

Post by StApostol » Thu May 05, 2011 9:46 am

This tool can be used to read/write the MSRs on Windows: http://jacky5488.myweb.hinet.net/

It's clean (tested with on http://virustotal.com), run it as admin, select the MSR tab and click the "user defined" button (can't recall the name exactly, it's something like that) and add the addresses 0xC0010064/65/66/71. This will appear at the bottom of the MSR tab, so scroll down and double click each value to modify it. For each value you double-click, a new window will appear. You need to modify the second value on this window, starting from down-right. Concrete example:

for register 0xC0010064 the values will be something like: 80|00|..|..|..|00|28|10. You need to modify the '28' (increase the value to undervolt). Do note that these values are in hex, so you count 28, 29, 2a, ..., 2f, 30 (i.e. 28->30 is eight steps!)

Note that you need to change pstate before your changes 'take'. I think rw-everything is scriptable, so you can make it apply the undervolted values automatically (you can even add it as a scheduled task on startup to avoid the UAC prompt!)

@thierryg: I created a little bash script for undervolting, simpler than compiling a program. It's something like:

Code: Select all

modprobe msr
cpufreq-selector -f 1600000
sleep 1
wrmsr -p0 0xC0010064 0x80000100003810 # note: bogus values from memory!
wrmsr -p1 0xC0010064 0x80000100003810
wrmsr -p0 0xC0010065 0x800002c0003c12
wrmsr -p1 0xC0010066 0x800002c0003c12
cpufreq-selector -f 800000
sleep 1
wrmsr -p0 0xC0010066 0x800002c0007432
wrmsr -p1 0xC0010066 0x800002c0007432
cpufreq-selector -g ondemand
sleep 1
Still need to find out how to run it as root at startup but I think this should work.

I don't know of any libraries that provide access to wrmsr/rdmsr on windows. These are ring-0 instructions and require a (signed) kernel driver - something should exist but I haven't been able to find it yet. (I've only found out about WinIO but I don't think this provides access to those instructions).

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Thu May 05, 2011 10:40 am

StApostol wrote: for register 0xC0010064 the values will be something like: 80|00|..|..|..|00|28|10. You need to modify the '28' (increase the value to undervolt). Do note that these values are in hex, so you count 28, 29, 2a, ..., 2f, 30 (i.e. 28->30 is eight steps!)
Wait, wait! Don't increase that 28 one by one, otherwise you are changing the frequency as well! Increase two by two! 28, 2A, 2C, 2E, 30. Bits 15 to 9 on the MSR are the vid, 8-4 the core frequency divisor most significant digit ! So 29 means a 1 in bit 8 (i.e. the previous to last two digits in the register are bits 15 to 8, and cover just a little bit more than the vid).
Note that you need to change pstate before your changes 'take'. I think rw-everything is scriptable, so you can make it apply the undervolted values automatically (you can even add it as a scheduled task on startup to avoid the UAC prompt!)
And that, when you apply, if a single core is in another P-state, then the CPU will choose the highest voltage (lowest vid) of both.
@thierryg: I created a little bash script for undervolting, simpler than compiling a program. It's something like:

Code: Select all

modprobe msr
cpufreq-selector -f 1600000
sleep 1
wrmsr -p0 0xC0010064 0x80000100003810 # note: bogus values from memory!
wrmsr -p1 0xC0010064 0x80000100003810
wrmsr -p0 0xC0010065 0x800002c0003c12
wrmsr -p1 0xC0010066 0x800002c0003c12
cpufreq-selector -f 800000
sleep 1
wrmsr -p0 0xC0010066 0x800002c0007432
wrmsr -p1 0xC0010066 0x800002c0007432
cpufreq-selector -g ondemand
sleep 1
Still need to find out how to run it as root at startup but I think this should work.
Run it from /etc/rc.local, for example.

Nice touch the use of cpufreq-selector. I left it out; it changes P-states often enough to have the changes apply sooner than later.

What I've done is a simple C program with has the following interface:

Code: Select all

./undervolt -p 0:0x1A -p 1:0x1A -p 2:0x35
I'm slowly adding to it a cpu type check, a MSR status check, and maybe the switch to P-states to make sure the changes are applied. It's more involved than your shell script, but not by much.
I don't know of any libraries that provide access to wrmsr/rdmsr on windows. These are ring-0 instructions and require a (signed) kernel driver - something should exist but I haven't been able to find it yet. (I've only found out about WinIO but I don't think this provides access to those instructions).
Yes, I had a colleague brief me at lunch how messy it would be for me to use the x86 assembler instructions (rdmsr and wrmsr) instead of the msr kernel module :)

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z w/amd fusion is a screamer!

Post by porkchop » Thu May 05, 2011 4:11 pm

thank you StApostol and thierryg!

i downloaded the program and had a bit of a try, looks like it'll be pretty easy even for a software illiterate like me, the detailed instructions helped greatly.
i'll try if for real tonight when i get home, much easier to hear the fan and ill have my desktop in front of me in case i mess up.

now some questions:
i figured that the addresses 0xC0010064/65/66 correspond to the p states 0-2, so what is the address 0xC0010071 for?
i need some help on how to enable the quiet fan profile, i've got the ec window open but i don't know how to find the ec addresses 0x5A and 0x5B... though i wouldn't be surprised if i was in the completely wrong section...

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Thu May 05, 2011 8:41 pm

porkchop wrote: i figured that the addresses 0xC0010064/65/66 correspond to the p states 0-2, so what is the address 0xC0010071 for?
0xC0010071 contains a lot of information on the P-states. Of interest, its end (bits 15 to 0) list the values for the current P-state in the same way they are in the P-state register (that is, if the end of your P-state register is 2810, when this P-state is active on both core, the end of the register 0xC0010071 will be 2810). Just before that part, bits 18:16 of 0xC0010071, you have the current P-state.

The bits before in 0xC0010071 have things like the max / min ViD, max frequency, is a P-state change underway, which P-state is used after a reset, etc... Of note is the fact that the max frequency listed is 3.2GHz, which could make either overclocking possible / or hp being ready to use higher specd zacate processors.

I have started a sourceforge project, undervolt, with the source code for the undervolt program listed above. Now I need to find out how to do a release!

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z w/amd fusion is a screamer!

Post by porkchop » Fri May 06, 2011 8:19 am

i've figured most of it out now, i can activate the quiet profile and undervolt :)

undervolting only at 1.6ghz so far and i've reached 0x40 which is 1.15v, orthos stable for 5+ minutes(it's late), it seems that each step up shaves off 0.015v. temp difference is 6C, 67C v 73C, stock v is 1.3, interestingly 73C bumps up the fan speed a notch.

how should i go about stress testing the minimum and middle p states? orthos/prime maxes out the cpu so that only tests the p0 state.


edit: with the slower fan i've started noticing the hdd, it's surprisingly loud for a laptop hdd, a bad combination of 7200rpm spindle speed, hard mounting and chassis resonance i suspect.

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z w/amd fusion is a screamer!

Post by porkchop » Fri May 06, 2011 9:44 am

did some more... now i'm really tired.

max undervolt @1.6ghz that i could get was 0x4A which was 1.087v (5min orthos stable), any lower would result in an immediate lock. temps maxed out at an impressive 61C.
for kicks i played some hd video, according to amd system monitor this stressed the gpu about 30%, temps jumped to 63C.

at p2(800mhz) i undervolted to 0.8v with no problems, no stress testing though, idle temps went as low as 45C which was the lowest i'd ever seen, though it seems that temps plateaued there pretty early.

i should note that my ambient temp is quite low, i guesstimate 17C.


and once again, someone please suggest a method to stress test lower p states!

StApostol
Posts: 39
Joined: Sat Mar 17, 2007 12:57 am

Re: hp dm1z w/amd fusion is a screamer!

Post by StApostol » Fri May 06, 2011 12:04 pm

porkchop wrote:did some more... now i'm really tired.

max undervolt @1.6ghz that i could get was 0x4A which was 1.087v (5min orthos stable), any lower would result in an immediate lock. temps maxed out at an impressive 61C.
for kicks i played some hd video, according to amd system monitor this stressed the gpu about 30%, temps jumped to 63C.
That's *very* impressive!
at p2(800mhz) i undervolted to 0.8v with no problems, no stress testing though, idle temps went as low as 45C which was the lowest i'd ever seen, though it seems that temps plateaued there pretty early.
45C is the cutoff point for the CPU fan in the quiet profile, so the plateau sounds logical.
and once again, someone please suggest a method to stress test lower p states!
On linux this is very easy. You should be able to force the lowest pstate on windows by modifying a power plan to set the maximum cpu power state lower (it's under advanced power settings).

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Fri May 06, 2011 12:36 pm

Can we conclude that the E-350 undervolts well, and it can make the dm1z a fairly silent system :wink:

I have put the source for my C program for Linux at: http://sourceforge.net/p/undervolt/home/. Just give as parameters the Vid you want for the P-state, and it will be applied.

Code: Select all

sudo undervolt -p 0:0x1A
For now, it will only run on an AMD E-350, but it should work on C-30, C-50, E-240 once the CPU detection code is updated.

Enjoy!

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z w/amd fusion is a screamer!

Post by porkchop » Fri May 06, 2011 10:53 pm

using advanced power settings in w7 i managed to do some more stress testing- i can't believe i had to be reminded of that feature, thanks StApostol.

my results:
p0, 0x48, 1.100v, 1600mhz, 65C
p1, 0x5E, 0.962v, 1280mhz, 58C
p2, 0x7C, 0.775v, 800mhz, 54C
30min orthos stable

at this point replacing the hdd with an ssd would actually be worth it in terms of noise!


edit: ambient at the time was about 20C.
Last edited by porkchop on Sat May 07, 2011 3:59 am, edited 1 time in total.

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Fri May 06, 2011 11:13 pm

porkchop wrote:using advanced power settings in w7 i managed to do some more stress testing- i can't believe i had to be reminded of that feature, thanks StApostol.

my results:
p0, 0x48, 1.100v, 1600mhz, 65C
p1, 0x5E, 0.962v, 1280mhz, 58C
p2, 0x7C, 0.775v, 800mhz, 54C
30min orthos stable
Those results are really impressive. Did you saw some benefits in battery life ?
at this point replacing the hdd with an ssd would actually be worth it in terms of noise!
I am at the same point, even with a far more modest undervolt. And it's just the harddrive spinning which is annoying.

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z w/amd fusion is a screamer!

Post by porkchop » Sat May 07, 2011 1:47 am

unfortunately battery life is just too hard to measure, with such a low powered system though every watt counts and i don't doubt that there will me an appreciable increase in battery life.

the hdd noise is disappointing, very close to a 7200rpm 3.5" hdd.. and not a current gen one but an old ball bearing one!

i haven't figured out an easier way to undervolt other than launching read & write and manually punching in the new values, there's a save option but i don't know what to do with the resulting file... any suggestions?

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Sat May 07, 2011 2:06 am

porkchop wrote:unfortunately battery life is just too hard to measure, with such a low powered system though every watt counts and i don't doubt that there will me an appreciable increase in battery life.
I've been using it like that for a few days now, on and off from the mains, and it seems to give a bit more of battery life, even as I maintain highest brightness and wifi on.
the hdd noise is disappointing, very close to a 7200rpm 3.5" hdd.. and not a current gen one but an old ball bearing one!

i haven't figured out an easier way to undervolt other than launching read & write and manually punching in the new values, there's a save option but i don't know what to do with the resulting file... any suggestions?
Hum. I don't know how this rw-everything tool can be scripted. Yes, there seems to be hints of scripting but, well, this Windows is unknown territory for me :wink:

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z w/amd fusion is a screamer!

Post by porkchop » Sat May 07, 2011 2:24 am

i'm hoping StApostol has something for me :)

just activating the quiet profile without hp thermal assistant is a big win for me. i could finally uninstall hp support assistant(big piece of poop) which it was part of, and activating it this way seems permanent. before, the profile would automatically go back to optimized after a reboot.

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Sat May 07, 2011 5:49 am

porkchop wrote:i'm hoping StApostol has something for me :)

just activating the quiet profile without hp thermal assistant is a big win for me. i could finally uninstall hp support assistant(big piece of poop) which it was part of, and activating it this way seems permanent. before, the profile would automatically go back to optimized after a reboot.
Oh, so you have this behavior too? For a few reboots, I would check the register, and yes, it kept the setting, which is very convenient.

StApostol
Posts: 39
Joined: Sat Mar 17, 2007 12:57 am

Re: hp dm1z w/amd fusion is a screamer!

Post by StApostol » Sat May 07, 2011 5:53 am

porkchop wrote:i'm hoping StApostol has something for me :)
I have! :) 3 simple steps:

1. In the rw-everything folder, create a text file with the following contents:

Code: Select all

>cpu 1
>wrmsr 0xc0010064 0x80000126 0x00003810
>wrmsr 0xc0010065 0x8000011A 0x00003C12
>wrmsr 0xc0010066 0x8000028C 0x00007430
>cpu 2
>wrmsr 0xc0010064 0x80000126 0x00003810
>wrmsr 0xc0010065 0x8000011A 0x00003C12
>wrmsr 0xc0010066 0x8000028C 0x00007430
>RwExit
(Note: replace the 38, 3C and 74 values with the ones you found in your undervolting tests! These are specific to the E-350 processor, so please make sure you use the correct MSR values if you use a different processor)

2. Rename this file to ZacateUndervolting.rw or something else equally descriptive.

3. Open the task scheduler and add a new scheduled task with the following parameters:
- Name: "Zacate Undervolting"
- Run whether user is logged in or not
- Run with highest privileges
- Action: C:\[Path to rw-everything here]\rw.exe /Command=ZacateUndervolting.rw /Logfile=log.txt
- Working directory (found when creating the action): C:\[Path to rw-everything here]
- Trigger: On Startup

And that's it! Restart and your undervolting will be applied automagically. Just stash rw-everything somewhere out of the way and make sure you modify the scheduled task if you ever move the program folder.
just activating the quiet profile without hp thermal assistant is a big win for me. i could finally uninstall hp support assistant(big piece of poop) which it was part of, and activating it this way seems permanent. before, the profile would automatically go back to optimized after a reboot.
Indeed, that's a big win already!

EC values are permanent. However, if you ever need to reset them (because e.g. the system doesn't boot), remove the power cord, remove the battery, remove all USB devices and press the power button for 10-15 seconds. This will reset them to their defaults.

StApostol
Posts: 39
Joined: Sat Mar 17, 2007 12:57 am

Re: hp dm1z w/amd fusion is a screamer!

Post by StApostol » Sat May 07, 2011 6:01 am

Sorry for the double-post, I just wanted to add that I am using a SSD which indeed makes a difference noise-wise. Using the quiet fan profile, the HD used to be the biggest noise-maker under normal use. Now that I've swapped in the SSD, noise is back to the fan (which runs at 1500rpm at the lowest setting).

With a SSD, you can expect an additional 15-20' of battery length and the system will also become more responsive (even though the HDs in the dm1z are actually pretty fast).

Now, the next step for me is to find a way to reduce fan speed to 1000rpm. This should still help cool the system (I've tried running fanless but temperature quickly exceeds 65C under normal use, which I don't like) but should also reduce noise to the point where it's undetectable in all but the most silent environments. It would also be nice if we could undervolt the GPU, since that is the cause of at least 50% of the CPU power consumption.

Another thing I've noticed is that my Ubuntu installation has stopped obeying my undervolting commands. As soon as a use wrmsr, all VIDs get locked to 28 (the highest setting!) and temperatures rise significantly! Could this be the cause of the power bug phoronix is talking about? (But I did my undervolting tests no linux, so I'm surprised by this behavior).

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Sat May 07, 2011 6:24 am

Adding a SSD is a step I'm considering too. And buying an external DVD drive; since the netbook trend started a few years ago, we're now running out of dvd drives in the house since the last three systems we bought came without any (including my wife's 13"3 notebook).

The next step I've been thinking about is yes GPU undervolting. I've tried a small C program found on the phoronix forums, and it list two profiles for the ATI 6310, and a voltage range 925-1000mV, but the profile 0 is already at 925mV :( I will have a look at ATI documentation and if it sounds easy enough, I'll try.
Another thing I've noticed is that my Ubuntu installation has stopped obeying my undervolting commands. As soon as a use wrmsr, all VIDs get locked to 28 (the highest setting!) and temperatures rise significantly! Could this be the cause of the power bug phoronix is talking about? (But I did my undervolting tests no linux, so I'm surprised by this behavior).
One thing I noticed with your instructions is that the cpufreq-selector commands you are using only apply to the first CPU, not to both. You need to use option -c 0 and -c 1 to touch both cores. To be honest, I don't even bother changing the P-state before writing the new Vid values, sooner or later they will be active due to all the P-state changes.

I also noticed that the two cores seems to have their MSR registers linked one way or another, since when my program write the Vid for core 0, this also changes the Vid for core 1 as well.

Reno
Posts: 2
Joined: Sat May 07, 2011 6:44 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by Reno » Sat May 07, 2011 7:02 am

Guys you're kings!!!!
Thank you very much!

I use your work but translated in french in the :
hardware.fr forum. It's a topic about DM1 3130.
I explain that it's your work and I put a link to this topic.

thierryg, could you read my post on the french forum and tell me if I didn't say too many things wrong

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z w/amd fusion is a screamer!

Post by porkchop » Sat May 07, 2011 6:15 pm

bsod!
guess i was a bit overzealous with my undervolt, 30min of orthos isn't worth much :(
i can't be bothered stress testing again so i just increased the voltages by a notch or two, no problems for 1hr+ now. currently 1.125v, 0.975v and 0.8v.

i followed the instructions from StApostol and i've got it to undervolt automatically at login now... reminds me of the good old k8 crystal cpuid days.

tttttony
Posts: 2
Joined: Sat May 07, 2011 8:12 pm

Re: hp dm1z w/amd fusion is a screamer!

Post by tttttony » Sat May 07, 2011 8:19 pm

StApostol wrote:
porkchop wrote:i'm hoping StApostol has something for me :)
I have! :) 3 simple steps:

1. In the rw-everything folder, create a text file with the following contents:

Code: Select all

>cpu 1
>wrmsr 0xc0010064 0x80000126 0x00003810
>wrmsr 0xc0010065 0x8000011A 0x00003C12
>wrmsr 0xc0010066 0x8000028C 0x00007430
>cpu 2
>wrmsr 0xc0010064 0x80000126 0x00003810
>wrmsr 0xc0010065 0x8000011A 0x00003C12
>wrmsr 0xc0010066 0x8000028C 0x00007430
>RwExit
(Note: replace the 38, 3C and 74 values with the ones you found in your undervolting tests! These are specific to the E-350 processor, so please make sure you use the correct MSR values if you use a different processor)

2. Rename this file to ZacateUndervolting.rw or something else equally descriptive.

3. Open the task scheduler and add a new scheduled task with the following parameters:
- Name: "Zacate Undervolting"
- Run whether user is logged in or not
- Run with highest privileges
- Action: C:\[Path to rw-everything here]\rw.exe /Command=ZacateUndervolting.rw /Logfile=log.txt
- Working directory (found when creating the action): C:\[Path to rw-everything here]
- Trigger: On Startup

And that's it! Restart and your undervolting will be applied automagically. Just stash rw-everything somewhere out of the way and make sure you modify the scheduled task if you ever move the program folder.
just activating the quiet profile without hp thermal assistant is a big win for me. i could finally uninstall hp support assistant(big piece of poop) which it was part of, and activating it this way seems permanent. before, the profile would automatically go back to optimized after a reboot.
Indeed, that's a big win already!

EC values are permanent. However, if you ever need to reset them (because e.g. the system doesn't boot), remove the power cord, remove the battery, remove all USB devices and press the power button for 10-15 seconds. This will reset them to their defaults.

Great!
(Note: replace the 38, 3C and 74 values with the ones you found in your undervolting tests!--How can i find in my undervolting tests.

I need the fan control(temperature 60,70,80

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by thierryg » Sat May 07, 2011 11:06 pm

Reno, you're welcome. I checked and your post is well done. One question: when you use rw-everything, do you change both CPUs or only one ?

porkchop, I had too lockups last night and had to raise my p2 voltage a notch. It seems a good stress test is a lengthy compilation, such as compiling a large C++ program. And I also have a K8 for my HTPC, undervolted in a similar way but with cpupowerd.

tttttony
Posts: 2
Joined: Sat May 07, 2011 8:12 pm

Re: hp dm1z w/amd fusion is a screamer!

Post by tttttony » Sun May 08, 2011 12:32 am

MOD EDIT: Per the Forum Posting Rules, please keep your images to a max of 640 pixels wide! Thanks!


HELP!! I tried temperature 74,78,79. I failed!
The cpu usage always 100%,the display is terrible too.

I reset the EC values( press the power button for 10-15 seconds). How can i check that it is the defaults?
You do not have the required permissions to view the files attached to this post.

Reno
Posts: 2
Joined: Sat May 07, 2011 6:44 am
Location: France

Re: hp dm1z w/amd fusion is a screamer!

Post by Reno » Sun May 08, 2011 1:42 am

thierryg, I tried both and I had the same result. If I changed one register, both are changed. Like you said the two cores seems to have their MSR registers linked.
But, in doubt, I change MSR registers for the two core.

StApostol
Posts: 39
Joined: Sat Mar 17, 2007 12:57 am

Re: hp dm1z w/amd fusion is a screamer!

Post by StApostol » Sun May 08, 2011 2:38 pm

tttttony wrote:MOD EDIT: Per the Forum Posting Rules, please keep your images to a max of 640 pixels wide! Thanks!


HELP!! I tried temperature 74,78,79. I failed!
The cpu usage always 100%,the display is terrible too.

I reset the EC values( press the power button for 10-15 seconds). How can i check that it is the defaults?
THESE VALUES ARE NOT TEMPERATURES, DO NOT CHANGE THEM LIKE THIS! (Sorry for shouting, need to make this extra clear).

These value control the voltage in your CPU. This is a process called undervolting and you must be very careful while doing it (search google for "undervolting tutorial" to find how to find the correct values for your CPU). The general idea is that you run a CPU stress test and lower the voltage until it crashes. Once you find the lowest safe voltage for your CPU, you can use the process in the previous posts to apply them and reduce CPU temperatures.

Fortunately, the changes you made were not dangerous and a simple reboot is enough clear them (these are not EC values and a simple reboot will clear them). You must be very careful when changing voltages, because if you mistype a digit an raise the voltage instead of reduce it, you can fry your CPU. You were very lucky here!

Unfortunately, there is no direct fan control for dm1z at this point. The best you can do is use HP Coolsense to set the cooling profile to "quiet".

phalanx05
Posts: 1
Joined: Sun May 08, 2011 2:41 pm

Re: hp dm1z w/amd fusion is a screamer!

Post by phalanx05 » Sun May 08, 2011 2:44 pm

The link to the msr program for windows is broken

porkchop
Posts: 496
Joined: Thu May 25, 2006 1:19 am
Location: Australia

Re: hp dm1z undervolting and (limited) fan control

Post by porkchop » Sun May 08, 2011 6:50 pm

both links worked for me.

i have changed the topic heading to better reflect the thread, now it doesn't sound like it's about some dude whining about his loud laptop :D

thierryg
Posts: 27
Joined: Wed Dec 17, 2008 12:42 am
Location: France

Re: hp dm1z undervolting and (limited) fan control

Post by thierryg » Tue May 10, 2011 12:22 pm

Hi,

that's me back again, with some info about undervolting the GPU part of the E-350, and a request for tests and help.

So, it seems that the North Bridge is providing power to the GPU part, through two NBP-states: NbP0 and NbP1. In the same way as a CPU, NbP0 is the high performance mode, NbP1 the low performance one. There is a Vid and a COF for each state as well.

The registers are described as the following:

Code: Select all

D18F6x90 NB P-state Config Low
80003226
Bits Description
31		NbPsCap.
30		NbPsCtrlDis.
29		NbPsForceSel.
28		NbPsForceReq.
27:21	        Reserved.
20		NbPsLock.
19:17	        Reserved.
16		NbPs1GnbSlowIgn.
15		Reserved.
14:8	        NbPs1Vid.  32
7		Reserved.
6:0	        NbPs1NclkDiv.
With a start value of 80003226, I then tried the following Vid:
80003426 80003626 80003826
With the command:

Code: Select all

sudo setpci -s 00:18.6 0x90.L=80003826
For P0, this is another register:

Code: Select all

D18F3xDC Clock Power/Timing Control 2
Bits	Description
31		CnbCifClockGateEn.		1
30		NbClockGateEn.			0
29:27	NbClockGateHyst.	011
26:20	NbPs0NclkDiv.			001000
19		NclkFreqDone.				1
18:12	NbPs0Vid.					0101100 -> 0x2C -> 1000mV
11		Reserved.
10:8	PstateMaxVal.				010
7:0	Reserved.
Starting with a value of 998ac226, I increased vid one by one with the values: 998ad226 998ae226 998af226 998b0226.

Code: Select all

setpci -s 00:18.3 0xDC.L=998b2226
But, I'm not sure this has any effect. It does not change what GPU tools tell about the GPU status (voltage stays at 925mV(NbP1 or GPU Profile 0) and 1000mV(NbP0 or GPU Profile 1)). So far, it's hard to see temperature differences (Linux lacks good GPU benchmarks!). Additionally, any sleep will reset NbP1 Vid to 0x32.

So, if anybody is keen to try and go further, under windows or Linux. It seems setpci may be compiled under Windows...

Post Reply