Suche senden
Hochladen
virtio勉強会 #1 「virtioの基本的なところ(DRAFT版)」
•
Als PPT, PDF herunterladen
•
19 gefällt mir
•
8,995 views
Naoya Kaneko
Folgen
virtio勉強会 #1でしゃべった内容。 未完成版。pdfで上げたのが見えないので上げ直し。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 38
Jetzt herunterladen
Empfohlen
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
Takeshi HASEGAWA
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
Yasunori Goto
Empfohlen
OSC2011 Tokyo/Fall 濃いバナ(virtio)
OSC2011 Tokyo/Fall 濃いバナ(virtio)
Takeshi HASEGAWA
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
Kentaro Ebisawa
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
Takeshi HASEGAWA
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
Takuya ASADA
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Takeshi HASEGAWA
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
Yasunori Goto
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
#ljstudy KVM勉強会
#ljstudy KVM勉強会
Etsuji Nakai
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
ksk_ha
CXL_説明_公開用.pdf
CXL_説明_公開用.pdf
Yasunori Goto
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
富士通クラウドテクノロジーズ株式会社
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
Ryousei Takano
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
KiyotomoHiroyasu
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
NVIDIA Japan
05.2 virtio introduction
05.2 virtio introduction
zenixls2
Zynq mp勉強会資料
Zynq mp勉強会資料
一路 川染
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
BitVisor
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
ELFの動的リンク
ELFの動的リンク
7shi
C91 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C91 Wi-Fi: ららら、(無線的に)素敵なComiket Space
Naoya Kaneko
C90 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C90 Wi-Fi: ららら、(無線的に)素敵なComiket Space
Naoya Kaneko
Weitere ähnliche Inhalte
Was ist angesagt?
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Kuniyasu Suzaki
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
#ljstudy KVM勉強会
#ljstudy KVM勉強会
Etsuji Nakai
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
ksk_ha
CXL_説明_公開用.pdf
CXL_説明_公開用.pdf
Yasunori Goto
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
富士通クラウドテクノロジーズ株式会社
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
Ryousei Takano
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
KiyotomoHiroyasu
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
NVIDIA Japan
05.2 virtio introduction
05.2 virtio introduction
zenixls2
Zynq mp勉強会資料
Zynq mp勉強会資料
一路 川染
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
BitVisor
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
ELFの動的リンク
ELFの動的リンク
7shi
Was ist angesagt?
(20)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
#ljstudy KVM勉強会
#ljstudy KVM勉強会
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
CUDAプログラミング入門
CUDAプログラミング入門
Scapyで作る・解析するパケット
Scapyで作る・解析するパケット
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
CXL_説明_公開用.pdf
CXL_説明_公開用.pdf
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
05.2 virtio introduction
05.2 virtio introduction
Zynq mp勉強会資料
Zynq mp勉強会資料
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
BitVisor Summit 8「2. BitVisor 2019年の主な変更点」
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
ELFの動的リンク
ELFの動的リンク
Andere mochten auch
C91 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C91 Wi-Fi: ららら、(無線的に)素敵なComiket Space
Naoya Kaneko
C90 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C90 Wi-Fi: ららら、(無線的に)素敵なComiket Space
Naoya Kaneko
LP49 SystemCall Gateway
LP49 SystemCall Gateway
Naoya Kaneko
続・ららら、(無線的に)素敵なComiket Space
続・ららら、(無線的に)素敵なComiket Space
Naoya Kaneko
Chokaigi 2015: Wi-Fi Survey
Chokaigi 2015: Wi-Fi Survey
Naoya Kaneko
DPDKを拡張してみた話し
DPDKを拡張してみた話し
Lagopus SDN/OpenFlow switch
Dpdk環境の話
Dpdk環境の話
Masaru Oki
Andere mochten auch
(7)
C91 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C91 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C90 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C90 Wi-Fi: ららら、(無線的に)素敵なComiket Space
LP49 SystemCall Gateway
LP49 SystemCall Gateway
続・ららら、(無線的に)素敵なComiket Space
続・ららら、(無線的に)素敵なComiket Space
Chokaigi 2015: Wi-Fi Survey
Chokaigi 2015: Wi-Fi Survey
DPDKを拡張してみた話し
DPDKを拡張してみた話し
Dpdk環境の話
Dpdk環境の話
Ähnlich wie virtio勉強会 #1 「virtioの基本的なところ(DRAFT版)」
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
Takahiro Shinagawa
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
VxRail ChampionClub
仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理
Akari Asai
64bit化してみた話
64bit化してみた話
Yuichi Yoshida
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
えむ ばーど
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
Reconf 201506
Reconf 201506
Takefumi MIYOSHI
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Motonori Shindo
Trema day 1
Trema day 1
ykuga
仮想記憶の構築法
仮想記憶の構築法
magoroku Yamamoto
仮想化技術の今後の動向
仮想化技術の今後の動向
VirtualTech Japan Inc.
20180629_VxRailCC_サイジング編_EMC田中様
20180629_VxRailCC_サイジング編_EMC田中様
VxRail ChampionClub
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみた
SAKURA Internet Inc.
4章 Linuxカーネル - 割り込み・例外 4
4章 Linuxカーネル - 割り込み・例外 4
mao999
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
hiyohiyo
Open VZ
Open VZ
Kazuaki Fujikura
Reconf 201901
Reconf 201901
Takefumi MIYOSHI
あるブートローダの話
あるブートローダの話
nullnilaki
Ähnlich wie virtio勉強会 #1 「virtioの基本的なところ(DRAFT版)」
(20)
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
2016-11-30 BitVisor Summit 5 「BitVisorの現状と今後」(公開版)
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理
64bit化してみた話
64bit化してみた話
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
Reconf 201506
Reconf 201506
急速に進化を続けるCNIプラグイン Antrea
急速に進化を続けるCNIプラグイン Antrea
Trema day 1
Trema day 1
仮想記憶の構築法
仮想記憶の構築法
仮想化技術の今後の動向
仮想化技術の今後の動向
20180629_VxRailCC_サイジング編_EMC田中様
20180629_VxRailCC_サイジング編_EMC田中様
さくらのクラウドでVyOS使ってみた
さくらのクラウドでVyOS使ってみた
4章 Linuxカーネル - 割り込み・例外 4
4章 Linuxカーネル - 割り込み・例外 4
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
C++でNVMeと(*´Д`)ハァハァ 戯れていたら一年経ってた。
Open VZ
Open VZ
Reconf 201901
Reconf 201901
あるブートローダの話
あるブートローダの話
Mehr von Naoya Kaneko
Interop Tokyo 2018 Day1 Wi-Fi
Interop Tokyo 2018 Day1 Wi-Fi
Naoya Kaneko
JANOG41 Day3 Wi-Fi
JANOG41 Day3 Wi-Fi
Naoya Kaneko
モバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイント
Naoya Kaneko
C92 Day1 Wi-Fi
C92 Day1 Wi-Fi
Naoya Kaneko
JANOG40 Day2 Wi-Fi
JANOG40 Day2 Wi-Fi
Naoya Kaneko
Interop Tokyo 2017 Wi-Fi
Interop Tokyo 2017 Wi-Fi
Naoya Kaneko
NSDI2016 Reading: Wireless Part 1
NSDI2016 Reading: Wireless Part 1
Naoya Kaneko
C89 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C89 Wi-Fi: ららら、(無線的に)素敵なComiket Space
Naoya Kaneko
Reitaisai12 2015 Wi-Fi
Reitaisai12 2015 Wi-Fi
Naoya Kaneko
C87 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C87 Wi-Fi: ららら、(無線的に)素敵なComiket Space
Naoya Kaneko
続々・ららら、(無線的に)素敵なComiket Space C86
続々・ららら、(無線的に)素敵なComiket Space C86
Naoya Kaneko
秋山郷発火村 ネットワーク周りの備忘録・反省
秋山郷発火村 ネットワーク周りの備忘録・反省
Naoya Kaneko
Carmina Burana 全文私訳/注釈(TBD)
Carmina Burana 全文私訳/注釈(TBD)
Naoya Kaneko
Mehr von Naoya Kaneko
(13)
Interop Tokyo 2018 Day1 Wi-Fi
Interop Tokyo 2018 Day1 Wi-Fi
JANOG41 Day3 Wi-Fi
JANOG41 Day3 Wi-Fi
モバイルするハニーポット無線LANアクセスポイント
モバイルするハニーポット無線LANアクセスポイント
C92 Day1 Wi-Fi
C92 Day1 Wi-Fi
JANOG40 Day2 Wi-Fi
JANOG40 Day2 Wi-Fi
Interop Tokyo 2017 Wi-Fi
Interop Tokyo 2017 Wi-Fi
NSDI2016 Reading: Wireless Part 1
NSDI2016 Reading: Wireless Part 1
C89 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C89 Wi-Fi: ららら、(無線的に)素敵なComiket Space
Reitaisai12 2015 Wi-Fi
Reitaisai12 2015 Wi-Fi
C87 Wi-Fi: ららら、(無線的に)素敵なComiket Space
C87 Wi-Fi: ららら、(無線的に)素敵なComiket Space
続々・ららら、(無線的に)素敵なComiket Space C86
続々・ららら、(無線的に)素敵なComiket Space C86
秋山郷発火村 ネットワーク周りの備忘録・反省
秋山郷発火村 ネットワーク周りの備忘録・反省
Carmina Burana 全文私訳/注釈(TBD)
Carmina Burana 全文私訳/注釈(TBD)
Kürzlich hochgeladen
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Kürzlich hochgeladen
(8)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
virtio勉強会 #1 「virtioの基本的なところ(DRAFT版)」
1.
1 2013/06/09 virtio の基本的なところ (DRAFT) @n_kane
2.
2 参考資料 ✤ というかこのスライドよりむしろ以下の資料を読みましょう ... ✤
Virtio PCI Card Specification ✤ http://github.com/rustyrussell/virtio-spec ✤ とある virtio ドライバの接続部分〜インタフェース〜 by @hasegaw ✤ http://www.slideshare.net/TakeshiHasegawa1/osc2011- tokyofall-virtio
3.
3 ここでするお話について ✤ virtio の基本的なところのお話 ✤
どううごいているか ✤ どうシステムソフトウェアから使えるか ✤ ( つまり )virtio pci card specification のサブセット的な内容 ✤ 主に plan9 の virtio 実装をメインにお話を進めます
4.
4 ここでしないお話について ✤ 仮想化周りの歴史的背景、実現方法、実装、構造 e.t.c. ✤
virtio での通信が VMM 内でどうハンドリングされているか ✤ indirect モード , MSI-X の活用など
5.
5 お題目 ✤ virtio で何ができるの? ✤
virtio デバイスとその見え方 ✤ virtio を使った通信
6.
6 virtio で何ができるの?
7.
7 virtio でホスト・ゲスト間通信! ✤ 何か不思議な力により ✤
ホスト&ゲスト OS 間で共有できるリングバッファができます ✤ しかもメモリ空間が許すかぎり何本でも ✤ ここに適切に情報を詰めてやることで ✤ ゲストからホストへ、あるいはホストからゲストへデータの転送 ができます
8.
8 データの転送ができるなら .... ✤ 準仮想化ドライバ作るときに使えるよね! ✤
たとえば ✤ コントロール用 , TX 用 , RX 用のリングバッファがあれば ✤ NIC っぽい動作をさせられるのでは! ( ホスト側ががんばれば )
9.
9 “virtio デバイス”というもの
10.
10 virtio device ✤ virtio
デバイス ✤ なんらかのまとまった機能を持った仮想的な対象物 = デバイス ✤ たとえば NIC, ブロックデバイス , ファイルシステム e.t.c ✤ いくつかのリングバッファを用いて操作してやることで一定の役 割を果たしてくれる人のこと
11.
11 virtio device as
a PCI device ✤ virtio デバイスはゲストから、 PCI デバイスとして認識されます ✤ ベンダ ID : 0x1AF4 ✤ プロダクト ID : 0x1000 - 0x1040 ✤ これだとどの virtio デバイスだか区別がつかない .... ✤ Subsystem Device ID でデバイスのタイプを判断
12.
12 http://marsee101.blog19.fc2.com/blog-entry-84.html より拝借 0x1000 〜
0x1040 0x1AF4 IDID TYPETYPE 1 NIC 2 BLOCK 3 CONSOLE 5 MEMORY BALLOON 9 9P Subsytem Device ID の例
13.
13 認識できたら初期化 ... の前に ✤
PCI I/O Space に何が入っているかを抑えておきましょう デバイス ( ホスト ) からゲストに 対して提示される利用可能な機能 (feature) 一覧 ( 各ビット ) ゲストが利用する機能 (feature) を 書き込みデバイス ( ホスト ) に伝え るフィールド Virtio Header
14.
14 認識できたら初期化 ... の前に ✤
PCI I/O Space に何が入っているかを抑えておきましょう Qselect に示される番号のリングバ ッファのアドレス ÷ 4096 (guest physical) 操作中のリングバッファの番号 Qselect に示される番号のリング バッファ長 ( デスクリプタの数 ) Virtio Header
15.
15 認識できたら初期化 ... の前に ✤
PCI I/O Space に何が入っているかを抑えておきましょう デバイスの初期化状態や利用状況 についてゲストが告知するために 利用 割り込み状態の通知 リングバッファを操作した際に ゲストがその番号を書き込む Virtio Header
16.
16 virtio デバイスの初期化 (
共通 ) 1 各 OS ごとの PCI デバイス認識フェー ズ 2 ベースアドレスレジスタから map( 左 の構造がみえるようになる ) 3 Status の ACKNOWLEDGE(0x1) ビッ トを立ててデバイスを発見できたこと 、 virtio デバイスだと分かっているこ とを通知 Virtio Header 16
17.
17 virtio デバイスの初期化 (
共通 ) 4 Status の DRIVER(0x2) ビットを立てて 、ゲストがこのデバイスをサポート == ドライバを実装していることを通知 5 デバイス固有の初期化 6 リングバッファの用意 ( 後述 ) 7 Devfeat の内、利用する物を Drvfeat に 書き込み ( 後述 ) Virtio Header 17
18.
18 virtio デバイスの初期化 (
共通 ) 8 すべて正常に成功したら , Status の DRIVER_OK(0x4) ビットを立てる 8 失敗したら , Status の FAILED(0x80) ビットを立てる 以上で attach の部分は終了! 18
19.
19 リングバッファの構造
20.
20 リングバッファとは ✤ 実態はメモリ上のこんなかんじのデータ
21.
21 リングバッファとは ✤ 実態はメモリ上のこんなかんじのデータ デスクリプタテーブル available リング used
リング
22.
22 デスクリプタ ✤ 一つの転送を扱うエンティティ
23.
23 デスクリプタ ✤ 一つの転送を扱うエンティティ 転送対象のデータのアドレス (guest physical) データ長 このデスクリプタの扱いについての フラグ 後続して転送するデスクリプタの番号
24.
24 デスクリプタ ✤ 一つの転送を扱うエンティティ フラグフラグ ((
値値 )) 意味意味 VRING_DESC_F_NEXT (0x01) next フィールドに示される 後続要素がある ( デスクリプ タチェーンによる転送 ) VRING_DESC_F_WRITE (0x02) このデスクリプタは ( ホスト から見て )Write Only である . ホスト→ゲスト方向の転送 VRING_DESC_F_INDIRECT (0x04) Indirect モードによる転送
25.
25 デスクリプタテーブル ✤ ( そのまま
) デスクリプタの配列 ✤ 長さは Virtio Header の Qsize( 個 ) ✤ 転送の度に動的に alloc するのではなく、このテーブルからフリーな デスクリプタを見つけてきて使うという方式 ✤ 基本的には”インデックス値”でアクセスされる
26.
26 available リング このリング用のフラグ ( 割り込み抑制など※
) デスクリプタテーブル used リング avail リング中の 先頭インデックス値 (availidx) デスクリプタ番号を書き込む リング本体 ここに指定された番号のデスクリ プタが処理されるまでは割り込み 抑制
27.
27 used リング このリング用のフラグ ( 割り込み抑制など※
) デスクリプタテーブル available リング used リング中の 先頭インデックス値 (usedidx) デスクリプタ番号が書き込まれる リング本体 ここに指定された番号のデスクリ プタが処理されるまでは割り込み 抑制
28.
28 available リングと used
リング ✤ 基本的には前述のデスクリプタの番号を入れておく配列 ( 長さ Qsize) ✤ available リング ✤ ゲストがデスクリプタの番号を書き込んでリング上のインデックス値 (availidx) を 進めると、それが ( ホストにより ) 処理される ✤ used リング ✤ ホストにより処理されたデスクリプタの番号が書き込まれ、リング上のインデックス値 (usedidx) が更新される ✤ 正確には”デスクリプタの番号”と”デスクリプタチェーンの長さ”が入る ✤ このオペレーション周りは後述
29.
29 リングバッファの扱い方 - 初期 化
-
30.
30 先ほど飛ばしたお話 ✤ リングバッファを用意するのはゲストの責任。以下の流れで行う。 1 .
触りたいリングの番号 (i) を Qselect にセット 2. Qsize をみる 3. 0 ならこのデバイスで Qselect 番目のリングは使えないので終わり 4. > 0 ならその長さのリングが使える 5. 前述のリングバッファを Qsize を元に作る 6. Qaddr にリングバッファの物理アドレスをセット 7. i++; goto 1; Virtio Header
31.
31 初期化周りの細い話 ✤ virtio の本筋とはあまり関係ないけれど、利便性のために
OS でやっ ていること ✤ デスクリプタテーブルのチェーン化 ( 右図 ) ✤ フリーなデスクリプタ番号の保持 ( 右図の free) ✤ avail リング , used リングの先頭アドレス保持 ✤ 過去の usedidx の保持 (lastused)
32.
32 リングバッファの扱い方 - 転送
-
33.
33 転送の手順 ✤ 箇条書きにすると .... 1
. 転送パスのキューを引っ張ってくる 2. その中でフリーなデスクリプタを探してきて、適切に情報を詰め る 3. avail リングの先頭にその番号を書き込み , availidx を +1 して更新 4. Virtio Header の Qnotify に転送パスのキューの番号を書き込む ✤ この時点でホストに制御が移って処理が行われる
34.
34 分かりづらいので図に ... 初期状態 4 番がフリーなので 情報をつめて
... availidx のところに番号を書 き込む availidx を進めて、変更を加 えたリング番号を Qnotify に 書き込み
35.
35 転送が終わったら .... ✤ 割り込みが入って何かデバイス
( ホスト ) から応答があるはず .... →used リングを見よう 1 . 現在の usedidx と lastused の差から変更があったことを検知 2. lastused == usedidx になるまで used リングのデスクリプタを処理 3. 処理が終わったデスクリプタはデスクリプタテーブルに戻す
36.
36 イメージ図 割り込みが入った時点 usedidx と lastused
の差から 変更を検知 一つ進めて該当するデスクリプ タを処理 終わった物は返す
37.
37 slide is never
done
38.
38 virtio-net の場合の事情 ✤ virtqueue
は3つ : tx/rx/control ✤ Drvfeat
Jetzt herunterladen