Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Qemu EPC の紹介
Search
Shunsuke Mie
March 11, 2024
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Qemu EPC の紹介
Shunsuke Mie
March 11, 2024
Other Decks in Technology
See All in Technology
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
130
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
540
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
150
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
420
しろおびから始める!ログ活用の第一歩
shumei_ito
0
950
Webの常識が通じないHTMLメールのダークモード
teamlab
PRO
0
120
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
430
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
210
Getting Started with Google Antigravity
glaforge
0
310
Rust で関数型ドメインモデリング
takonda
0
140
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
ラッコキーワード サービス紹介資料
rakko
1
5.3M
GitHub's CSS Performance
jonrohan
1033
470k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
570
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
520
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
280
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Believing is Seeing
oripsolob
1
240
Transcript
QEMU PCIe Endpoint Controller の現状紹介 株式会社イーゲル. 弥栄 俊介/MIE Shunsuke 2024/03/08
Japan Technical Jamboree EPⅡ Session 2
あらすじ ◼ PCI Express (PCIe)について ◼ Linux PCI Endpoint Framework
について ◼ QEMU PCIe Endpoint Controller (EPC) について ◼ デモ ◼ テストについて – 時間があれば 1 Copyright© IGEL Co., Ltd. All Rights Reserved.
PCI Expressのおさらい Peripheral Component Interconnect Express (PCIe) … is a
high-speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards. It is the common motherboard interface for personal computers' graphics cards, sound cards, hard disk drive host adapters, SSDs, Wi-Fi and Ethernet hardware connections. Wikipedia PCI Express (https://en.wikipedia.org/wiki/PCI_Express) より 2 Copyright© IGEL Co., Ltd. All Rights Reserved.
PCI Expressのおさらい (続き) 構成要素 ◼ Root Complex ◼ Switch ◼
Endpoint ◼ Bridge 3 Copyright© IGEL Co., Ltd. All Rights Reserved.
PCI Expressのおさらい (続き) 4 Copyright© IGEL Co., Ltd. All Rights
Reserved. CPU Root Complex Switch Endpoint Endpoint Endpoint DRAM Switch Bridge PCI Endpoint
ハードウェア構成例 5 Copyright© IGEL Co., Ltd. All Rights Reserved. CPU
Root Complex Switch NIC Endpoint Ethernet Function LAN SATA Card Endpoint SATA Function HDD, etc DRAM
ソフトウェアも含めた観点 6 Copyright© IGEL Co., Ltd. All Rights Reserved. Root
Complex Root Complex Driver NIC Driver NIC Endpoint Ethernet Function LAN Software Hardware
Endpoint Controller 7 Copyright© IGEL Co., Ltd. All Rights Reserved.
Root Complex Root Complex Driver PCIe Device Endpoint Controller Endpoint Software Hardware
Endpoint Controller(続き) 8 Copyright© IGEL Co., Ltd. All Rights Reserved.
Root Complex Root Complex Driver PCIe Device Driver Endpoint Controller Endpoint Endpoint Controller Driver Endpoint Function Driver Function がソフトウェアで記述できることで、ホスト間の 通信や、任意の処理が行える PCIe デバイスとして見せ られる。 Hardware Software
Linux PCI Endpoint Framework 9 Copyright© IGEL Co., Ltd. All
Rights Reserved. Endpoint Controller Endpoint Endpoint Controller Driver PCIe Endpoint Framework Endpoint Function Driver PCIe Endpoint Framework により、 (完全ではないが)デバイス非依存の PCIe Endpoint Function の記述ができる Root Complex 側から見るとPCIeデバイス だけれども、裏ではLinuxが動作している
Linux PCI Endpoint Framework 10 Copyright© IGEL Co., Ltd. All
Rights Reserved. Endpoint Controller Endpoint Endpoint Controller Driver PCIe Endpoint Framework Endpoint Function Driver PCIe Endpoint Framework により、 (完全ではないが)デバイス非依存の PCIe Endpoint Function の記述ができる Upstream にある実装は • pci-epf-test • 動作確認テスト用 • pci-epf-ntb • PCIe の non transparent bridge を再現する ことで、ホスト間の通信を可能に • pci-epf-mhi • MHI stack を使ってホスト間の通信を可能 に SW HW
Linux PCI Endpoint Framework (続き) まだ、ハードウェア、ソフトウェア双方で成熟していない 任意のPCIe デバイスの振る舞いを記述できそうだが、できない ハードウェアとしては、チップ屋さんに期待(交渉?) ソフトウェアとしては、
動作確認、テストがあまりされていない。 ➔ 実機が無いとfunction driver の開発、テストができない… ➔ 同じ function driver がハードウェアによっては動いたり動かなかっ たり… エミュレーターがあれば、ある程度解決するのでは? 11 Copyright© IGEL Co., Ltd. All Rights Reserved.
Linux PCI Endpoint Framework (続き) エミュレーターがあると、 ➔ 実機が無いとfunction driver の開発、テストができない…
Function driver については開発、テストができる。自動テストも容易 ➔ ハードウェアによっては動いたり動かなかったり… Function driver や Endpoint Framework の問題であれば、エミュレー ターでのテストで見つかるかも 一方、 Endpoint Controller Driver やハードウェアに問題がある場合は、カ バーできない 12 Copyright© IGEL Co., Ltd. All Rights Reserved.
エミュレータをどう作るか 2台のLinux が動作し協調動作する。 ◼ Root complex 搭載 ◼ Endpoint controller
搭載 この間のPCIe のパケットを相互に受け渡す 既存のエミュレーターに、上記の機能を追加する 今回は、OSSで広く使われている Qemu を対象とする 13 Copyright© IGEL Co., Ltd. All Rights Reserved.
QEMU PCIe EPC 全体像 14 Copyright© IGEL Co., Ltd. All
Rights Reserved. QEMU Endpoint Controller QEMU Endpoint Controller Driver PCIe Endpoint Framework Endpoint Function Driver Root Complex Root Complex Driver PCIe device driver EPC Bridge Linux Qemu Guest1 Guest2 新規に実装する箇所 既にある箇所
なぜ、独自デバイスなのか QEMU Endpoint Controller について 実デバイスであれば、既存のドライバが使える 実デバイスのエミュレーションは実装が複雑 Root Complex と
Endpoint Controller の機能両方を持つ ことが多く双方の実装が必要 デバイスに依存しない形の動作確認が行える 15 Copyright© IGEL Co., Ltd. All Rights Reserved.
EPC Bridge PCIe のデバイスとして実装 デバイスとしての振る舞いの代わりに、 ゲストからのアクセスを、QEMU Endpoint Controller へ受け渡す。 具体的には、
PCIe バスに流れるもの受け渡し 具体的には、PCIe TLP 16 Copyright© IGEL Co., Ltd. All Rights Reserved. Root Complex Root Complex Driver PCIe device driver EPC Bridge To QEMU EPC Linux Qemu
QEMU Endpoint Controller Endpoint Controller ソフトウェアで Function を実装できる 十分な機能を持つ Endpoint
Controller Driver Linux PCI EP Framework に適応した形 で実装 17 Copyright© IGEL Co., Ltd. All Rights Reserved. QEMU Endpoint Controller QEMU Endpoint Controller Driver PCIe Endpoint Framework Endpoint Function Driver To EPC Bridge Linux Qemu
進捗 • Qemu に必要な箇所の実装 (DONE) • テスト用の function driver での確認
(DONE) • その他の function driver での確認 (WIP) • アップストリーミング (WIP) • Linux, QEMU 双方に RFC として投稿 • フィードバックをもとに次段準備中 • Linux 側は、レビュワーの一人より前向きな話 • QEMU 側は、アークテクチャの指摘質問程度 • 発表 (WIP) • 今日ここ (ALMOST DONE) • KVM Forum 2024 • プロポーザル 準備中 • OSSの何か 18 Copyright© IGEL Co., Ltd. All Rights Reserved.
デモ 19 Copyright© IGEL Co., Ltd. All Rights Reserved. QEMU
Endpoint Controller QEMU Endpoint Controller Driver PCIe Endpoint Framework pci-epf-test Root Complex Root Complex Driver pci-endpoint-test EPC Bridge Linux Qemu Guest1 Guest2
デモ(続き) 20 Copyright© IGEL Co., Ltd. All Rights Reserved.
テスト エミュレータの動作ができたのでテストを行いたい 簡単なところから行う 投稿された endpoint framework や endpoint function に
関連するパッチのテスト 21 Copyright© IGEL Co., Ltd. All Rights Reserved.
テスト(続き) 想定している流れ 1. パッチが投稿される 2. パッチが適応されたカーネル(or モジュール)のビ ルド 3. テストの実行と結果の確認
準備、動作確認済み https://github.com/ShunsukeMie/linux-epf-autotest 22 Copyright© IGEL Co., Ltd. All Rights Reserved.
自動テストへの組み込み https://bottest.wiki.kernel.org/ 自動テスト仕組みをいくつか存在する e.g. kernelci それらへの組み込みができるかどうか 知見がほしい 23 Copyright© IGEL
Co., Ltd. All Rights Reserved.
まとめ ◼ Linux PCI Endpoint Framework の紹介 ◼ QEMU PCI
Endpoint Controller等を実装し仮想環境 で動作確認できる仕組みを提供 – Endpoint function の開発効率の向上 – Endpoint Framework のテストの容易化 ◼ 自動テストに向けて – 調査、検討が必要 24 Copyright© IGEL Co., Ltd. All Rights Reserved.
参考文献 ◼ PCI Express設計の基礎と応用, 畑山 仁 編著, CQ出版社 https://www.cqpub.co.jp/hanbai/books/46/46411.htm 25
Copyright© IGEL Co., Ltd. All Rights Reserved.