2005/Nov/25 JapanTechnicalJamboree5 1
Improvement of bootup time using Power Management
- Project Update -
ソニー㈱神長浩気
2005/Nov/25 JapanTechnicalJamboree5 2
目的:
• アプリケーションが main() に到達するまでに行われる処理– イメージの転送– ダイナミックリンク– グローバルコンストラクタ
• システム全体を稼動する為のアプリケーション間の IPC 処理
HW初期化 マウントドライバinit(Boot loader
/ kernel)
1 [s] 1 [s] 2 [s] 5 [s]
アプリケーションの起動時間
• アプリケーションの起動時間を短縮したい
2005/Nov/25 JapanTechnicalJamboree5 3
Linux 上の hibernate :• Swsusp
– 2.6 バニラカーネルに含まれている(Documentation/power/swsusp.txt)
– 制作者: Pavel Machek
• Software Suspend 2– http://www.suspend2.net/– 制作者: Nigel Cunningham
2005/Nov/25 JapanTechnicalJamboree5 4
Linux 上の hibernate (比較):
architecture i386, ppc, x86_64, ia64 i386, ppc, x86_64
Discontiguous memory ○ ×
Compression × ○
Encryption × ○
Suspend-to-swapfile × ○
Suspend-to-file × ○Userland サポート × ○
swsusp Suspend2
出典: http://www.suspend2.net/features
2005/Nov/25 JapanTechnicalJamboree5 5
現状:• Suspend2 の ARM ポーティングを
行った– Suspend2 の ML に投稿した
次期リリースに反映される予定!http://lists.suspend2.net/lurker/message/20051114.094040.11261d0e.en.html
2005/Nov/25 JapanTechnicalJamboree5 6
環境:• ターゲットボード
– 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 7
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 8
Suspend2 結果:• 通常の起動時間
– 7.618 [sec]
• Suspend2 (lzf 有効 )– 22.492 [sec]– 12.371 MB 7.450 MB ( 圧縮率 39%)
• Suspend2 (lzf 無効 )– 17.99 [sec]
Suspend2 処理開始時間: 4.402 [sec]起動時間差: 20%, 4.50 [sec]
2005/Nov/25 JapanTechnicalJamboree5 9
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 10
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 11
Swsusp/suspend2 比較:• Linux のバージョンが異なるので比較が
出来ないが…– Swsusp/linux2.6.11 はイメージが小さい&
起動が早い– Suspend2/linux2.6.14 のイメージの LZF 圧縮
は有効だが、起動時間とのトレードオフ• Suspend2-2.2 は RC なので、まだ不安
定…
2005/Nov/25 JapanTechnicalJamboree5 12
Swsusp/suspend2 比較:(続)• イメージサイズ/処理時間では
– Suspend2: 925KB/sec– swsusp: 889KB/sec
2005/Nov/25 JapanTechnicalJamboree5 13
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 14
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. WysockiRafael J. Wysocki )
2005/Nov/25 JapanTechnicalJamboree5 15
Swsusp3 :(MLダイジェスト続)• Suspend2 にはそれら機能が入っているぞ、
ダブルエフォートだぞ。 (Dumitru Ciobarcianu )• Kernel に実装するのは違う。 Pavel を疑うの
か? Nigel は一緒にする為に彼が何をしなければならないのか分かっている (Greg K-H)
• 何で userland が正しい場所だと思うのか分からない (Nigel)
2005/Nov/25 JapanTechnicalJamboree5 16
Swsusp3 :(MLダイジェスト続)• Userland swsusp では 150 行程度しか
kernel に変更が無い (Pavel)
• 現在のままでは Nigel のコードは mainline には入らない事を自覚しる(Greg K-H)( 以降議論白熱 )
2005/Nov/25 JapanTechnicalJamboree5 17
EOF