Power Management ディスカッション ソニー㈱ 神長浩気 kaminaga@sm.sony.co.jp 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 目的: アプリケーションの起動時間を短縮したい HW初期化 マウント ドライバ init アプリケーションの起動時間 (Boot loader / kernel) 1 [s] 1 [s] 2 [s] 5 [s] アプリケーションが main() に到達するまでに行われる処理 イメージの転送 ダイナミックリンク グローバルコンストラクタ システム全体を稼動する為のアプリケーション間の IPC 処理 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 従来の手法: ダイナミックリンクの処理時間の短縮 prelink グローバルコンストラクタの処理時間の短縮 コンストラクタを一箇所に集める (ローカライズ効果) Execute in place (XIP) Data セクションのデマンドページング (前回の水山さんの発表より) 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 今回の手法: hibernate からの復帰を利用する ① BIOS (Boot loader)レベル ② Kernel レベル ③ BIOS + kernel 1,2,3 の pro/con 図 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 終了・起動シーケンス①: KERNEL I/O save Image save I/O init Image restore I/O rest. BOOT LOADER OFF ON 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 終了・起動シーケンス②: KERNEL I/O save Image save I/O init boot I/O s.d. Image restore I/O rest. BOOT LOADER OFF ON 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 終了・起動シーケンス③: KERNEL I/O save img save I/O init img rest I/O rest. I/O save img save I/O init img rest I/O rest. BOOT LOADER BOOT LOADER OFF ON 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 各種手法比較: ① BIOS (Boot loader)レベル Hibernate 復帰が比較的高速 データの整合性が取れない場合の 処理が複雑になる ② Kernel レベル Hibernate 復帰後のデータの整合性をとる 処理ができる Hibernate 復帰に時間がかかる ③ BIOS + kernel 高速な Hibernate 復帰 データの整合性をとる処理ができる 1,2,3 の pro/con 図 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 コンセプト: スタートアップ Boot loader のヘルパー関数を用いて kernel 側の un-hibernate までの処理を軽減 DEFERRED_RESUME 指定されたアプリを優先的に立ち上げる システムイメージの保存 毎回同じ状態でスタートする為 その他 マウント Splash window 高速シャットダウン 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 Linux 上の hibernate: Swsusp 2.6 バニラカーネルに含まれている (Documentation/power/swsusp.txt) 制作者:Pavel Machek Software suspend 2 http://www.suspend2.net/ 制作者:Nigel Cunningham 2005/Sept/30 JapanTechnicalJamboree4
Linux 上の hibernate(比較): swsusp suspend2 architecture i386, ppc, x86_64, ia64 i386, ppc, x86_64 Discontiguous memory ○ × Compression Encryption Suspend-to-swapfile Suspend-to-file Userland サポート 出典: http://www.suspend2.net/features 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 環境: ターゲットボード OMAP Starter Kit (OSK 5912) OS Linux 2.6 Boot loader U-boot Hardware Features: ARM9 core operating at 192 Mhz. DSP core operating at 192 Mhz. TLV320AIC23 Stereo Codec 32 Mbyte DDR SDRAM 32 Mbyte Flash ROM RS-232 Serial Port 10 MBPS Ethernet port USB Host Port Compact flash connector On board IEEE 1149.1 JTAG 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 作業内容: Linux の hibernate の選択 まずは swsusp で試す ARM へのポーティング FLASH への hibernate システムイメージの保存 高速シャットダウン Boot loader 側の hibernate DEFERED_RESUME 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 現状: Suspend2の調査 システムイメージの圧縮 システムイメージの暗号化 Suspend2 の ARM ポーティング U-boot の調査 Boot loader 側の hibernate 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 デモ: 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 コミュニティ: Suspend2 ML に Arm ポートパッチを 送ったら好意的に受け止められた Arm ML に質問・問題点などについて アドバイスしてもらった Thread URL など 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 EOF 2005/Sept/30 JapanTechnicalJamboree4
JapanTechnicalJamboree4 祝阪神タイガーズ優勝 2005/Sept/30 JapanTechnicalJamboree4