CELF Embedded Linux Conference 2010 Report パナソニック株式会社 加藤慎介 目次 ELC 概要 Keynote Report Session Report Demo Reference ELC 概要 ELC 2010(CELF Embedded Linux Conference 2010)とは? 組込み系のLinuxの技術に特化した国際技術会議,今年で6回目(6 年目) 著名なKernelメンテナーやLinux技術者をはじめ,世界の組込みメー カー系企業の技術者が多数参加 ELC 2010 概要 日時:4月12日~14日 場所:サンフランシスコ 参加者:約240名で非常に盛況 昨年より約70名増加 日本からは15名,韓国からは9名 アジア圏からの参加者数は低調.リーマンショック移行,アジア圏からの参加者 数が半減し,まだ以前のレベルまで回復していない様子 Keynote:2件 Session:約50件(Sessionは3会場で同時開催) 詳細サイト:http://www.embeddedlinuxconference.com/elc_2010/ Keynote 1 (1/2) Title: Android: A Case Study of an Embedded Linux Project 講演者: Greg Kroah-Hartman (Novell) 著名なLinuxメンテナーの一人 著書に「Linuxデバイスドライバ」などがある 概要 Android用モジュールのソースコードがKernelのMainlineに 入っていたが,Kernel2.6.33ではずされた件についての講演. 「講演内容はNovellとは無関係.あくまでKernelメンテナーとし ての意見(講演)」と始めに言及. 前半はAndroidの功績(特にユーザスペースでの功績)を称える 内容.後半はAndroidの悪い点に言及. Kernel2.6.33でAndroidのモジュールが外されたのは,要は 「Googleがコミュニティを無視した」ことが原因. Keynote 1 (2/2) Googleがした良い事 Linuxを使ったこと android.git.kernel.org としたこと Kernelのライセンスに従ったこと Googleがした悪い事 android.git.kernel.org としたこと コミュニティを無視したこと 自分たちは特別だと思ったこと 自分たちはひとりだと思ったこと Keynote 2 (1/2) Title: Embedded in 2010: And End to the Entropy? 講演者: Matt Asay (COO,Canonical) Open Source Initiative (OSI)のBoardメンバーや,Lineo, NovellでOSS戦略担当,を歴任 スタンフォードLawスクールでソフトウェアライセンス(特に GPL)について研究経験あり 概要 2010年の組込みLinuxの展望 もはやOSは違いの要因とはならない 要求は増える.ユーザにはいろいろな見え方(=プラット フォーム,Android,ChromeOS,MeeGo,Limoなど)がある がLinuxであることは変わらない Keynote 2 (2/2) 過去のBSP(Board Support Package) 今日(ARMv7やIntelAtom) ARMv1-ARMv3:Linuxを動かすにはパワー不足 ARMv4:特に限定的なLinuxは動かせた.RTOSと一緒にRTOS上の1アプリとしてLinuxを動かしていた ARMv5-ARMv6:携帯で使えるくらいのパワーは確保された.限定的なLinuxやRTOSが使われた スマートフォンや一般的なPC用途で使えるくらいのパワーあり 一般的な目的をサポートするOSが必要になった あらゆるアプリへの対応が必要 BSPはどんどん進化している デバイスの増加に迷わされてはいけない なぜデバイスはこれほどまで発散していくのか? OSは違いの要因とはならない Linuxは十分共通PFになっている 組込みマーケットでLinuxは長らくシェア1位であった モバイルマーケットでは5位(5%) 1位Symbian(47%),2位ResearchInMotion(20%),3位iPhoneOS(14%),4位MS WindowsMobile(9%) なぜLinuxなのか? 安いもの,高いもの,どちらにも対応できるから プラットフォームのビルド・メンテナンスにかかるコスト減 開発コミュニティの存在 企業連合によるイノベーションへの努力がある RT性やメモリ管理からグラフィックパフォーマンスにイノベーションが移りつつある 追加価値にフォーカスすることができる ひとつのBSPで全てのユーザ環境にあわすのは愚かな話 Session Title: Real-Time Linux Failure 概要 リアルタイムLinuxは使えるものになっているが,そこにリアルタイム 性向上のソリューションを入れることで機能低下が起こる場合がある. リアルタイム性を求めて改善をしていく上でよくある間違い(結果として 機能低下を引き起こす)のプレゼン リアルタイム性の向上のためには,目的を明確にすることが重要 リアルタイム=早い応答性,ではない 例:早い応答性を求めるのではなく,応答時間のデッドラインを決めてデッドライ ンを守る 平均的に応答性が速いこと,と,デッドラインを超えない事,どちらが優先事項 か? トレードオフを理解すること ハードウェアに起因するリアルタイム性低下の原因を理解すること Distributionによってリアルタイム性向上のための最適なパッチは異 なることを理解すること Session Title: A Consideration of Memory Saving by Efficient Mapping of Shared Libraries 概要 複数の共有ライブラリのそれぞれのDataとBSSについて,まとめて1 箇所に配置し,それまで共有ライブラリのDataとBSSを配置していた 際のフラグメンテーションを解決してメモリ削減する技術 mmapを使うとまとめて1箇所に配置したDataとBSSエリアをライブラリ間 で共有できないので,readシステムコールを用いる 複数のGOT(global offset table)をまとめたGlobal GOT エリアを決まった アドレスに作っておく ld.so(ELF loader)と共有ライブラリのテキストのバイナリ書換え,が必要 プロトタイプ作成はしたが,評価等はこれから実施予定 Session Title: Effective Scripting in Embedded Devices 概要 組込み機器で効果的にスクリプトを使う方法 いろんな状況下で,スクリプト使用の最も適切なタイミング はいつか? 最も適切なスクリプト言語はなにか? C/C++とは違う,スクリプト言語の強みを生かす Jim Tcl という言語を使ったサンプルの紹介 C言語ベースとの速度比較(Response)があった C-based 53ms に対し,Tcl-based 73ms Session Title: Experience in Android Porting, Lessons learned, tips and tricks 概要 発表者はIntelの人 Androidをポーティングしたときに思ったことのトークセッション(レク チャーではない) 組込みLinuxがAndroidから学んだこと Frameworksが重要.ユーザモードのPowerManagementもアプリケーション のライフサイクルもこれで決まる 実装の容易性が確保されていることが重要 Androidのグラフィック 2DのほとんどはSWレンダリング.3Dはほぼテクスチャでのみ使用.ゲームは HWを利用 Fastbootが良い Repoは使いやすい Intel UMG ハードウェアのためのAndroid BSPに興味あり AOSPでのx86完全対応をしていきたい x86のAOSPツールチェーンも更新す る Android.mkはまだハックしていない build/envsetup.sh は良い Session Title: Measuring Responsiveness of Linux Kernel on Embedded System 概要 リアルタイムシステムでのレスポンス計測についてのプレゼン リアルタイムシステムの特徴 レスポンスとパフォーマンスにはトレードオフがある ジョブ実行が保証されている ハードリアルタイムとソフトリアルタイムがある 一般的にRTOSが使われてきたが,今はいろんな取組みがある Kernel2.6まではLinuxKernelをリアルタイムOSの1アプリとするアプローチが多 かったが,Kernel2.6以降はLinuxKernel自体を改良するアプローチが主流 計測方法の必要が増してきた どれくらいリアルタイム性があるのか?.リアルタイム性の追求からリアルタイム性 の計測方法に興味が移行 測りたいもの Preemption Latency 計測にはRTCをインラインアセンブラで使う 計測間隔,計測精度,ハードウェア依存 コードはWikiで公開予定,とのこと 計測結果の表示では下記に対応 Livegraph Session Title: Evaluation of Data Reliability on Linux File System 概要 ファイルシステム毎のデータ信頼性の評価のプレゼン XFSとJFSはdataとsizeのミスマッチ率はKernelのVersionに依存す る結果となった SYNC write modeはほとんどの場合で信頼性が高いとはいえない 大きいWrite sizeだとdataミスマッチが起き易い EXT4-Journal(2.6.31)の結果がBest XFS(2.6.31and33)とEXT3-Journalの結果も良い ランダムWrite時はExt3の方がXFSよりパフォーマンスが良い Session Title: Runtime Power Management: Overview and Platform implementation 概要 従来のSuspend/Resumeとは違う新しい PowerManagement(PM)のFramework 実行中にデバイスのPMを独立して行う デバイスローカルでのSuspend/Resume Idle中のデバイスをSuspendする Kernel2.6.32にマージ 今後の議論・検討ネタ LDMでの デバイス特有の遅延への対応 デバイスの連結時の遅延への対応 デバイスのSleep/Wakeup遅延への対応 バスのスループット Session Title: Ftrace - Embedded Edition 概要 トレースツール Ftrace の組込みEditionの紹介 追加したプラグイン function, function_graph, wakeup and wakeup_rt, irqsoff, preemptoff, preemptirqsoff, mmiotrace, sched_switch, nop Version 1.0を公開している git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/tracecmd.git Session (State of Embedded Linux)1/5 Title: State of Embedded Linux 概要 最近のKernelについて CELFの技術エリア(から抜粋) CELFが援助している分野(技術) 組込み系のディストリビューション Session (State of Embedded Linux) 2/5 Title: State of Embedded Linux 概要:最近のKernelについて 2009年~最新まで(Linux 2.6.29~2.6.33)の組込みに関係する技術をPickUpし て紹介 2.6.29 2.6.30 devtmpfsがマージ Timechart Tool(Kernelイベントをみるツール)がマージ Runtime Power Management (のコア部分)がマージ 2.6.33 Ftraceにグラフィックフィルタや新しいTracePointが入った SMACK セキュリティモジュールがマージ Performance Counterがマージ kmemleak(detect kernel memory leaks)がマージ 2.6.32 TOMOYO セキュリティモジュールがマージ Threaded interrupts 2.6.31 SquashFSがマージ,BTRFSがマージ LZO圧縮がマージ Ramxswap/Compcacheがマージ Androidのパッチがはずされた 注目しているほかのパッチ kbuild, asm-generic Session (State of Embedded Linux) 3/5 Title: State of Embedded Linux 概要:CELFの技術エリア(から抜粋) オーディオ・ビデオ・グラフィック関係 起動時間 Ttrace, LTTng, SystemTap, Perf Counters Security smem,Kernel image compression, Ramzswap, mem_notify, -ffunction_sections, XIP Tracing Interrupt threads(2.6.30),Sleeping Spinlocks(2.6.33) System Size / Memory Wakelock,Runtime PM,非同期サスペンドレジューム Real-time SquashFS(2.6.29), UBIFS(2.6.27), LogFS, AXFS Power Management 2.6.29でAsynchronousFunctionCallが入った devtmpfs (デスクトップでは0.6秒起動が早くなる) Filesystem GStreamer, OpenCore/OMX, DirectFB, OpenGL ES, Clutter(GTK UI Framework) TOMOYO, SMACK, Embedded SELinux その他 Device Trees for ARM, DLNA Session (State of Embedded Linux) 4/5 Title: State of Embedded Linux 概要:CELFが援助している分野(技術) smem OOM notifications in cgroups SquashFS enhancements SMACK on TV analysis Device-trees for ARM -ffunction-section Open Project Proposal Matt Mackall - maintaine work Session (State of Embedded Linux) 5/5 Title: State of Embedded Linux 概要:組込み系のディストリビューション Moblin,Android,Maemo,Ubuntu netbook, Chrome Meego (Moblin + Maemo) Session Title: Using the LTTng Tracer for System-Wide performance analysis and debugging 概要 LTTngTracerのチュートリアル http://lttng.org トレース戦略 問題の証明 セットアップ 課題を解決するためにベストなセットアップの確認 アンカーとトリガー システムで悪いところはどこか? システムコンフィグが影響しているのは何か? ソフトウェア,ハードウェア 分析のために・・・アンカーとトリガーを用意 アンカー:トレース分析の開始時点を指定 トリガー:トレースの開始・停止,Kernel APIで用意,ユーザスペースからの 関数も用意 例 Xorgスケジューリング,Alsaの解析,バッファアンダーラン,など Session Title: Multi-core scheduling optimizations for soft real-time applications 概要 背景:Linux RT スケジューラはDLP(Data Level Parallelism)にはよ いが,TLP(Task Level Parallelism)にはどうか? TLPでの注意点 は? 目的 分析結果 TLPで使うには,共通の並列化技術が必要で,現状のLinuxスケジューラ はTLPに向いていない 解決案 共同タスク用のRT Linux スケジューラの振る舞いを調査 RTスケジューラを最大限利用する メインラインKernelへの組み込みやすさを優先 独立して同じCPUでタスク実行すべき 結果 提案した方法では5.94%のスピード向上に貢献 Session Title: Linux without a Boot Loader? 概要 なぜ悩むのか? ブートローダー U-boot,redboot,blob,などがある ハードウェアの初期化とセットアップを実施 Linux Kernelを起動(もしくは他のOSを起動) 不良Flashからのリカバリ Flashのアップデート Linuxにブートローダーは必要か? Linuxのブートローダーがあるから Yes.ハード初期化のパワーがない,メモリ初期化のコードがない,CPUセットアップ がない ではブートのためにLinuxを改変できるか? Yes.簡単だが・・・ハードウェア依存の部分がある・ほとんどがアセンブラの起動 コードの修正 必要な改変 CPU初期化,DRAM初期化,BUS初期化,KernelのRAMへの移動 デモ uClinux ColdFire 5272,IXP425 XSCALE(ARM),Cavium OCTEON 5020 それぞれ50~100行程度のアセンブラコード追加をしたとの記載あり Session Title: Kexec - Ready for Embedded Linux 概要 Kexec(ブートローダを使わない高速リブート機能)を組込みで 使おうという話.もとはサーバの復旧のための技術であるが, 組込みでは開発段階で何度も再起動をするので有効では?と いう発想. Kexec-basec Bootloader ハードウェアセットアップコードを統合 LinuxKernelはCONFIG_KEXEC=y kexec-toolsでユーザスペース統合 サンプル実装のターゲットは「SHのボード」 Session Title: Developing for non-X86 targets using QEMU 概要 現在最も有力なエミュレータとなったQEMUのX86以 外での使用についてのプレゼン PDFで240ページ ひたすらレクチャー Demo 二日目の全セッション終了後にデモ展示(2時間)がありま した デモ(10件程度)から印象に残った2件 起動時間高速化 QEMU(エミュレータ)を使ったICEデバッグ Reference ELC 2010のサイト http://www.embeddedlinuxconference.com/el c_2010/ ELC 2010の発表資料置き場 http://elinux.org/ELC_2010_Presentations
© Copyright 2025 ExpyDoc