CELF Embedded Linux Conference 2010 Report

27
CELF Embedded Linux Conference 2010 Report パパパパパパパパパパ パパパパ

description

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

Transcript of CELF Embedded Linux Conference 2010 Report

Page 1: CELF Embedded Linux Conference 2010 Report

CELFEmbedded Linux Conference 2010

Report

パナソニック株式会社加藤慎介

Page 2: CELF Embedded Linux Conference 2010 Report

目次

ELC 概要 Keynote Report Session Report Demo Reference

Page 3: CELF Embedded Linux Conference 2010 Report

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/

Page 4: CELF Embedded Linux Conference 2010 Report

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

Page 5: CELF Embedded Linux Conference 2010 Report

Keynote 1 (2/2)

Googleがした良い事 Linuxを使ったこと android.git.kernel.org としたこと Kernelのライセンスに従ったこと

Googleがした悪い事 android.git.kernel.org としたこと コミュニティを無視したこと 自分たちは特別だと思ったこと 自分たちはひとりだと思ったこと

Page 6: CELF Embedded Linux Conference 2010 Report

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

Page 7: CELF Embedded Linux Conference 2010 Report

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で全てのユーザ環境にあわすのは愚かな話

Page 8: CELF Embedded Linux Conference 2010 Report

Session

Title: Real-Time Linux Failure 概要

リアルタイム Linuxは使えるものになっているが,そこにリアルタイム性向上のソリューションを入れることで機能低下が起こる場合がある.リアルタイム性を求めて改善をしていく上でよくある間違い (結果として機能低下を引き起こす )のプレゼン

リアルタイム性の向上のためには,目的を明確にすることが重要 リアルタイム=早い応答性,ではない

例:早い応答性を求めるのではなく,応答時間のデッドラインを決めてデッドラインを守る

平均的に応答性が速いこと,と,デッドラインを超えない事,どちらが優先事項か?

トレードオフを理解すること ハードウェアに起因するリアルタイム性低下の原因を理解すること

Distributionによってリアルタイム性向上のための最適なパッチは異なることを理解すること

Page 9: CELF Embedded Linux Conference 2010 Report

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)と共有ライブラリのテキストのバイナリ書換え,が必要

プロトタイプ作成はしたが,評価等はこれから実施予定

Page 10: CELF Embedded Linux Conference 2010 Report

Session

Title: Effective Scripting in Embedded Devices

概要 組込み機器で効果的にスクリプトを使う方法

いろんな状況下で,スクリプト使用の最も適切なタイミングはいつか? 最も適切なスクリプト言語はなにか?

C/C++とは違う,スクリプト言語の強みを生かす

Jim Tcl という言語を使ったサンプルの紹介 C言語ベースとの速度比較 (Response)があった

C-based 53ms に対し, Tcl-based 73ms

Page 11: CELF Embedded Linux Conference 2010 Report

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

Page 12: CELF Embedded Linux Conference 2010 Report

Session

Title: Measuring Responsiveness of Linux Kernel on Embedded System 概要

リアルタイムシステムでのレスポンス計測についてのプレゼン リアルタイムシステムの特徴

レスポンスとパフォーマンスにはトレードオフがある ジョブ実行が保証されている ハードリアルタイムとソフトリアルタイムがある

一般的に RTOSが使われてきたが,今はいろんな取組みがある Kernel2.6までは LinuxKernelをリアルタイム OSの 1アプリとするアプローチが多かったが, Kernel2.6 以降は LinuxKernel自体を改良するアプローチが主流

計測方法の必要が増してきた どれくらいリアルタイム性があるのか?.リアルタイム性の追求からリアルタイム性の計測方法に興味が移行 計測間隔,計測精度,ハードウェア依存

測りたいもの Preemption Latency

計測には RTCをインラインアセンブラで使う コードはWikiで公開予定,とのこと

計測結果の表示では下記に対応 Livegraph

Page 13: CELF Embedded Linux Conference 2010 Report

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

Page 14: CELF Embedded Linux Conference 2010 Report

Session

Title: Runtime Power Management: Overview and Platform implementation

概要 従来の Suspend/Resumeとは違う新しい PowerManagem

ent(PM)の Framework 実行中にデバイスの PMを独立して行う

デバイスローカルでの Suspend/Resume Idle 中のデバイスを Suspendする Kernel2.6.32にマージ

今後の議論・検討ネタ LDMでの

デバイス特有の遅延への対応 デバイスの連結時の遅延への対応

デバイスの Sleep/Wakeup 遅延への対応 バスのスループット

Page 15: CELF Embedded Linux Conference 2010 Report

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-cm

d.git

Page 16: CELF Embedded Linux Conference 2010 Report

Session (State of Embedded Linux)1/5

Title: State of Embedded Linux概要

最近の Kernelについて CELFの技術エリア (から抜粋 ) CELFが援助している分野 (技術 ) 組込み系のディストリビューション

Page 17: CELF Embedded Linux Conference 2010 Report

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

Page 18: CELF Embedded Linux Conference 2010 Report

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

Page 19: CELF Embedded Linux Conference 2010 Report

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

Page 20: CELF Embedded Linux Conference 2010 Report

Session (State of Embedded Linux) 5/5

Title: State of Embedded Linux概要:組込み系のディストリビューション

Moblin, Android,Maemo, Ubuntu netbook,Chrome

Meego (Moblin + Maemo)

Page 21: CELF Embedded Linux Conference 2010 Report

Session

Title: Using the LTTng Tracer for System-Wide performance analysis and debugging

概要 LTTngTracerのチュートリアル

http://lttng.org トレース戦略

問題の証明 システムで悪いところはどこか? システムコンフィグが影響しているのは何か?

ソフトウェア,ハードウェア セットアップ

課題を解決するためにベストなセットアップの確認 アンカーとトリガー

分析のために アンカーとトリガーを用意・・・ アンカー:トレース分析の開始時点を指定 トリガー:トレースの開始・停止, Kernel APIで用意,ユーザスペースからの関数も用意

例 Xorgスケジューリング, Alsaの解析,バッファアンダーラン,など

Page 22: CELF Embedded Linux Conference 2010 Report

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%のスピード向上に貢献

Page 23: CELF Embedded Linux Conference 2010 Report

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 行程度のアセンブラコード追加をしたとの記載あり

Page 24: CELF Embedded Linux Conference 2010 Report

Session

Title: Kexec - Ready for Embedded Linux 概要

Kexec(ブートローダを使わない高速リブート機能 )を組込みで使おうという話.もとはサーバの復旧のための技術であるが,組込みでは開発段階で何度も再起動をするので有効では?という発想.

Kexec-basec Bootloader ハードウェアセットアップコードを統合 LinuxKernelは CONFIG_KEXEC=y kexec-toolsでユーザスペース統合

サンプル実装のターゲットは「 SHのボード」

Page 25: CELF Embedded Linux Conference 2010 Report

Session

Title: Developing for non-X86 targets using QEMU

概要 現在最も有力なエミュレータとなった QEMUの

X86以外での使用についてのプレゼン PDFで 240ページ ひたすらレクチャー

Page 26: CELF Embedded Linux Conference 2010 Report

Demo

二日目の全セッション終了後にデモ展示 (2時間 )がありました

デモ (10件程度 )から印象に残った 2件 起動時間高速化 QEMU(エミュレータ )を使った ICEデバッグ

Page 27: CELF Embedded Linux Conference 2010 Report

Reference

ELC 2010のサイト

http://www.embeddedlinuxconference.com/elc_2010/

ELC 2010の発表資料置き場http://elinux.org/ELC_2010_Presentations