1 / 27

CELF Embedded Linux Conference 2010 Report

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 技術者をはじめ,世界の組込みメーカー系企業の技術者が多数参加

mihaly
Download Presentation

CELF Embedded Linux Conference 2010 Report

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CELFEmbedded Linux Conference 2010Report パナソニック株式会社 加藤慎介

  2. 目次 • ELC 概要 • Keynote Report • Session Report • Demo • Reference

  3. 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/

  4. 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がコミュニティを無視した」ことが原因.

  5. Keynote 1 (2/2) • Googleがした良い事 • Linuxを使ったこと • android.git.kernel.org としたこと • Kernelのライセンスに従ったこと • Googleがした悪い事 • android.git.kernel.org としたこと • コミュニティを無視したこと • 自分たちは特別だと思ったこと • 自分たちはひとりだと思ったこと

  6. 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であることは変わらない

  7. Keynote 2 (2/2) • 過去のBSP(Board Support Package) • ARMv1-ARMv3:Linuxを動かすにはパワー不足 • ARMv4:特に限定的なLinuxは動かせた.RTOSと一緒にRTOS上の1アプリとしてLinuxを動かしていた • ARMv5-ARMv6:携帯で使えるくらいのパワーは確保された.限定的なLinuxやRTOSが使われた • 今日(ARMv7やIntelAtom) • スマートフォンや一般的な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で全てのユーザ環境にあわすのは愚かな話

  8. Session • Title: Real-Time Linux Failure • 概要 • リアルタイムLinuxは使えるものになっているが,そこにリアルタイム性向上のソリューションを入れることで機能低下が起こる場合がある.リアルタイム性を求めて改善をしていく上でよくある間違い(結果として機能低下を引き起こす)のプレゼン • リアルタイム性の向上のためには,目的を明確にすることが重要 • リアルタイム=早い応答性,ではない • 例:早い応答性を求めるのではなく,応答時間のデッドラインを決めてデッドラインを守る • 平均的に応答性が速いこと,と,デッドラインを超えない事,どちらが優先事項か? • トレードオフを理解すること • ハードウェアに起因するリアルタイム性低下の原因を理解すること • Distributionによってリアルタイム性向上のための最適なパッチは異なることを理解すること

  9. 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)と共有ライブラリのテキストのバイナリ書換え,が必要 • プロトタイプ作成はしたが,評価等はこれから実施予定

  10. Session • Title: Effective Scripting in Embedded Devices • 概要 • 組込み機器で効果的にスクリプトを使う方法 • いろんな状況下で,スクリプト使用の最も適切なタイミングはいつか? 最も適切なスクリプト言語はなにか? • C/C++とは違う,スクリプト言語の強みを生かす • Jim Tcl という言語を使ったサンプルの紹介 • C言語ベースとの速度比較(Response)があった • C-based 53ms に対し,Tcl-based 73ms

  11. 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 は良い

  12. Session • Title: Measuring Responsiveness of Linux Kernel on Embedded System • 概要 • リアルタイムシステムでのレスポンス計測についてのプレゼン • リアルタイムシステムの特徴 • レスポンスとパフォーマンスにはトレードオフがある • ジョブ実行が保証されている • ハードリアルタイムとソフトリアルタイムがある • 一般的にRTOSが使われてきたが,今はいろんな取組みがある • Kernel2.6まではLinuxKernelをリアルタイムOSの1アプリとするアプローチが多かったが,Kernel2.6以降はLinuxKernel自体を改良するアプローチが主流 • 計測方法の必要が増してきた • どれくらいリアルタイム性があるのか?.リアルタイム性の追求からリアルタイム性の計測方法に興味が移行 • 計測間隔,計測精度,ハードウェア依存 • 測りたいもの • Preemption Latency • 計測にはRTCをインラインアセンブラで使う • コードはWikiで公開予定,とのこと • 計測結果の表示では下記に対応 • Livegraph

  13. 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よりパフォーマンスが良い

  14. 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遅延への対応 • バスのスループット

  15. 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/trace-cmd.git

  16. Session (State of Embedded Linux)1/5 • Title: State of Embedded Linux • 概要 • 最近のKernelについて • CELFの技術エリア(から抜粋) • CELFが援助している分野(技術) • 組込み系のディストリビューション

  17. 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 • SquashFSがマージ,BTRFSがマージ • 2.6.30 • TOMOYO セキュリティモジュールがマージ • Threaded interrupts • 2.6.31 • Ftraceにグラフィックフィルタや新しいTracePointが入った • SMACK セキュリティモジュールがマージ • Performance Counterがマージ • kmemleak(detect kernel memory leaks)がマージ • 2.6.32 • devtmpfsがマージ • Timechart Tool(Kernelイベントをみるツール)がマージ • Runtime Power Management (のコア部分)がマージ • 2.6.33 • LZO圧縮がマージ • Ramxswap/Compcacheがマージ • Androidのパッチがはずされた • 注目しているほかのパッチ • kbuild, asm-generic

  18. Session (State of Embedded Linux) 3/5 • Title: State of Embedded Linux • 概要:CELFの技術エリア(から抜粋) • オーディオ・ビデオ・グラフィック関係 • GStreamer, OpenCore/OMX, DirectFB, OpenGL ES, Clutter(GTK UI Framework) • 起動時間 • 2.6.29でAsynchronousFunctionCallが入った • devtmpfs (デスクトップでは0.6秒起動が早くなる) • Filesystem • SquashFS(2.6.29), UBIFS(2.6.27), LogFS, AXFS • Power Management • Wakelock,Runtime PM,非同期サスペンドレジューム • Real-time • Interrupt threads(2.6.30),Sleeping Spinlocks(2.6.33) • System Size / Memory • smem,Kernel image compression, Ramzswap, mem_notify, -ffunction_sections, XIP • Tracing • Ttrace, LTTng, SystemTap, Perf Counters • Security • TOMOYO, SMACK, Embedded SELinux • その他 • Device Trees for ARM, DLNA

  19. 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

  20. Session (State of Embedded Linux) 5/5 • Title: State of Embedded Linux • 概要:組込み系のディストリビューション • Moblin,Android,Maemo,Ubuntu netbook,Chrome • Meego (Moblin + Maemo)

  21. Session • Title: Using the LTTng Tracer for System-Wide performance analysis and debugging • 概要 • LTTngTracerのチュートリアル • http://lttng.org • トレース戦略 • 問題の証明 • システムで悪いところはどこか? • システムコンフィグが影響しているのは何か? • ソフトウェア,ハードウェア • セットアップ • 課題を解決するためにベストなセットアップの確認 • アンカーとトリガー • 分析のために・・・アンカーとトリガーを用意 • アンカー:トレース分析の開始時点を指定 • トリガー:トレースの開始・停止,Kernel APIで用意,ユーザスペースからの関数も用意 • 例 • Xorgスケジューリング,Alsaの解析,バッファアンダーラン,など

  22. Session • Title: Multi-core scheduling optimizations for soft real-time applications • 概要 • 背景:Linux RT スケジューラはDLP(Data Level Parallelism)にはよいが,TLP(Task Level Parallelism)にはどうか? TLPでの注意点は? • 目的 • 共同タスク用のRT Linux スケジューラの振る舞いを調査 • RTスケジューラを最大限利用する • メインラインKernelへの組み込みやすさを優先 • 分析結果 • TLPで使うには,共通の並列化技術が必要で,現状のLinuxスケジューラはTLPに向いていない • 解決案 • 独立して同じCPUでタスク実行すべき • 結果 • 提案した方法では5.94%のスピード向上に貢献

  23. Session • Title: Linux without a Boot Loader? • 概要 • なぜ悩むのか? • Linuxのブートローダーがあるから • ブートローダー • U-boot,redboot,blob,などがある • ハードウェアの初期化とセットアップを実施 • Linux Kernelを起動(もしくは他のOSを起動) • 不良Flashからのリカバリ • Flashのアップデート • Linuxにブートローダーは必要か? • Yes.ハード初期化のパワーがない,メモリ初期化のコードがない,CPUセットアップがない • ではブートのためにLinuxを改変できるか? • Yes.簡単だが・・・ハードウェア依存の部分がある・ほとんどがアセンブラの起動コードの修正 • 必要な改変 • CPU初期化,DRAM初期化,BUS初期化,KernelのRAMへの移動 • デモ • uClinux ColdFire 5272,IXP425 XSCALE(ARM),Cavium OCTEON 5020 それぞれ50~100行程度のアセンブラコード追加をしたとの記載あり

  24. Session • Title: Kexec - Ready for Embedded Linux • 概要 • Kexec(ブートローダを使わない高速リブート機能)を組込みで使おうという話.もとはサーバの復旧のための技術であるが,組込みでは開発段階で何度も再起動をするので有効では?という発想. • Kexec-basec Bootloader • ハードウェアセットアップコードを統合 • LinuxKernelはCONFIG_KEXEC=y • kexec-toolsでユーザスペース統合 • サンプル実装のターゲットは「SHのボード」

  25. Session • Title: Developing for non-X86 targets using QEMU • 概要 • 現在最も有力なエミュレータとなったQEMUのX86以外での使用についてのプレゼン • PDFで240ページ • ひたすらレクチャー

  26. Demo • 二日目の全セッション終了後にデモ展示(2時間)がありました • デモ(10件程度)から印象に残った2件 • 起動時間高速化 • QEMU(エミュレータ)を使ったICEデバッグ

  27. Reference • ELC 2010のサイト http://www.embeddedlinuxconference.com/elc_2010/ • ELC 2010の発表資料置き場 http://elinux.org/ELC_2010_Presentations

More Related