Embedded Linux Conference 2011 Android Builders Summit 2011 Report パナソニック株式会社 加藤 慎介 目次 Embedded Linux Conference (ELC) 概要 Android Builders Summit (ABS) 概要 ELC 2011 Keynote Report Session Report Demo/Showcase,ELC Closing Session ABS 2011 Keynote Report Session Report その他 目次 Embedded Linux Conference (ELC) 概要 Android Builders Summit (ABS) 概要 ELC 2011 Keynote Report Session Report Demo/Showcase,ELC Closing Session ABS 2011 Keynote Report Session Report その他 ELC 概要 ELC (Embedded Linux Conference 2011)とは? 組込み系のLinuxの技術についての国際技術会議 主催はThe Linux Foundation (LF) 昨年度までCE Linux Forum (CELF)だったが,2010年にCELFとLFが合併し, CELFはLFのWorkgroupとなった 著名なKernelメンテナーやLinux技術者をはじめ,世界の組込みメーカー系 企業の技術者が多数参加 ELC 2011 概要 日時:4月11日(月)~13日(水) 場所:サンフランシスコ 参加費:475ドル(早期割引 -50ドル) 参加者:約350名で非常に盛況 昨年より約100名増加(2年前からでは約170名増加) 日本からは若干名の参加,今年度は韓国系企業の参加者増が目立った Session:約50件(Sessionは3会場で同時開催) 詳細サイト: http://events.linuxfoundation.org/events/embedded-linux-conference/ http://elinux.org/ELC_2011_Presentations ABS 概要 ABS (Android Builders Summit)とは? Androidの実装・搭載に注目した国際技術会議(アプリケーショ ンにはフォーカスしていない).今回が第1回目. 主催はThe Linux Foundation (LF) ABS 2011 概要 日時:4月13日(水)PM~14日(木) 13(水)はELCと共催 場所:サンフランシスコ 参加費:275ドル(ELCとの同時申込みの場合100ドル) 参加者:ELCと共催日約300名,ABS単独日約120名 Session:約20件(Sessionは2会場で同時開催) 詳細サイト: http://events.linuxfoundation.org/events/androidbuilders-summit/ http://events.linuxfoundation.org/events/android-builderssummit/slides 目次 Embedded Linux Conference (ELC) 概要 Android Builders Summit (ABS) 概要 ELC 2011 Keynote Report Session Report Demo/Showcase,ELC Closing Session ABS 2011 Keynote Report Session Report その他 Keynote Title : The Yocto Project Speaker : Dirk Hohndel (Intel) 概要 Yocto Projectの概要講演(スライド等はなく,口頭の みでの Yocto Project の概要の講演) Yocto ProjectはDistributionではない 様々なハードウェア環境でDistributionを作るための, テンプレートや基盤,ツールを提供する 4月にVersion 1.0をリリースした Keynote Title : Becoming Part of the Linux Kernel Community Speaker : Arnd Bergmann (IBM, Linaro) 概要 次のLinux Kernelでの注目パートについての「思い」をレク チャー PC/サーバ/(純粋な)組込み,以外の分野でのLinux利用の増加 Android,MeeGo Free 3D グラフィックスの流れ ドライバのオープン化の流れ メモ 要は「Linux Kernel Mainlineにコミットしよう」ということ 特にグラフィック関係のドライバのオープン化の話が最近Hotに なってきている Session Title : Identifying Embedded Real-Time Latency Issues: I-Cache and Locks Speaker : Frank Rowand (Sony America) Real-Time系のSessionをLinux関係のConferenceで毎年2,3回発表している人物 概要 SMP ARM での,I-Cacheのミスヒットによる性能劣化についての検討 はじめに最大割り込み禁止時間を測定したところ,do_local_timer()が最大割り込み禁止時間 を作っている一つの要因とわかった 使用ツール do_local_timer()について,ミスヒットとストール時間をみて検討 検討に使用しているKernelは2.6.23.17-rt14,2.6.29.6-rt14 本Sessionでは課題抽出が目的で,改善はフォーカス外.ただし思いつく改善案を提示 Ftrace の irqsoff tracer (latency-format option enabled) I-Cache増やして,I-Cacheミスを減らす.(実際のテストはしていない) クリティカルなコードを(I-Cache)ロックして,I-Cacheミスを減らす.(ただ今回のターゲットボード はI-Cacheロックに対応していない) クリティカルなコードを高速なメモリに配置して,I-Cacheミス時のコストを減らす.(ただ今回の ターゲットボードは高速なメモリを実装していない) L2-Cacheを追加して,I-Cacheミス時のコストを減らす. ハードを変更して,L2の有無での検討実施 ほとんどのL1 I-CacheミスはL2から補填される.ただし,一部 L2からも補填されない時がある. Session Title : Snapshot Booting on Embedded Linux Speaker : Kang Dongwook (ETRI) 概要 スワップテーブルにSnapshot Imageへのリンクを作っておき,スワッ プの仕組みを使って,組込みでのSnapshotブートを実現 シャットダウン時 ブート時 メモリをレストア、そしてジャンプ DMAを使ってNANDの読み込み時間を改善 使っていたメモリページを全て退避 5.19秒 vs 23秒 3.82秒 vs 22.98秒 最新のSnapshot BootではBoot Loaderの時間が短縮 利用シーン シャットダウンの時間は延びる(10秒以上長くなる) フリーのメモリ(ページ)が十分足りる場合(半分以上フリーページが必要) NANDのサイズが十分足りる場合 Androidではスナップショットが200MBを越える Session Title : Linaro : A Year of Change Speaker : David A Rusling (Linaro, CTO) LinaroのCTOとしての発表だが,SpeakerはARMのFellow 概要 ここ2年で思ったこと なぜARMの組込み向けLinuxは違いができてしまうのか? プロダクトのタイムラインが短く,また最新のオープンソースに基づいていない プロダクトが多岐にわたる(SoC,System) Proprietaryな部分が価値になっている Linaroについて ARM搭載物は“典型的な”組込みLinux以外に移ってきた 多様性は歓迎するが,フラグメンテーションはNG Upstreamingの欠乏は非効率 コラボレーションが欠けている ARM Linux 向けに活動しているエンジニアが十分でない 2010年6月立上げ,コアエンジニアは約20人 ARMで使う上での共通な組込みLinuxの問題をUpstreamで解決するべく,オープンに活動して いる Linaroはどのように運営されているか? メンバーによって技術課題を挙げて,ワークグループを立上げ,解決していく 今は,ToolchainとKernel にフォーカス.今後はGraphicsとPMにもフォーカスする Toolchain WG 対象:ARMv7A,Thumb 2,Neon 対象:コアToolchain,gcc,glibc,binutils,gdb Session Title : Optimization for Cheap Flash Media Speaker : Arnd Bergmann (IBM) 次の日に別テーマでKeynoteを担当した人物.Linaro のメンバーでもある 概要 安いFlashを最大限に活用するために,という題目だ が,内容は,Wear Leveling とガベッジコレクションに ついてのレクチャー 一般的なWear Levelingの話 ガベッジコレクションの話 リニアアクセス,ブロックReマッピング,Data Logging Session Title : RT-Preempt : What’s The State and Why There is No Roadmap Speaker : Thomas Gleixner (linutronix) 著名なKernelメンテナー(分野:Real-Time) 概要 RT-Preemptの現状について,と,今後の展望 RT-Preemptの最新の安定版:2.6.33 Real-Timeに関してMainlineに入っているもの ハイレゾタイマー Mutexの仕組み 一般的な割り込みハンドラの仕組み ユーザスペースMutexの優先度継承 PreemptibleなRCU スレッド割り込みハンドラ 強制スレッド irq/softirq トレースの仕組み など 残っているもの いつメインラインに入るか? 2007,2008,2009にそれぞれ「リアルタイムのパッチはほとんど,年の終わりにはマージされるだろう(by Jonathan Corbet)」といわれてきた(が, まだマージされていない) 実際,Redhat,IBM,OSADL,Linutronixがテストに多大な努力もしている なぜロードマップがないのか? Preemptible mmu gather (2.6.40でのメインライン化を目指している) PerCUP modifications Preemptible memory and page allocator Soft-interrupt modifications Sleeping spinlocks 我々はパワーポイントは使わないから 我々はKernel Developerだから メインライン化の道を探しているところだから だけど・・・ロードマップはあるよ(と言って,「会場の地図」を見せた。会場爆笑) 最後にLinusの有名なセリフ 「And yeah, I still think the hard-RT people are mostly crazy (by Linux - 2010)」 Session Title : High-Performance Computing using GPUs Speaker : Mike Anderson (The PRT Group) 概要 最近のトレンド プロセッサ:マルチコア ビデオやゲーム:3D, ストリーミング マルチコアで性能向上するためには スレッド並列処理がより重要になる データの並列処理はより考えられたものにする必要がある GPU搭載のモバイルデバイスが当たり前になる LinuxのアプリケーションはすでにGPU対応が考えられている Session Title : Integrating a Hardware Video Codec into Android Stagefright using OpenMAX IL Speaker : Damian Hobson Garcia (Igel) 概要 Android の Stagefright media server Video/Audioの再生/録音の仕組み(ソフトウェアコーデック)としてデフォル トで搭載されている モバイルプラットフォームで1920x1080@30fpsでのビデオ再生をした い Stagefright(のソフトウェアコーデック)では無理 ハードウェアコーデック(H.264)をStagefrightにどう入れるか? 実験環境 OpenMAX IL を使う (Bellagio OpenMAX IL) Renesas SH (ARM Cortex-A8 @ 800MHz) 実装 OpenMAXの/src/base/omx_base_* を流用 Androidのソースは frameworks/base/media/libstagefright/OMXCodec.cpp のみ修正 libstagefrighthw.so作成 quirksというものも利用 Session Title : How to Power Tune a Device Running on a Linux Kernel for Better Suspend Battery Life Speaker : Mark Gross (Intel) 概要 内容は,省電力のレクチャー まずは形式的に検討部分を分類 重要でない部分は検討から除外 Spec Sheets,ドライバのソースコード,データバス,など SOCを知る クロックとパワーコントロールを知る プラットフォームの状態を知る アプローチ まずはデバイス(ハードウェア)毎に消費電力の初期値を測定 その次に省電力パッチやデバドラのUpdate等を実施 省電力モードになっていないハードウェアをPickUpして,省電力モードに する Session Title : Runtime PM, Upstream I/O Device Power Management Speaker : Magnus Damm (Runesas) 概要 省電力はより重要になってきているが,伝統的なLinuxのPower Management(PM)は組込 みシステムには完全には適さない なぜか? PCでのユースケース向けに設計されているから 組込みベンダーからのコミュニティへのフィードバックが少ないから 組込みベンダーはPMを“ソース非公開”として扱うから System-Wide PM RAMとDiskを使ったSuspendがあるが,全く違うもの Suspend-to-Disk Suspend-to-RAM 起動はSuspend-to-Diskより早い デバイスによりWakeupに対応しているかがまちまち ハードが対応していても,ソフトが未対応,など ソフトでの問題であれば,対応させる CPU Runtime PM システム全体の電力断が可能 IdleループによってCPUコアの電力を管理する Tickless CMT Timer I/O Device Runtime PM include/linux/pm_runtime.h の関数を使ってRuntime PMを実現 Session Title : MeeGo BoF Speaker : Alison Chaiken (Nokia) 概要 MeeGoについて何でも語ろう,というBoF 初めにSpeakerからMeeGoのトピック説明 2011年の予定:4月に1.2リリース,10月に1.3リリー ス MeeGo,Linaro,Android の3つの比較 Session Title : Android for Servers ? Speaker : John Stultz(IBM/Linaro) 概要 AndroidのOS技術でサーバにも活用できるものがあるか? Android用のPatchを下記に分類 不明 LKMLで議論が活発なもの バグフィックス/新HW対応 関係:Pmem, GPIO Drivers, ARM, MMC, Bluetoothな ど Power Management関係:Early suspend, Wakelocks, Alarm Timer エラーレポート関係:Logger, Ram_console, Apanic セキュリティ関係:Paranoid network パフォーマンス関係:ashmem, binder, LowMemoryKiller, Yaffs2 いつKernelメインラインにマージされるのか? AndroidのOS技術とは,Linux Kernel と Android用のPatch Wakelocks,Binder,LowMemoryKiller,Alarm Timer サーバに役立ちそうな技術 AndroidのLowMemoryKillerは,OOM Killerが動く前にアプリをKillするので,サー バにも使える Wakelocksの仕組みは省電力に効果がある ARM, MMC, Bluetoothなどのバグフィックス Session Title : Hot Multi-OS Switch: How to run Ubuntu, ChromiumOS, Android at the Same Time on an Embedded Device Speaker : Gregoire Gentil (Always Innovating) 概要 マルチOSをマルチディスプレイで実現 背景 chrootを利用 課題を解決 KernelはLinuxなのに,Userspaceはいろいろある.では,一つのKernelでさまざまな Userspaceを同時に動作させられないか? Beagleboardを使ってマルチOSを実装 利点:ひとつのキーボード・マウスで4つのPFをそれぞれ操作 ひとつのビデオコンテンツを,2つのPF上でそれぞれ再生 課題:コアOSの選定,出力制御,入力制御 デモ(デモでは,Ubuntu,ChromiumOS,独自Distribution,の3つ) chrootで3つのディストリビューションを起動し,3つのディスプレイにそれぞれの画面を出力 マウスはそれぞれのディスプレイにカーソルがある状態で,マウスを動かすとそれぞれの画面(ディストリ ビューション)でマウスカーソルが動き,キーボードをタイプすると全ての画面で入力されてしまう 例:Ubuntuでコマンドライン入力をしていたら,CromeOSでは検索している,とか ディスプレイ出力にはUSB->HDMI変換デバイスを利用 出力・入力制御により,マウスカーソルを3つの環境で1つにして,カーソルをディスプレイ間を移 動可能に.3つの環境のうち一つだけに入力制御するように変更 同じ再生コンテンツを2つのPF上でそれぞれ再生 Session Title : Moving Forward : Overcoming Compatibility Issues BoFs Speaker : Yoshitake Kobayashi (Toshiba) 概要 長期スパンのシステムでのハードウェア変更時の課題について議論するBoF Speakerの投げかけ,その1 長期スパンシステムにおいて,ハードウェアを新しくせざるをえなくなった場合に,Kernelと上位 層(ライブラリ,アプリ,テストケース)の担保をどうするか? 正解は,ハードウェアの特徴やユーザの要求次第であるが,このBoFでは「Kernelの VersionUpはできない」ユースケースを考える Speakerの投げかけ,その2 新しいハードウェアのドライバを古いKernelにバックポートする? 新しいハードウェア上で動作する最新のKernelを使う? ハードウェアが変わった場合,何かしらKernelの変更は必要になる.その場合のシステム全体 の(それまでとの)互換性はどう確認する? 会場の意見 当時のハードウェアを在庫として持っておくしかない システム自体のKernelを定期的にUpdateしていくべきだ(by IBMの人でKeynoteも担当した人 物) この意見に対しては他数人から 「そもそもそれができないシステムでどうするか?を話し合うBoFだ」 「理想は分かるが,実際にKernelをUpdateできないシステムは存在する」 などの意見あり Demo/Showcase Yocto Project Yoctoでビルドしたシステムでオーディオ再生,と いうデモ SonyのGoogle-TV AndroidはFroyoベース.Linuxは2.6.23 KernelShark Ftraceのトレース結果をビジュアル表示するツー ル.CPU毎のプロセス占有状態などを表示可能 ELC Closing Session (1/4) 事前に参加者にアンケートをとっており,その結 果を使ってのイベント アンケート 2011/04/06 4:44:45 +0900 の Tim からのメール [Members] Help needed for ELC - please take 10minute survey 壇上で,クイズ100人に聞きました,形式のクイズ 全員参加で,いくつかのクイズの回答を事前に書き, その後に答えごとに得点を発表&答え合わせ.総得 点上位者から景品Get! 1位はSonyのGoogle-TV 2位はSonyのGoogle-TV-STB 以下,LWN.netの年間購読権やO’Reillyの本,など 目次 Embedded Linux Conference (ELC) 概要 Android Builders Summit (ABS) 概要 ELC 2011 Keynote Report Session Report Demo/Showcase,ELC Closing Session ABS 2011 Keynote Report Session Report その他 Keynote Title : Motorola Innovation Rising Speaker : Christy Wyatt (Motorola) 概要 Androidについて,Motorolaの商品と照らしながらこれまでの流れに ついて講演 なぜAndroidか? 下記がそろっているから Androidのシェア Apple iOSは越えた MotorolaのAndroid搭載商品 Internet Rich,Scalability,Industry Platform,Ecosystem,Open Innovation 27モデル,98カ国で705のリリース 次は,MotorolaXoom,MotorolaATRIX 4G FroyoがリリースされたときにMotorolaの対応速度はHTCと並び最速 アプリケーションは2009年10月は2~3万だったのが、2011年1月では25 万に迫る勢い Keynote Title : From the Alliance to the Evolution : The History and Future of Android Innovation Speaker : Mark Charlebois (Qualcomm) 概要 QualcommとAndroidの歴史 QualcommはOHAのFoundingメンバー 初のAndroid端末はQualcommのChipset (1.0 HTC -Oct 22, 2008) 初の1GzのAndroid端末はQualcommのChipset (Nexus One -Jan 5, 2010) 初のLTE搭載Android端末はQualcommのChipset (HTC Thunderbolt -Mar 17) Androidのリリースサイクル QualcommのChipset 今後について Cupcake:9.7 Month,Donut:9.1 Month,Eclair:7.9 Month,Froyo:6.7 Month 7つのChipset(7x00, 7x25, 7x27, 7x30/8x55, 8x50,8650A, 8x60)がAndroid向けに用意 Telephonyの機能発展 マルチメディアの機能発展 LTE,eHRPD,DOrBのような技術に対応するフレームワーク Dual SIMやDual Standby に対応するフレームワーク(Nov 2010) SIM ツールキット CSIM サポート IPv6 for CDMA/EVDO QCELP/EVRC encode/decode,voice memo,LPA (low power audio),FM Radio,WVGA,720p encode/decode,1080p encode/decode その他 マルチコアサポート.Trackballのないデバイスのサポート,PM,Web Core (WebGL in Gingerbread, Enhanced Webkit and V8),商用 DRM Mobile Web Apps Code Aurora Forum (CAF)について P2P アプリケーション は AllJoyn.Augmented Reality は QDevNet QulCはFoundingメンバ 全てのupstreamへの貢献はCAFを通してやっている 現在NativeアプリとWebアプリには違いがあるが,共通部分が増えていく ひとつはマルチコアによる恩恵 Keynote Title : Open API Standards as a Foundation for Android Innovation Speaker : Neil Trevett (NVIDIA) 概要 グラフィックAPIのこれまでと今後の進化について Khronos Family of Standards Khronosはオープンでロイヤリティフリー いくつかPickUpして説明 WebGLは,Web上での3Dをプラグインなしで可能にする OpenSL/ESはAdvanced Audioに,OpenMAX/ALはマルチメディアに デバイスプラットフォームによるAPI COLLADA, WebGL, WebCL OpenGL, OpenGL/ES, EGL, OpenMAX/AL, OpenSL/ES, OpenVG OpenMAX/IL Chrome,Symbian,MeeGo,などは OpenGL/ES,OpenMAX/IL,EGL Appleは OpenGL/ES,OpenGL Androidは OpenGL/ES,OpenMAX/IL,EGL,OpenSL/ES TEGRA2の宣伝(ゲームシーンで特に威力を発揮) Keynote Title : Porting Android to New Hardware Speaker : Karim Yaghmour (Opersys) O’Reillyの「組込み Linux System」本の著者 概要 ハードウェアへのポーティングと,AndroidとLinuxについてのレクチャー ハードウェアにポーティングする際の,変更ポイントをダイジェストで紹介 レクチャーの章立て Components to port Cross-development toolchain Porting the Linux Kernel Developing device drivers Getting the AOSP Implementing Android hardware libs Customizing the user-space Building the AOSP Components to write to flash Useful Embedded Linux tricks メモ 技術的に中身のあるKeynote 時間が限られている中でAndroidの技術要素を全て網羅 プレゼン資料が公開されているので詳細はそちらを参照 Keynote Title : Beyond The Phone Speaker : Marko Gargenta (Marakara) 概要 電話以外のデバイスを例に挙げながら,Androidの要素技術についてのレク チャー Androidは電話を超えるか? Car,セットトップボックス,などなど AndroidのUIを使っていろんなデバイスが考えられる 複合プリンタの例 なぜAndroid? 下記のものがあるから 足りないものは? カスタムドライバ,カスタムライブラリ,アプリフレームワークのサポート,New Home アプリ 足りないものを補えばAndroidベースの複合プリンタにできる TV Boxの例 足りないものは? アプリ開発のフレームワーク,タッチスクリーン,グラフィックス,WiFi TV用のUI,ストリーム関係とDRM Summary Androidはオープンだから,自分でいろいろと追加すれば,いろんなデバイスに搭載 可能 Session Title : AllJoyn and the New Era of Peer-to-Peer Technology Speaker : Greg Burns (Qualcomm(QulC)) 概要 AllJoynとは? QulCが開発した,新しいモバイルPeer-to-Peerをベースにした近接関係 AllJoynはソフトウェアbus busのフォーメーションはアドホック プロトコル それぞれのデバイスではbusデーモンが起動 アプリ間通信はデーモンで直接接続 それぞれのデバイスのデーモンは,他のデバイスのデーモンと通信 DBus wire-protocol,WiFiやBluetoothもサポート メモ コンセプト提案のようなコマーシャル映像も流していた. 3人が3様のデバイス(スマートフォン,タブレット,携帯ゲーム機)でそれぞれが 繋がって仮想空間でゲームをしている.スマートフォンのユーザに着信があり 数十分電話→終了後,また仮想空間にJoin.というような映像 Session Title : Android Internals Speaker : Karim Yaghmour (Opersys) O’Reillyの「組込み Linux System」本の著者 概要 Androidの中身を以下の分類で,それぞれレクチャー Android Concepts Overall Architecture System startup Linux Kernel Hardware Support Native User-Space Dalvik JNI System Server Activity Manager Binder Stock AOSP Apps Hacking メモ あくまでSessionであるがKeynote並の参加者数 プレゼン資料が公開されているので詳細はそちらを参照 Session Title : Managing Android and the Complexity inside Speaker : Peter Vescuso (Black Duck Software) 概要 OSSライセンスの話(特にモバイル分野) OSSはイノベーションをもたらしている 3800プロジェクトある(2010現在) ここ3年で2倍になった 94%がMobile Phone (Android/iPhone)向けのOSSプロジェクト Androidでのコンプライアンスが検討事項になりつつある Copyleft型のライセンスと,そうでないものを分けて考える 潜在的にはライセンスコンフリクトが起こりうる 潜在的にはパテントの問題もある アプリケーションマーケットとライセンス AppleのiTunes StoreではGPLのアプリは頒布できない Androidのマーケットではそのような制限はない 変化の早いオープンソースで様々なライセンスをどう管理するか? 例えばAndroid GPLv3でApacheとのコンフリクトは解決した Linux Kernel はGPLv2 約165の異なるコンポーネント(Kernelミラーは含まない.165のうち約半分はExternal) 約19種のOSSライセンス 相対するライセンスやOSI非認証のライセンス 早い変化(約3~4ヶ月でのメジャーバージョンアップ) トレーニング・ツール・プロセスを使って管理するのが良い Reference Black DuckのHPにAndroidのWhitePaperなどを掲載 http://www.blackducksoftware.com/android Session Title : Using the Debian Package Manager to Assemble Android-Based Mobile Phone Software System Speaker : Magnus Back (Sony Ericsson) 概要 Debianのパッケージ管理システムを用いて,ビルドシステムは一つにしてコンフィ グの動的設定で,対象顧客用のソフトウェアをビルドする仕組み,について これまで Sony Ericsoonは150~200の顧客に携帯を出しているが,顧客によりスペック・詳 細要件があり,古いProprietaryなソフトウェアでは,それぞれStaticなコンフィグで 解決していた Android プロダクト毎に28のConfigで17プロダクト=450のConfig 450のConfigごとに1.5時間のビルド時間=ビルド時間で1ヶ月 Android携帯を出すために,顧客それぞれのビルドシステムが必要 全てのConfigはそれぞれのプラットフォームに紐付けされる アプリ開発者にとってはAndroid-PFは大きすぎる prebuiltのコンポーネントをReuseする良い方法がない 理想としては,ビルドシステムは一つにして,コンフィグを(動的に)設定するだけで, 対象顧客用のソフトウェアをビルドするような仕組み Debianのパッケージ管理システムを用いて,実現できないか? Debianのパッケージを異なるビルドシステム間のインタフェースファイル結果のプロ トコルに使う Session Title : Trying to improve Android Boot Time With Readahead Speaker : Tim Bird (Sony America) 概要 SonyはGoogleTVを出している.ブート時間短縮が必要 Androidの一般的なブート時間をまずは測定 現状,Cold Boot で約30秒かかる.Suspend/Resume機能もあるがスタンバイの電力消費がある どうやって計測したか? いくつか非効率な部分を発見 BootchartをAndroidのInitに追加 主には,パッケージスキャンとファイルアクセスルーチンの時間 Readaheadを使ってみる Readaheadを使う理由 Readaheadの概要 CPUではなくI/Oがボトルネックになっているから Class preloading,と,パッケージスキャン パッケージスキャンはシステム全体の起動時間の10%を占めている アプリを変更しなくて良いから(私はKernel開発者だから.Javaは詳しくない) 他のプロダクトにも応用できるかもしれない ブート中に要求される前にRead DataをLinuxのページキャッシュに読み込んでおく(I/Oの待ち時間削減) 読み込みはCPUの空き時間に実施 注:ReadするTotal Data 及び 使えるCPUサイクルの全体数は今回変えていない ゴールは,I/Oの待ち時間をなくすこと より良いI/Oスケジューリングもなされる Readaheadするデータの決定方法が必要 MinicoreとStraceというソフトウェアを使った テスト環境 チェックポイント Sony Internet TV,Kernelは2.6.23,スケジューラーはCFQ Readaheadがバックグラウンドで動いているか? Class preloading,と,パッケージスキャンの時間が短縮されているか? 結果 Readahead in background で 約1.83秒短縮(4.65%の改善) noopスケジューラはほとんど影響しない プロセス優先度の変更は影響しない Session Title : A Walk Through the Anrdoid Stack Speaker : Aleksander “Sasa” Gargenta (Marakana) 概要 Androidの要素技術について,具体的にソースコード上の場所まで示しながらレク チャー Linux Distributionとの違い Binder IPC プログラムは /dev/ashmem をOpenして,mmapを使って,Binder経由でファイル を共有 実装は mm/ashmem.c と include/linux/ashmem.h を参照 Pmem Exposed via /dev/binder Runtime info at /proc/misc/binder 実装は drivers/misc/binder.c と include/linux/binder.h を参照 Ashmem glibcがない.X11がない./etc/passwd, /etc/fstab などがない あるのは,ドライバモデルなどLow Levelの層,プロセス・メモリ管理,共有ライブラ リ,ネットワークスタック 実装は drivers/misc/pmem.c と include/linux/android_pmem.h を参照 Wakelocks 実装は drivers/android/power.c と include/linux/wakelock.h を参照 http://source.android.com/porting/power_management.html Session (cont.) Title : A Walk Through the Anrdoid Stack の続き 概要 Alarm Low Memory Killer 実装は drivers/rtc/alarm.c と include/linux/android_alarm.h を参照 実装は drivers/misc/lowmemorykiller.c と security/lowmem.c を参照 優先度については /sys/module/lowmemorykiller/parameters/ Bionic BSD libc からの変更点 HAL (User-space Hardware Abstraction Layer) Native Daemons /system/bin/servicemanager, /system/bin/vold Surface Flinger, Audio Flinger Function Libraries arbitrary Android system-properties のサポート Android Kernel Logger Driver のサポート Android-specific な user/group 管理のサポート Android-specific な getservent のサポート /etc/protocol は未サポート LibWebCore/Webkit, V8, SQLite, OpenSSL, FreeType, etc. Dalvik Activity Manager Service, Connectivity Manager Service, Additional Manager Services などなど Session Title : Android System Programming Tips and Tricks Speaker : Tim Bird (Sony America) 概要 AndroidのいろんなTips紹介 Gig, Repo, Build system Fast building Fastboot,ADB TraceやDebug ツール dmesg,Logcat,Strace,Bootchart,DDMS,gdb Performanceツール make -j6 (マルチコア+2がよい) export USE_CCACHE=1 Smem,Traceview,0xbench メモ プレゼン資料が公開されているので詳細はそちらを参照
© Copyright 2024 ExpyDoc