Power Management ディスカッション ソニー㈱ 神長浩気 [email protected] 2005/Sept/30 JapanTechnicalJamboree4 1 目的: • アプリケーションの起動時間を短縮したい HW初期化 マウント ドライバ (Boot loader init / kernel) 1 [s] 1 [s] アプリケーションの起動時間 2 [s] 5 [s] • アプリケーションが main() に到達するまでに行われる処理 – イメージの転送 – ダイナミックリンク – グローバルコンストラクタ • システム全体を稼動する為のアプリケーション間の IPC 処理 2005/Sept/30 JapanTechnicalJamboree4 2 従来の手法: • ダイナミックリンクの処理時間の短縮 – prelink • グローバルコンストラクタの処理時間の短縮 – コンストラクタを一箇所に集める (ローカライズ効果) • Execute in place (XIP) • Data セクションのデマンドページング (前回の水山さんの発表より) 2005/Sept/30 JapanTechnicalJamboree4 3 今回の手法: • hibernate からの復帰を利用する – ① BIOS (Boot loader)レベル – ② Kernel レベル – ③ BIOS + kernel 2005/Sept/30 JapanTechnicalJamboree4 4 終了・起動シーケンス①: KERNEL BOOT LOADER I/O Image save save I/O init OFF 2005/Sept/30 Image I/O restore rest. ON JapanTechnicalJamboree4 5 終了・起動シーケンス②: KERNEL I/O save Image save I/O I/O Image I/O boot init s.d. restore rest. BOOT LOADER OFF 2005/Sept/30 ON JapanTechnicalJamboree4 6 終了・起動シーケンス③: I/O img KERNEL save save BOOT LOADER I/O img I/O init rest rest. I/O img save save I/O img I/O init rest rest. OFF 2005/Sept/30 ON JapanTechnicalJamboree4 7 各種手法比較: • ① BIOS (Boot loader)レベル – Hibernate 復帰が比較的高速 – データの整合性が取れない場合の 処理が複雑になる • ② Kernel レベル – Hibernate 復帰後のデータの整合性をとる 処理ができる – Hibernate 復帰に時間がかかる • ③ BIOS + kernel – 高速な Hibernate 復帰 – データの整合性をとる処理ができる 2005/Sept/30 JapanTechnicalJamboree4 8 コンセプト: • スタートアップ – Boot loader のヘルパー関数を用いて kernel 側の unhibernate までの処理を軽減 • DEFERRED_RESUME – 指定されたアプリを優先的に立ち上げる • システムイメージの保存 – 毎回同じ状態でスタートする為 • その他 – マウント – Splash window – 高速シャットダウン 2005/Sept/30 JapanTechnicalJamboree4 9 Linux 上の hibernate: • Swsusp – 2.6 バニラカーネルに含まれている (Documentation/power/swsusp.txt) – 制作者:Pavel Machek • Software suspend 2 – http://www.suspend2.net/ – 制作者:Nigel Cunningham 2005/Sept/30 JapanTechnicalJamboree4 10 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 11 環境: • ターゲットボード – OMAP Starter Kit (OSK 5912) • OS – Linux 2.6 • Boot loader – U-boot 2005/Sept/30 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 JapanTechnicalJamboree4 12 作業内容: • Linux の hibernate の選択 – まずは swsusp で試す • • • • • • ARM へのポーティング FLASH への hibernate システムイメージの保存 高速シャットダウン Boot loader 側の hibernate DEFERED_RESUME 2005/Sept/30 JapanTechnicalJamboree4 13 現状: • Suspend2の調査 – システムイメージの圧縮 – システムイメージの暗号化 • Suspend2 の ARM ポーティング • U-boot の調査 – Boot loader 側の hibernate 2005/Sept/30 JapanTechnicalJamboree4 14 デモ: 2005/Sept/30 JapanTechnicalJamboree4 15 コミュニティ: • Suspend2 ML に Arm ポートパッチを 送ったら好意的に受け止められた • Arm ML に質問・問題点などについて アドバイスしてもらった 2005/Sept/30 JapanTechnicalJamboree4 16 EOF 2005/Sept/30 JapanTechnicalJamboree4 17 祝阪神タイガーズ優勝 2005/Sept/30 JapanTechnicalJamboree4 18
© Copyright 2024 ExpyDoc