Improvement of bootup time using Power Management - Project Update - ソニー㈱ 神長浩気 kaminaga@sm.sony.co.jp 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 目的: アプリケーションの起動時間を短縮したい HW初期化 マウント ドライバ init アプリケーションの起動時間 (Boot loader / kernel) 1 [s] 1 [s] 2 [s] 5 [s] アプリケーションが main() に到達するまでに行われる処理 イメージの転送 ダイナミックリンク グローバルコンストラクタ システム全体を稼動する為のアプリケーション間の IPC 処理 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 Linux 上の hibernate: Swsusp 2.6 バニラカーネルに含まれている (Documentation/power/swsusp.txt) 制作者:Pavel Machek Software Suspend 2 http://www.suspend2.net/ 制作者:Nigel Cunningham 2005/Nov/25 JapanTechnicalJamboree5
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/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 現状: Suspend2 の ARM ポーティングを行った Suspend2 の ML に投稿した 次期リリースに反映される予定! http://lists.suspend2.net/lurker/message/20051114.094040.11261d0e.en.html 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 環境: ターゲットボード OMAP Starter Kit (OSK 5912) OS Linux 2.6 Boot loader U-boot Image 書き込み先 Flash ROM 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/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 Suspend2 評価: Linux 2.6.14 + Suspend2-2.2-rc9 ash ログイン状態から hibernate 時間測定にカーネルの printk time を用いた Uboot から linux が立ち上がる時刻が基準 Make menuconfig で Kernel hacking ---> [ ] Show timing information on printks http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 Suspend2 結果: 通常の起動時間 7.618 [sec] Suspend2 (lzf 有効) 22.492 [sec] 12.371 MB 7.450 MB (圧縮率 39%) Suspend2 (lzf 無効) 17.99 [sec] 起動時間差: 20%, 4.50 [sec] Suspend2 処理開始時間: 4.402 [sec] 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 swsusp 評価: Linux 2.6.11 時間測定にカーネルの printk time を用いた Uboot から linux が立ち上がる時刻をゼロ Make menuconfig で Kernel hacking ---> [ ] Show timing information on printks http://tree.celinuxforum.org/CelfPubWiki/PrintkTimes 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 swsusp 結果: 通常の起動時間 7.676 [sec] swsusp (ash) 9.52 [sec] Image: 6.38 MB swsusp (mplayer) 13.910 [sec] Image: 10.24 MB (swsusp 処理開始時間: 2.174 [sec]) 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 Swsusp/suspend2 比較: Linux のバージョンが異なるので比較が出来ないが… Swsusp/linux2.6.11 はイメージが小さい& 起動が早い Suspend2/linux2.6.14 のイメージの LZF 圧縮 は有効だが、起動時間とのトレードオフ Suspend2-2.2 は RC なので、まだ不安定… 2005/Nov/25 JapanTechnicalJamboree5
Swsusp/suspend2 比較:(続) イメージサイズ/処理時間では Suspend2: 925KB/sec swsusp: 889KB/sec 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 swsusp3: swsusp の作者 Pavel が encryption, compression, UI などを swsusp に拡張 主な処理を userland で行い、 kernel への 変更を最小限にとどめることが目標 http://lists.osdl.org/pipermail/linux-pm/2005-September/001312.html http://lists.osdl.org/pipermail/linux-pm/2005-November/001535.html http://lists.osdl.org/pipermail/linux-pm/2005-November/001562.html 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 Swsusp3:(MLダイジェスト) 2.6.16 位に kernel 部分を入れたい (Pavel) もし入るならば、RH/FC kernel は分岐するだろう。Swsusp3 は /dev/mem を使うが、rootkit を阻止する為に /dev/mem に制限をかけているので(Dave Jones) …(以降 swsusp3 vs security の議論白熱) Userland で encryption/compression を行う 方が直感的だ (Rafael J. Wysocki ) 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 Swsusp3:(MLダイジェスト続) Suspend2 にはそれら機能が入っているぞ、 ダブルエフォートだぞ。(Dumitru Ciobarcianu ) Kernel に実装するのは違う。Pavel を疑うのか?Nigel は一緒にする為に彼が何をしなければならないのか分かっている (Greg K-H) 何で userland が正しい場所だと思うのか分からない (Nigel) 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 Swsusp3:(MLダイジェスト続) Userland swsusp では 150 行程度しか kernel に変更が無い (Pavel) 現在のままでは Nigel のコードは mainline には入らない事を自覚しる(Greg K-H) (以降議論白熱) 2005/Nov/25 JapanTechnicalJamboree5
JapanTechnicalJamboree5 EOF 2005/Nov/25 JapanTechnicalJamboree5