クロックスケーリング

リリースされた日本語版に関するもの

モデレータ: 暇人, YoN, nyu

返信する
きりん
記事: 553
登録日時: 08/02/24(日) 21:49
連絡する:

クロックスケーリング

投稿記事 by きりん »

皆さんこんにちわ。
ノートPCを利用していると、バッテリー動作時の持続時間が気に掛かります。
クロックスケーリングに対応しているCPUでも、Puppyでは常に全速で動作しているようです。
OS内のモジュール・デレクトリーを見ていたら、クロックスケーリング用のモジュールもあるようなので実験してみました。
実験環境は、eeePC901(Atom N270)+Puppy4.11jp(kernel 2.6.25.16)です。

モジュールの組み込みは、/etc/rc.d/rc.local に追記しました。

コード: 全て選択

# cpu frequency-scaling 
modprobe acpi-cpufreq
modprobe cpufreq_conservative
modprobe cpufreq_ondemand
modprobe cpufreq_powersave
modprobe cpufreq_userspace
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
上では、ondemandにセットしています。
起動時にオプション付けないとハイパースレッディングは有効にならないのかな?
CPUは1個と認識しているようです。

端末からの確認になりますが、
使用しているドライバーの確認

コード: 全て選択

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
acpi-cpufreq
切り替え可能なモードの確認

コード: 全て選択

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
userspace powersave ondemand conservative performance 
現時点のモードの確認、クロック周波数の確認

コード: 全て選択

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
800000
performance を設定して強制適にクロックを下げて見る

コード: 全て選択

# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
1600000
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1600000 1333000 1067000 800000 
echo 1333000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
1333000 
4段階切り替えが可能なようです。

これらを電源管理と連動させれば良いかな?
Webのブラウジングが主体と想定して、
AC→ ondemand scaling_max_freq=1600000
バッテリー(100〜50%)→ ondemand scaling_max_freq=1600000
バッテリー(50%〜0%)→ ondemand scaling_max_freq=1333000
とでもしてみるか?

電源管理はありますか?
viewtopic.php?t=820
で紹介されていたスクリプトに組み込めばよいのかな?
jake
記事: 403
登録日時: 08/05/05(月) 14:46
お住まい: 滋賀県

投稿記事 by jake »

CPUのクロック調整に関しては、本家フォーラムに
http://www.murga-linux.com/puppy/viewtopic.php?t=28443
とうのがあって、その中にEeePC用のpet(cpu_power_save_loc.pet)があったので、試してみましたが、最低レベルにしたら、それまでの900MHzが113MHzまで低下した(らしい)ので確かに効果はありました。(EeePC 701SDで確認)
きりんさんの方法を試そうとしたのですが、

コード: 全て選択

modprobe acpi-cpufreq
ができません。ちなみに前述のpetはp4-clockmodをロードしています。
きりん
記事: 553
登録日時: 08/02/24(日) 21:49
連絡する:

投稿記事 by きりん »

こんにちわ。
jake さんが書きました:ちなみに前述のpetはp4-clockmodをロードしています。
acpi-cpufreqがCPUに依存するドライバーみたいです。
acpi-cpufreqはインテル系のもの、p4-clockmodはEIST未対応なPentium4みたいです。
ロード出来るものでよいのでないでしょうか。

私は次のwebを参考としました。
動的にCPUクロックや電圧を変更するcpufreqの概要とcpufreqdデーモンについて
http://d.hatena.ne.jp/kakurasan/20070720/p1
phoo
記事: 89
登録日時: 08/08/19(火) 01:12
お住まい: 神奈川県
連絡する:

投稿記事 by phoo »

きりんさん、jakeさん、こんにちは。
Dynabook SS2110 (PentiumM/1GHz)ではspeedstep-centrino、
VersaPro VA80J/BH (Pentium3-M/800MHz+VIA Prosavage PN133Tチップセット)ではacpi-cpufreq
をロードすることで、どちらのマシンも正常にCPU速度の動的変化を確認しました。
Goodな情報をありがとうございます。
Racy 5.2.2
ACER AspireOneHappy2 Atom N570 1.6GHz 2GB/250GB

Phoo
きりん
記事: 553
登録日時: 08/02/24(日) 21:49
連絡する:

Re: クロックスケーリング

投稿記事 by きりん »

こんにちわ。きりんです。
puppyも4.3となり、クロックスケーリングの機能もメニューから簡単に生かせるようになりました。Hdbench clone を利用してどんなふうに変化が出るのか実験してみました。
実験台はeeePC901(atom 1.6GHz)+puppy4.3jp-beta1 です。

コード: 全て選択

Puppy4.3jp-beta1
max/min      1.6G/0.8G 1.3G/0.8G 0.8G/0.8G
(max%)       (100%)    ( 83%)    ( 50%)

tatal=       119454    113883    103435
             (100%)    ( 95%)    ( 87%)

cpu:float=    63114     52908     31374
	         (100%)    ( 84%)    ( 50%)
cpu:integer= 104220     86458     51907
             (100%)    ( 83%)    ( 50%) 

memory=       82145     85176     74746
             (100%)    (104%)    ( 91%)

video:rectangle=
              84548     70639     47364
             (100%)    ( 84%)    ( 56%)
video:circle= 18758     17609     12329
             (100%)    ( 94%)    ( 66%)
video:text=   55189     50753     30064
             (100%)    ( 92%)    ( 54%)
video:scroll=   138       140       136
             (100%)    (101%)    ( 99%)
video:image=    112        96        72
             (100%)    ( 86%)    ( 64%)

disk:read=   436906    436906    436906
             (100%)    (100%)    (100%)
disk:write=  349525    338250    349525
             (100%)    ( 97%)    (100%)
のような結果で、
・演算能力はクロックの変化に比例しています。
・メモリーやhddの動作は変化なし。
・画面が意外と数値が変化しています。ビデオチップが有効に働いているのはスクロール位ですね。もっと、ハードを利用して描画しているものと思ったのですが・・・

以上、参考レポートです。
返信する