<> Power Management Kaminaga (Sony) 1. 目的 Software Suspendで起動高速化したい。 また、イメージをとっておくことで、解析にも使える。 2. Swsusp 処理の流れ (suspend) 1) プロセスの実行を停止 2) 不要なメモリの解放 3) Deviceを停止 4) snapshot imageを作成 5) Deviceを復帰 6) snapshot imageをswap(nor flash)に書き込む 7) machineを停止する。 (resume) 1) late_initcall から処理を再開 2) swap(nor flash)からメモリへイメージを読みこむ。 3) プロセスを停止する。 4) Deviceを停止 5) 再度イメージを読み込む。 6) Deviceを復帰 7) プロセスを起動 resume時の問題点 resumeの2, 5にて I/Oが2度発生する。 3. snapshot boot BootLoader(uboot)に修正をくわえ、以下の処理の流れとする。 1) snapshot imageをflashからメモリにロードする。 2) 初期化とセットアップ 3) resume entry pointへジャンプする。 これにより、I/Oを一度にする等メリットあり。 -> 実験用にBootLoader(uboot)に上記処理を行わせるコマンドを 用意(bootss)。 デモ BootLoader(uboot)に実装したコマンド(bootss)を実行し、snapshot bootが 動作した。 質疑応答 1. 今時間がかかっている所は? イメージを直接メモリにのせる所が2秒位かかっている。 そこはバースト転送ですか。 違います。 バースト転送を調べてみてはどうですか。 2. Suspend2 は使わないか? 最初に着手したのがsusp1だっただけ。