View previous topic :: View next topic |
Author |
Message |
Elmo234 n00b
Joined: 08 Oct 2004 Posts: 48
|
Posted: Wed Mar 15, 2006 10:15 pm Post subject: Longer battery life for Athlon64 and Turion laptops |
|
|
Hi!
I started developing a new program. The first version is out now
It is a daemon to replace powernowd, cpufreqd, etc...
It is more configurable and it lets you override the voltage of AMD K8 core cpu's (Athlon 64, Opteron and some Semprons) and Pentuim-M (centrino) and Celeron-M from Intel.
After a few test I found that my athlon 64 processor was able to work at 1,2v at 1800Mhz and 0,8v at 800Mhz (AMD it has to work at 1,5 and 1,1v). This makes the cpu run cooler and I have almos 30 minutes more of battery life.
So you can have a try if you want...
www.tuxamito.com.es/cpupw/ Here you will find a lot more of information.
Please, write your comments... |
|
Back to top |
|
|
Gnufsh Guru
Joined: 28 Dec 2002 Posts: 400 Location: Portland, OR
|
Posted: Thu Mar 16, 2006 1:04 am Post subject: |
|
|
Sounds interesting. Planning on writing an ebuild for it? |
|
Back to top |
|
|
mudrii l33t
Joined: 26 Jun 2003 Posts: 789 Location: Singapore
|
Posted: Thu Mar 16, 2006 8:23 am Post subject: |
|
|
Nice and really cool if you can make an ebuild.
Is it work on Big AMD 64 dual core too ? _________________ www.gentoo.ro |
|
Back to top |
|
|
Elmo234 n00b
Joined: 08 Oct 2004 Posts: 48
|
Posted: Thu Mar 16, 2006 8:55 am Post subject: |
|
|
Yes it works for dual core cpus. I tested it on mine
It is also supposed to work on multi cpu systems and hybrid systems (1 dual core cpu and a single core cpu)... But I haven't tested that...
This is just the first release. Next week I will release a new version that solves some isues. I also want to make some scrips for starting / stopping the daemon.
Then I will try to write and ebuild. The problem is that I have never written one. I hope it is not too difficult |
|
Back to top |
|
|
Plugin_baby n00b
Joined: 18 Aug 2005 Posts: 26 Location: The Netherlands
|
Posted: Thu Mar 16, 2006 9:15 am Post subject: |
|
|
Sounds good, the short battery life of my turion64 laptop really annoys me...
Elmo234, you say you get an extra 30 min. with this, how long do you have in total?
At 800MHz (ondemand) I still only get about 2 hours.
I know that battery life also depends on the model, but I'm curious about what others are able to get |
|
Back to top |
|
|
Elmo234 n00b
Joined: 08 Oct 2004 Posts: 48
|
Posted: Thu Mar 16, 2006 9:31 am Post subject: |
|
|
My notebook is an ACER 1501 LMI with an Athlon 64 DTR processor. At 800 Mhz I can change voltage from 1,1 to 0,8v. That reduces the energy needed by the cpu in a 47%. This pushes battery life from 2 hours 30 minutes to over 3 hours.
But in a Turion system you won't be able to reach such a high difference because you processor uses lover voltage by default and because Turion uses about half energy that an old Athlon 64 DTR.
But you can try it. Maybe you have 15 or 20 minutes more of battery life. |
|
Back to top |
|
|
Elmo234 n00b
Joined: 08 Oct 2004 Posts: 48
|
Posted: Sun Mar 19, 2006 10:24 pm Post subject: |
|
|
I just released a new version (0.1.1) that solves some bugs. The ebuild will come soon (in two or three days). |
|
Back to top |
|
|
Voluspa n00b
Joined: 20 Mar 2006 Posts: 3 Location: Sweden
|
Posted: Mon Mar 20, 2006 11:30 pm Post subject: |
|
|
Ever since Linus "stole" my one and only C-state for reducing power usage in kernel 2.6.15 (see http://bugzilla.kernel.org/show_bug.cgi?id=5767 ), I've patched it back with:
Code: |
diff -Nur linux-2.6.16-original/drivers/acpi/processor_idle.c linux-2.6.16-patched/drivers/acpi/processor_idle.c
--- linux-2.6.16-original/drivers/acpi/processor_idle.c 2006-03-20 06:53:29.000000000 +0100
+++ linux-2.6.16-patched/drivers/acpi/processor_idle.c 2006-03-20 20:24:10.000000000 +0100
@@ -953,7 +953,7 @@
for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
if (pr->power.states[i].valid) {
pr->power.count = i;
- if (pr->power.states[i].type >= ACPI_STATE_C2)
+ if (pr->power.states[i].type >= ACPI_STATE_C1)
pr->flags.power = 1;
}
}
|
But this is merely a trickle gain in comparison with the CPUPW program's undervolting feature. I registered on the ge
ntoo board just to give praise and thanks to the author in a public manner.
The Acer Aspire 1520 (1524) WLMi on my lap is a powerful machine: AMD Athlon64 Processor 3400+, 1 meg L2 cache, NVIDIA GeForce FX Go5700 64 meg and 2 gig system memory. The drawbacks are of course heat, fan noise and a short battery life - some 2 hours doing light work, connected through the builtin wireless LAN device.
CPUPW gives me another 30 minutes! Heat is lower, as could be expected, and the fan never reaches MAX, out of four levels: OFF - only when room temperature is quite chilly, LOW - normal state, MEDIUM - CPU 99% when compiling etc, MAX - previous level when eg playing a demanding game.
Configuration of CPUPW was a breeze, though I'd like to expand on a couple of points not mentioned in the online documentation. First, make sure that PowerNowd or other managers are unloaded. Second, cat the /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor and ensure that it says "userspace". Third, verify that all your voltage settings are adequately high by running eg a very demanding game.
I myself discovered that the value for 2000 MHz needed another 50 mV when Neverwinter Nights kept crashing at a certain spot (a wood with plenty of light beams streaming down through the treetop canopy - think it's called Druids Camp or something such). Finding the culprit speed was simple. I left the 2200 and 800 voltage values as they were - deduced by looking up the powernow-k8 reporting in the kernel log file and comparing it to the CPUPW online examples, while disabling the 2000 and 1800 speed voltages with a -1 value. No crash. I then added back the 1800 value. No crash. Added the 2000 value plus 50 mV. No crash. Done.
CPUPW also has a very good frequency management. When I installed PowerNowd I took that author's defaults on faith. Result was that eg drawing in Gimp could trigger the fan into MEDIUM level. And Neverwinter Nights... well, the fanless GPU reached its slowdown threshold (115C) and CPU fan was constantly on MAX. With CPUPW - run as /usr/sbin/cpupw --config /etc/cpupw.conf --smart --daemonize - both these programs use exactly the CPU speed they need. Gimp drawing always on LOW fan, NWN on MEDIUM and the GPU never reaching the slowdown threshold temperature.
So, in conclusion, the CPUPW program has indeed "made my day". A heartfelt thank you goes to the author Daniel(?). At version 0.1.1 I've only seen one issue. Kernel log file is sprinkled with:
Mar 20 18:07:42 ... powernow-k8: error - out of sync, fix 0x0 0x0, vid 0x1e 0x12
[...]
Mar 20 19:51:49 ... powernow-k8: error - out of sync, fix 0xa 0xa, vid 0x16 0xa
[...]
Mar 20 20:03:28 ... powernow-k8: error - out of sync, fix 0x0 0x0, vid 0x1e 0x12
The more frequency switching, the more of these messages. Below is a table of my machine values followed by the actual cpupw.conf:
Code: |
AMD Athlon64 Processor 3400+ defaults:
FID (decimal) MHz VID (decimal) mV
14 2200 2 1500
12 2000 6 1400
10 1800 10 1300
0 800 18 1100
Idle machine running Xorg and KDE at 800 MHz in 24C room temperature:
CPU core 49-50C
CPU env. 48C
After the CPUPW implementation:
FID (decimal) MHz VID (decimal) mV (Values deduced - lower not tested)
14 2200 14 1200
12 2000 16 1150 (50 mV extra to NeverWinter Nights)
10 1800 22 1000
0 800 30 800
Idle machine running Xorg and KDE at 800 MHz in 24C room temperature:
CPU core 46-47C
CPU env. 45-47C
|
1
1
304
4
2200000 14 -1 -1
2000000 16 -1 -1
1800000 22 -1 -1
800000 30 -1 -1
1 _________________ Mvh
Mats Johannesson |
|
Back to top |
|
|
Elmo234 n00b
Joined: 08 Oct 2004 Posts: 48
|
Posted: Tue Mar 21, 2006 6:20 pm Post subject: |
|
|
Thank you Voluspa for such a great comment to the program. And thanks for thanking me
Voluspa wrote: |
The Acer Aspire 1520 (1524) WLMi on my lap is a powerful machine: AMD Athlon64 Processor 3400+, 1 meg L2 cache, NVIDIA GeForce FX Go5700 64 meg and 2 gig system memory. The drawbacks are of course heat, fan noise and a short battery life - some 2 hours doing light work, connected through the builtin wireless LAN device.
CPUPW gives me another 30 minutes! Heat is lower, as could be expected, and the fan never reaches MAX, out of four levels: OFF - only when room temperature is quite chilly, LOW - normal state, MEDIUM - CPU 99% when compiling etc, MAX - previous level when eg playing a demanding game.
|
I have an Acer Aspire 1501LMi (Athlon 64 DTR 3000+) with 2.5 hours of battery life (3 with CPUPW, and, like in you laptop, it never reaches MAX fan speed).
Voluspa wrote: |
Configuration of CPUPW was a breeze, though I'd like to expand on a couple of points not mentioned in the online documentation. First, make sure that PowerNowd or other managers are unloaded. Second, cat the /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor and ensure that it says "userspace". Third, verify that all your voltage settings are adequately high by running eg a very demanding game.
|
I know that the making a configuration file is a bit difficult. When I started this program I didn't want to lose time making a parser for a more complex and easy to read (and write) configuration file. But in the future I will change it...
I will also write that information in the webpage. It is very useful for other users to know.
Voluspa wrote: |
Finding the culprit speed was simple. I left the 2200 and 800 voltage values as they were - deduced by looking up the powernow-k8 reporting in the kernel log file and comparing it to the CPUPW online examples, while disabling the 2000 and 1800 speed voltages with a -1 value. No crash. I then added back the 1800 value. No crash. Added the 2000 value plus 50 mV. No crash. Done.
|
This has to be done for each computer Nobody knows which are the lowest values of voltage for a CPU to work stable...
Voluspa wrote: |
So, in conclusion, the CPUPW program has indeed "made my day". A heartfelt thank you goes to the author Daniel(?).
|
Thank you very much I coded this program for myself and for fun. But I am glad to know that it is useful to other people. Yes, my name is Daniel.
Voluspa wrote: |
At version 0.1.1 I've only seen one issue. Kernel log file is sprinkled with:
Mar 20 18:07:42 ... powernow-k8: error - out of sync, fix 0x0 0x0, vid 0x1e 0x12
[...]
Mar 20 19:51:49 ... powernow-k8: error - out of sync, fix 0xa 0xa, vid 0x16 0xa
[...]
Mar 20 20:03:28 ... powernow-k8: error - out of sync, fix 0x0 0x0, vid 0x1e 0x12
The more frequency switching, the more of these messages. Below is a table of my machine values followed by the actual cpupw.conf:
|
I know this... and I think I know why this happens. I am trying to fix it (in fact the change from version 0.1.0 to 0.1.1 reduces this by an 80% aprox).
Now I am really busy with university, but in a week I will release a new version with a few bug fixed and new features. |
|
Back to top |
|
|
Voluspa n00b
Joined: 20 Mar 2006 Posts: 3 Location: Sweden
|
Posted: Fri Mar 24, 2006 5:01 am Post subject: |
|
|
I've read the interesting (and long-running) gentoo AMD64 thread on undervolting, where hopes of a kernel or at least a distributor patch acceptance is expressed. That will probably never happen. Operating out of spec, even if it is a user choice, would place them in a most unwanted liability. Consider for example the powersaving AMDK7 patch that has been floating around since 2002. Len Brown, the ACPI maintainer from Intel, had some final strong words:
[PATCH] amd76x_pm: C3 powersaving for AMD K7
Thread start http://marc.theaimsgroup.com/?l=linux-acpi&m=113873375729153&w=2
--quote Len Brown http://marc.theaimsgroup.com/?l=linux-acpi&m=113895655522773&w=2 --
[...]
How about if we put it this way...
If the ACPI maintainer were an AMD employee,
and he accepted a patch like this specific to Intel hardware --
a patch that rejects whatever validation Intel, the BIOS
vendor and the board vendor have put into the product --
I'd call for his expulsion for ineptitude.
If somebody from AMD steps forth and says that hey, their hardware
is broken if used in the standard way, but that this "logic around"
is a valid model-specific workaround -- then we have something
that MAYBE we can work with. Otherwise, do whatever works for your
own system, but it would be reckless of us to put stuff like this
in the upstream kernel and then ask distros to support it.
--end quote--
Undervolting has a strong aura of "recklessness" and a userspace tool like CPUPW could well be the only patch-free avenue for the foreseeable future.
Speaking of which, Daniel, when university has eased its grip could you contemplate a runtime switch along the line of "--maxfreq <frequency>"? When trying out voltages my 2200 and 800 MHz speeds posed no problems. The 800 could be had by using your "--laptop" switch and doing an "echo -n '1'>/proc/sys/vm/laptop_mode", but the intermediate speeds 2000 and 1800 really had me stumped for awhile. Experiments caused a lot of "ignoring illegal change in lo freq table-0 to 0x0 -- transition frequency failed" in /var/log/syslog until I finally could clamp the speed AND retain correct voltage by doing:
echo -n "1800000">/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
(using this cpupw.conf)
1
1
304
4
2200000 22 -1 -1
2000000 22 -1 -1
1800000 22 -1 -1
800000 30 -1 -1
1
echo -n "2000000">/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
(using this cpupw.conf)
1
1
304
4
2200000 16 -1 -1
2000000 16 -1 -1
1800000 22 -1 -1
800000 30 -1 -1
1
Not pretty If we want to find _stable_ voltages, testing each level is a must. And, as it turns out, that requires quite some work. Taking a hint from the other undervolting thread, I downloaded GIMPS (mprime) http://www.mersenne.org/freesoft.htm and ran the torture test (-t). Heh... my value for 2200 MHz, which was stable in Neverwinter Nights, miscalculated after a mere two minutes. Fixed by upping it another 50 mV. I then ran each speed - deleting local.ini in between - the recommended minimum of six hours without errors.
But, and this really underscores the need for multiple test-tools, entering Neverwinter Nights again I experienced a crash while loading an area. Knowing that this is more disk than CPU bound I guessed that the lower frequencies also needed a little extra juice. Giving both 800 and 1800 speeds another 50 mV and walking around the map for an hour finally convinced me of machine stability.
Examining by "cat /sys/devices/system/cpu/cpu*/cpufreq/stats/trans_table" (cpufreq_stats and freq_table modules loaded or builtin) after the game is another must to verify that you've really exercised all the CPU speeds.
Final cpupw.conf for me, and me only
1
1
304
4
2200000 12 -1 -1
2000000 16 -1 -1
1800000 20 -1 -1
800000 28 -1 -1
1
Ergo:
Code: |
FID (decimal) MHz VID (decimal) mV ("mprime -t" and NWN game confirmed)
14 2200 12 1250
12 2000 16 1150
10 1800 20 1050
0 800 28 850
|
Using these extra 50 mV also seem to have decreased the "out of sync" in /var/log/messages. Coming back from NWN there was only one. Go figure... _________________ Mvh
Mats Johannesson |
|
Back to top |
|
|
octapus n00b
Joined: 10 Mar 2003 Posts: 35
|
Posted: Fri Mar 24, 2006 11:28 am Post subject: |
|
|
Very useful program indeed.
I have an AMD 64 3200+ and the following working configuration:
1
1
304
3
2000000 16 -1 -1 <= 1150mV from 1500mV
1800000 20 -1 -1 <= 1050mV from 1400mV
1000000 24 -1 -1 <= 950mV from 1150mV
1
Even under full load the second fan is never activated which lowers the amount of noise the laptop generates.
I didn't extensively test the stability but there are no problems till now.
Let me also say that there were messages similar to what was mentioned before ("powernow-k8: error - out of sync.....") from time to time. |
|
Back to top |
|
|
widan Veteran
Joined: 07 Jun 2005 Posts: 1512 Location: Paris, France
|
Posted: Fri Mar 24, 2006 10:27 pm Post subject: |
|
|
Voluspa wrote: | Kernel log file is sprinkled with:
Code: | Mar 20 18:07:42 ... powernow-k8: error - out of sync, fix 0x0 0x0, vid 0x1e 0x12
Mar 20 19:51:49 ... powernow-k8: error - out of sync, fix 0xa 0xa, vid 0x16 0xa
Mar 20 20:03:28 ... powernow-k8: error - out of sync, fix 0x0 0x0, vid 0x1e 0x12 |
|
The powernow driver keeps track of the current fid/vid it sets. Before a transition, it checks to see if the parameters are still what it thinks they are, and gives the out of sync message if something changed (here the vid). AFAIK the frequency transition is still done, this is only a warning message. The messages appear because the cpupw program does the voltage change from userspace (by writing to FID/VID control MSR) and the powernow driver is not notified of the vid change.
Fixing that would require modifying the powernow driver to set the proper voltages directly when it does the frequency transition, rather than modifying them later from userspace. There are patches to do this in the main undervolting thread.
Voluspa wrote: | Experiments caused a lot of "ignoring illegal change in lo freq table-0 to 0x0 -- transition frequency failed" in /var/log/syslog |
Either keep the lowest frequency in the table at standard voltage, or force a transition to a higher frequency, then back down to the low frequency to have the correct voltage set. This appears because the powernow driver refuses to do transitions between low FIDs and doesn't allow a voltage-only transition for low FIDs (it thinks the transition is between two different low FIDs, which is not allowed). |
|
Back to top |
|
|
superwutze Tux's lil' helper
Joined: 09 Dec 2004 Posts: 137 Location: Europe/Vienna
|
Posted: Sat May 20, 2006 1:03 pm Post subject: |
|
|
i have some trouble using cpupw.
my system is a tyan s2875 k8w and i have two opterons 246 on it.
cpupw -s gives the following:
Code: | System has 1 physical CPU's
CPU 0-> voltage: 1.550000 v, VID: 0, frequency: 800 Mhz, FID: 0 |
which is wrong in every single point.
1 have two cpus
they run at 1.2v
they run at 1ghz
but now to my real question: can cpupw change the frequency table too?
i tried several cpupw.conf variations but not a single one showed any alteration to my system.
per default my system has 3 steps (1 1.8 and 2ghz) and i want to change them to 0.8 1.2 1.6 and 2ghz which runs fine in windows with rmclock. could cpupw do this?
i have another question that no one was able to answer so far:
why do i need a daemon to change frequencies?
where is the difference to:
Code: | echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "ondemand" > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor |
so far i have used the kernel patch to change voltages but the links to the patches (and the last ones could change the frequency table also) are down, so i have to look for another possibility to do that. and a userspace program is by far better than patching every kernel. _________________ bill who? micro what? |
|
Back to top |
|
|
pagaman n00b
Joined: 23 Jan 2004 Posts: 25 Location: London
|
Posted: Fri Jun 02, 2006 9:49 pm Post subject: |
|
|
Just a quick note to say thanks.
I've got an Acer aspire 1520 something, and I've just knocked 200mV off all 3 of my settings.
This is great
I can probably knock more off too...
My config:
1
1
304
3
1800000 10 -1 -1
1600000 14 -1 -1
800000 26 -1 -1
1 _________________ History only remembers great people by forgetting their mistakes. |
|
Back to top |
|
|
Elmo234 n00b
Joined: 08 Oct 2004 Posts: 48
|
Posted: Wed Jun 07, 2006 9:17 pm Post subject: |
|
|
I just released a new version... cpupw 0.2.0. But I haven't test it much. The main new things are:
- It is supposed tu run on multiprocessor computers (the other versions didn't, there was a bug) and I say supposed because I don't have a multiprocessor system to test.
- Possibility to adjust VID and FID manually.
- Detects which governor is running and gives warnings if it is not "userspace".
- Now the FSB frequency is detected (the theoretical and the real one).
- You can modify the VID by a constant, passed as a parameter. This let's you decrease, for example, 0.2v in every step without creating a config file.
the web page is the same: http://tuxamito.com.es/cpupw/
please, give me your reports
thanks |
|
Back to top |
|
|
kristoffer Tux's lil' helper
Joined: 05 Oct 2003 Posts: 85
|
Posted: Thu Jun 08, 2006 3:24 pm Post subject: |
|
|
This program is great! I'm using it on all of my computers now. I do, however, want to be able to set a bound for the frequency values, i.e. something equivalent to scaling_max_freq and scaling_min_freq, so I did a little hack to add that functionality. In order to apply the hack, put the code below in a patch file in the cpupw-0.2.0/src directory, apply the patch to cpupw.c and compile:
Code: | --- cpupw.c 2006-06-08 17:10:29.000000000 +0200
+++ ../src.mod/cpupw.c 2006-06-08 17:05:32.000000000 +0200
@@ -169,6 +169,8 @@
int p_changevid = 0;
int p_governor = 0;
int p_governor_cpu = -1;
+int p_max_freq = -1;
+int p_min_freq = -1;
char *s_governor;
/* This controls the loop time and when to exit it */
@@ -797,7 +799,7 @@
void decide_change (void)
{
int i, j;
- int max, average;
+ int max, average, current;
for(i=0;i<numpcpus;i++)
{
@@ -824,15 +826,27 @@
max = (int)average/j;
}
- if(max > cpus[i].scaling_table[cpus[i].now].up &&
- cpus[i].scaling_table[cpus[i].now].up >= 0)
+ current = get_actual_speed(i, 2);
+
+ if (p_max_freq != -1 && current > p_max_freq)
+ change_speed(-1, i);
+ else if (p_min_freq != -1 && current < p_min_freq)
+ change_speed(1, i);
+ else if(max > cpus[i].scaling_table[cpus[i].now].up &&
+ cpus[i].scaling_table[cpus[i].now].up >= 0 && (p_max_freq == -1 ||
+ cpus[i].scaling_table[cpus[i].now - 1].speed <= p_max_freq))
change_speed(1, i);
else if(max < cpus[i].scaling_table[cpus[i].now].down &&
- cpus[i].scaling_table[cpus[i].now].down >= 0)
+ cpus[i].scaling_table[cpus[i].now].down >= 0 && (p_min_freq == -1 ||
+ cpus[i].scaling_table[cpus[i].now + 1].speed >= p_min_freq))
change_speed(-1, i);
- else if (max > speed_up && cpus[i].scaling_table[cpus[i].now].up<0)
+ else if (max > speed_up && cpus[i].scaling_table[cpus[i].now].up<0 &&
+ (p_max_freq == -1 ||
+ cpus[i].scaling_table[cpus[i].now - 1].speed <= p_max_freq))
change_speed(1, i);
- else if (max < speed_down && cpus[i].scaling_table[cpus[i].now].down<0)
+ else if (max < speed_down && cpus[i].scaling_table[cpus[i].now].down<0 &&
+ (p_min_freq == -1 ||
+ cpus[i].scaling_table[cpus[i].now + 1].speed >= p_min_freq))
change_speed(-1, i);
}
}
@@ -1119,9 +1133,11 @@
printf(" increase the cpu frequency\n");
printf(" -D, --down ARG set ARG to be the default percentage of use to\n");
printf(" decrease the cpu frequency\n");
- printf(" -V, --voltage ARG1 ARG2 set ARG2 as the new VID, expressed as a decimal value\n");
- printf(" for physical CPU number ARG1\n");
- printf(" -F, --freq ARG1 ARG2 set ARG2 as the new frequency, expressed in Mhz\n");
+ printf(" -M, --max_freq ARG set the maximum frequency to ARG, expressed in KHz\n");
+ printf(" -m, --min_freq ARG set the minimum frequency to ARG, expressed in KHz\n");
+ printf(" -V, --voltage ARG1 ARG2 set ARG2 as the new VID, expressed as a decimal\n");
+ printf(" value for physical CPU number ARG1\n");
+ printf(" -F, --freq ARG1 ARG2 set ARG2 as the new frequency, expressed in KHz\n");
printf(" for physical CPU number ARG1\n");
printf(" -l, --laptop activate the laptop mode check\n");
printf(" -C, --changevid ARG increase the VID in ARG for all speed steps. ARG can\n");
@@ -1181,6 +1197,24 @@
else if(strcmp(argv[i],"-l")==0 || strcmp(argv[i],"--laptop")==0)
p_laptop = 1;
+ else if(strcmp(argv[i],"-m")==0 || strcmp(argv[i],"--min_freq")==0)
+ {
+ i++;
+ if(i>=argc)
+ return -9;
+ p_min_freq = atoi(argv[i]);
+ }
+
+ else if(strcmp(argv[i],"-M")==0 || strcmp(argv[i],"--max_freq")==0)
+ {
+ i++;
+ if(i>=argc)
+ return -9;
+ p_max_freq = atoi(argv[i]);
+ if(p_max_freq < p_min_freq)
+ return -9;
+ }
+
else if(strcmp(argv[i],"-a")==0 || strcmp(argv[i],"--autoconfig")==0)
{
p_autoconfig = 1;
@@ -1324,6 +1358,9 @@
case -8:
printf("bad values for governor arguments\n");
break;
+ case -9:
+ printf("bad frequency bound\n");
+ break;
}
return -1;
}
|
The new syntax is included in the -h/--help output. It should work for multiple processors, although the bound is set to the same value for all of them.
Elmo234: You may of course include this in the official source if you find it to be useful.
[edit]Forgot to mention that my patch also includes two fixes to the original --help output:
1) -F takes the frequency in KHz, not MHz, and
2) -V had a line that was longer than 80 columns, which made the output ugly.[/edit] _________________ I have to return some videotapes |
|
Back to top |
|
|
/carlito Guru
Joined: 31 Dec 2004 Posts: 451 Location: Belgium
|
Posted: Thu Jun 08, 2006 3:32 pm Post subject: |
|
|
I really can't understand this program. I own an MSI megabook S270 which hosts a Turion MT30 cpu.
Code: | # cpupw -s
readmsr, in read: Invalid argument
readmsr, in read: Invalid argument
System has 1 physical CPUs and 1 logial CPUs
readmsr, in read: Invalid argument
CPU 0-> voltage: 1.350000 v, VID: 8, frequency: 1200 Mhz, FID: 4
Theorical bus speed: 19.000000
Real bus speed: 100.000000
readmsr, in read: Invalid argument
Real cpu speed: 5500.000000
Governor: userspace
|
Code: | # cpupw -a
readmsr, in read: Invalid argument
readmsr, in read: Invalid argument
1
1
304
2
800000 -1 -1 -1
1600000 -1 -1 -1
1
|
Can someone assist me on how to test and set my VID? _________________
.O.
..O
OOO
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|