Session - eLinux.org
Download
Report
Transcript Session - eLinux.org
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