SlideShare une entreprise Scribd logo
1  sur  14
What is Google Summer of Code? @syuu1228
Google Summer of Codeとは “Google Summer of Code は、いくつかのオープンソース / フリーソフトウェアの開発プロジェクトに指導者(メンター)になってもらい、学生のみなさんに実践的なプログラミングを経験してもらおうという企画です“ (Google日本 blogより) 金が出る 成果をあげたプロジェクトに$5000(学生 $4500、メンター組織 $500) 規模 学生:1116人 メンター組織:175 $5000 x 1116 = $6138000
Japanese Students in GSoC2011 Multiqueue BPF support and other BPF features - Takuya ASADA Program Execution Diagrams and Search Visualization - Yusuke Nakano  Implement faster OpenMP Task for libgomp - ShoNakatani Implement the RPS/RFS in FreeBSD - Kazuya GODA  Implement HFSPlus Journal on Linux – NaohiroAota
Multiqueue BPF support and other BPF featureS @syuu1228
What is BPF? BPFとは? BSD系OS上で、生のパケットをアプリケーションに取り込む為のインタフェース 生のパケット?-> NICを出入りしている全てのパケットをヘッダ付きで見れる こんなアプリで使われてます パケットキャプチャ:tcpdump, Wireshark IDS: snort 通常libpcapというライブラリを通して使う(アブストラクションレイヤ)
Multicore support on NIC 従来のNIC NIC1ポートに対し受信キュー/割り込みは一つだけ->割り込みを受け付けているCPUに負荷が集中The S100Kps problem(そふらぼ古橋くんが命名) 改善されたNIC 複数の受信キュー/割り込みを持つ、各CPUへ1:1に割り付け パケットヘッダからハッシュ値を計算、ルックアップテーブルを引いてキュー先を決定(Receive Side Scaling)->負荷をフロー毎に複数のCPUへ分散出来る
Receive Side Scaling
Scalable Network Stack ネットワークスタックに求められる事 複数のCPUで並行してネットワークスタックを稼働出来る なるべくロックで処理をブロックしない 同じフローのパケットは同じCPUで処理する
Scalable Network Stack
BPF Doesn’t Scale BPFがスケールしない そもそもファイルディスクリプタを一つ開いてread()しているだけなので、アプリケーション側が通常1スレッドしかない 折角RSSで複数のCPUへパケットを分散していても、そんな事は関係なしにパケットを集約して1つのバッファにまとめてしまう パケットをBPFへ渡す所で、粒度がネットワークインタフェース毎のロックをかけている->RSSしていると同時に1つのCPUしか入れない、残りは待たされる
BPF Doesn’t Scale
Multiqueuebpf BPFのMultiqueueサポート アプリケーション側でキュー数分のスレッドを立て、各スレッドはどのキューからパケットを受け取るか指定 BPFはアプリケーションへ各NICのキュー情報を提供 インターフェース毎ロックでブロックされないようにする
Multiqueuebpf
TODO BPFのMultiqueueサポート ioctlでキュー割り当てを指定出来るようにする 指定されたキューのパケットだけをアプリケーションへ流す NICからキュー情報を拾ってBPFのioctlから取り出せるようにする インターフェース毎ロックでブロックされないようにする テスト用に仮想Multiqueueインタフェースを実装(tapを改造)

Contenu connexe

En vedette

Are you sitting comfortably?
Are you sitting comfortably?Are you sitting comfortably?
Are you sitting comfortably?Brightwave Group
 
Learning Solutions - Interactive Film: Immersion in Learning
Learning Solutions - Interactive Film: Immersion in LearningLearning Solutions - Interactive Film: Immersion in Learning
Learning Solutions - Interactive Film: Immersion in LearningBrightwave Group
 
Edukacja ekologiczna w Poznaniu
Edukacja ekologiczna w PoznaniuEdukacja ekologiczna w Poznaniu
Edukacja ekologiczna w PoznaniuEkokonsultacje
 
Baroque Test
Baroque TestBaroque Test
Baroque TestCYSA
 
4th june meeting summary
4th june meeting summary4th june meeting summary
4th june meeting summaryAlan Bassett
 
Digital Audio - Technical Writing Class Paper - OCR Reformat
Digital Audio - Technical Writing Class Paper - OCR ReformatDigital Audio - Technical Writing Class Paper - OCR Reformat
Digital Audio - Technical Writing Class Paper - OCR ReformatPaul Teich
 
Joomla! turvalisuse tagamine
Joomla! turvalisuse tagamineJoomla! turvalisuse tagamine
Joomla! turvalisuse tagamineJoomla Eesti MTÜ
 
Televista's Reflection
Televista's ReflectionTelevista's Reflection
Televista's ReflectionHolly Cameron
 
PMI Revenue and Productivity Management Solution for Hotels and Restaurants.
PMI Revenue and Productivity Management Solution for Hotels and Restaurants.PMI Revenue and Productivity Management Solution for Hotels and Restaurants.
PMI Revenue and Productivity Management Solution for Hotels and Restaurants.henrik_gerdin
 
Learning and Skills Group Webinar 09.07.09
Learning  and Skills Group Webinar 09.07.09Learning  and Skills Group Webinar 09.07.09
Learning and Skills Group Webinar 09.07.09Brightwave Group
 
Решение по управлению web-контентом от компании Oracle.
Решение по управлению web-контентом от компании Oracle.Решение по управлению web-контентом от компании Oracle.
Решение по управлению web-контентом от компании Oracle.Anton Shmakov
 
Mud Coastal 2009
Mud  Coastal 2009Mud  Coastal 2009
Mud Coastal 2009cnunnally
 
Impress Usa 05
Impress Usa 05Impress Usa 05
Impress Usa 05sylvia09
 
Iniziativa100intervento Def
Iniziativa100intervento DefIniziativa100intervento Def
Iniziativa100intervento DefAnnarita Salsi
 
B E L G R A D E
B E L G R A D EB E L G R A D E
B E L G R A D Everka 123
 
Achieving large-scale organisational change through e-learning - Bupa Health ...
Achieving large-scale organisational change through e-learning - Bupa Health ...Achieving large-scale organisational change through e-learning - Bupa Health ...
Achieving large-scale organisational change through e-learning - Bupa Health ...Brightwave Group
 

En vedette (20)

Are you sitting comfortably?
Are you sitting comfortably?Are you sitting comfortably?
Are you sitting comfortably?
 
Learning Solutions - Interactive Film: Immersion in Learning
Learning Solutions - Interactive Film: Immersion in LearningLearning Solutions - Interactive Film: Immersion in Learning
Learning Solutions - Interactive Film: Immersion in Learning
 
Edukacja ekologiczna w Poznaniu
Edukacja ekologiczna w PoznaniuEdukacja ekologiczna w Poznaniu
Edukacja ekologiczna w Poznaniu
 
Kelly C. Ruggles
Kelly C. RugglesKelly C. Ruggles
Kelly C. Ruggles
 
Baroque Test
Baroque TestBaroque Test
Baroque Test
 
4th june meeting summary
4th june meeting summary4th june meeting summary
4th june meeting summary
 
The art of disguise
The art of disguiseThe art of disguise
The art of disguise
 
Digital Audio - Technical Writing Class Paper - OCR Reformat
Digital Audio - Technical Writing Class Paper - OCR ReformatDigital Audio - Technical Writing Class Paper - OCR Reformat
Digital Audio - Technical Writing Class Paper - OCR Reformat
 
Be/I
Be/IBe/I
Be/I
 
Joomla! turvalisuse tagamine
Joomla! turvalisuse tagamineJoomla! turvalisuse tagamine
Joomla! turvalisuse tagamine
 
Televista's Reflection
Televista's ReflectionTelevista's Reflection
Televista's Reflection
 
PMI Revenue and Productivity Management Solution for Hotels and Restaurants.
PMI Revenue and Productivity Management Solution for Hotels and Restaurants.PMI Revenue and Productivity Management Solution for Hotels and Restaurants.
PMI Revenue and Productivity Management Solution for Hotels and Restaurants.
 
Learning and Skills Group Webinar 09.07.09
Learning  and Skills Group Webinar 09.07.09Learning  and Skills Group Webinar 09.07.09
Learning and Skills Group Webinar 09.07.09
 
Решение по управлению web-контентом от компании Oracle.
Решение по управлению web-контентом от компании Oracle.Решение по управлению web-контентом от компании Oracle.
Решение по управлению web-контентом от компании Oracle.
 
Mud Coastal 2009
Mud  Coastal 2009Mud  Coastal 2009
Mud Coastal 2009
 
Impress Usa 05
Impress Usa 05Impress Usa 05
Impress Usa 05
 
Iniziativa100intervento Def
Iniziativa100intervento DefIniziativa100intervento Def
Iniziativa100intervento Def
 
B E L G R A D E
B E L G R A D EB E L G R A D E
B E L G R A D E
 
Achieving large-scale organisational change through e-learning - Bupa Health ...
Achieving large-scale organisational change through e-learning - Bupa Health ...Achieving large-scale organisational change through e-learning - Bupa Health ...
Achieving large-scale organisational change through e-learning - Bupa Health ...
 
Kelly C. Ruggles
Kelly C. RugglesKelly C. Ruggles
Kelly C. Ruggles
 

Similaire à Multiqueue BPF support and other BPF feature

KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?Yuji Oshima
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみたHiroshi Ohnuki
 
グローバルなエンジニアを目指す為の入門的な話
グローバルなエンジニアを目指す為の入門的な話グローバルなエンジニアを目指す為の入門的な話
グローバルなエンジニアを目指す為の入門的な話Yuichiro Nagaoka
 
Jag神戸3(共有用)
Jag神戸3(共有用)Jag神戸3(共有用)
Jag神戸3(共有用)takagig
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会Shinya Kinoshita
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本kazuki kumagai
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたYasuharu Seki
 
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~MasashiOtsuka1
 
Gcpug in fukuoka!20150411 #gcpug
Gcpug in fukuoka!20150411 #gcpugGcpug in fukuoka!20150411 #gcpug
Gcpug in fukuoka!20150411 #gcpugRyosuke Akahoshi
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportAkira Tanaka
 
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワークKaz Furukawa
 
『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜
『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜
『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜満徳 関
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
UnityとBlenderハンズオン第5章
UnityとBlenderハンズオン第5章UnityとBlenderハンズオン第5章
UnityとBlenderハンズオン第5章yaju88
 
UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章yaju88
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法Yuta Matsumura
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterpriseKoichiro Sumi
 

Similaire à Multiqueue BPF support and other BPF feature (20)

KubeFlowでどこまでいける?
KubeFlowでどこまでいける?KubeFlowでどこまでいける?
KubeFlowでどこまでいける?
 
2018 07-19dist
2018 07-19dist2018 07-19dist
2018 07-19dist
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
 
グローバルなエンジニアを目指す為の入門的な話
グローバルなエンジニアを目指す為の入門的な話グローバルなエンジニアを目指す為の入門的な話
グローバルなエンジニアを目指す為の入門的な話
 
Jag神戸3(共有用)
Jag神戸3(共有用)Jag神戸3(共有用)
Jag神戸3(共有用)
 
第8回 福岡西区勉強会
第8回 福岡西区勉強会第8回 福岡西区勉強会
第8回 福岡西区勉強会
 
ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本ぱぱっと理解するSpring Cloudの基本
ぱぱっと理解するSpring Cloudの基本
 
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみたソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
 
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
20220303_SAP AppGyverとSAP CAPで簡単なアプリを作ってみた~市民開発者とプロ開発者で作業を分担してみた~
 
初心者向けSpigot開発
初心者向けSpigot開発初心者向けSpigot開発
初心者向けSpigot開発
 
Gcpug in fukuoka!20150411 #gcpug
Gcpug in fukuoka!20150411 #gcpugGcpug in fukuoka!20150411 #gcpug
Gcpug in fukuoka!20150411 #gcpug
 
Google Product
Google ProductGoogle Product
Google Product
 
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling reportEclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
 
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
 
『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜
『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜
『「RUNNING LEAN」に学ぶLean Canvas』第18回 POStudy 〜プロダクトオーナーシップ勉強会〜
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
UnityとBlenderハンズオン第5章
UnityとBlenderハンズオン第5章UnityとBlenderハンズオン第5章
UnityとBlenderハンズオン第5章
 
UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章UnityとBlenderハンズオン第9章
UnityとBlenderハンズオン第9章
 
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterprise
 

Plus de Takuya ASADA

Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Takuya ASADA
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークTakuya ASADA
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」Takuya ASADA
 
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜Takuya ASADA
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダTakuya ASADA
 
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meetingOSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meetingTakuya ASADA
 
OSvパンフレット v3
OSvパンフレット v3OSvパンフレット v3
OSvパンフレット v3Takuya ASADA
 
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/FallOSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/FallTakuya ASADA
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装Takuya ASADA
 
Linux network stack
Linux network stackLinux network stack
Linux network stackTakuya ASADA
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 
Presentation on your terminal
Presentation on your terminalPresentation on your terminal
Presentation on your terminalTakuya ASADA
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがないTakuya ASADA
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt AffinityについてTakuya ASADA
 
OSvパンフレット
OSvパンフレットOSvパンフレット
OSvパンフレットTakuya ASADA
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜Takuya ASADA
 
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2Takuya ASADA
 
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1Takuya ASADA
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 

Plus de Takuya ASADA (20)

Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
 
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワークSeastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
Seastar:高スループットなサーバアプリケーションの為の新しいフレームワーク
 
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
高スループットなサーバアプリケーションの為の新しいフレームワーク
「Seastar」
 
ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜ヤマノススメ〜秋山郷 de ハッカソン〜
ヤマノススメ〜秋山郷 de ハッカソン〜
 
UEFI時代のブートローダ
UEFI時代のブートローダUEFI時代のブートローダ
UEFI時代のブートローダ
 
OSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meetingOSvのご紹介 in 
Java 8 HotSpot meeting
OSvのご紹介 in 
Java 8 HotSpot meeting
 
OSvパンフレット v3
OSvパンフレット v3OSvパンフレット v3
OSvパンフレット v3
 
OSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/FallOSvのご紹介 in OSC2014 Tokyo/Fall
OSvのご紹介 in OSC2014 Tokyo/Fall
 
OSv噺
OSv噺OSv噺
OSv噺
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
Linux network stack
Linux network stackLinux network stack
Linux network stack
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 
Presentation on your terminal
Presentation on your terminalPresentation on your terminal
Presentation on your terminal
 
僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない僕のIntel nucが起動しないわけがない
僕のIntel nucが起動しないわけがない
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
OSvパンフレット
OSvパンフレットOSvパンフレット
OSvパンフレット
 
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
BHyVeでOSvを起動したい
〜BIOSがなくてもこの先生きのこるには〜
 
「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2「ハイパーバイザの作り方」読書会#2
「ハイパーバイザの作り方」読書会#2
 
「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1「ハイパーバイザの作り方」読書会#1
「ハイパーバイザの作り方」読書会#1
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 

Dernier

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Dernier (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

Multiqueue BPF support and other BPF feature

  • 1. What is Google Summer of Code? @syuu1228
  • 2. Google Summer of Codeとは “Google Summer of Code は、いくつかのオープンソース / フリーソフトウェアの開発プロジェクトに指導者(メンター)になってもらい、学生のみなさんに実践的なプログラミングを経験してもらおうという企画です“ (Google日本 blogより) 金が出る 成果をあげたプロジェクトに$5000(学生 $4500、メンター組織 $500) 規模 学生:1116人 メンター組織:175 $5000 x 1116 = $6138000
  • 3. Japanese Students in GSoC2011 Multiqueue BPF support and other BPF features - Takuya ASADA Program Execution Diagrams and Search Visualization - Yusuke Nakano Implement faster OpenMP Task for libgomp - ShoNakatani Implement the RPS/RFS in FreeBSD - Kazuya GODA Implement HFSPlus Journal on Linux – NaohiroAota
  • 4. Multiqueue BPF support and other BPF featureS @syuu1228
  • 5. What is BPF? BPFとは? BSD系OS上で、生のパケットをアプリケーションに取り込む為のインタフェース 生のパケット?-> NICを出入りしている全てのパケットをヘッダ付きで見れる こんなアプリで使われてます パケットキャプチャ:tcpdump, Wireshark IDS: snort 通常libpcapというライブラリを通して使う(アブストラクションレイヤ)
  • 6. Multicore support on NIC 従来のNIC NIC1ポートに対し受信キュー/割り込みは一つだけ->割り込みを受け付けているCPUに負荷が集中The S100Kps problem(そふらぼ古橋くんが命名) 改善されたNIC 複数の受信キュー/割り込みを持つ、各CPUへ1:1に割り付け パケットヘッダからハッシュ値を計算、ルックアップテーブルを引いてキュー先を決定(Receive Side Scaling)->負荷をフロー毎に複数のCPUへ分散出来る
  • 8. Scalable Network Stack ネットワークスタックに求められる事 複数のCPUで並行してネットワークスタックを稼働出来る なるべくロックで処理をブロックしない 同じフローのパケットは同じCPUで処理する
  • 10. BPF Doesn’t Scale BPFがスケールしない そもそもファイルディスクリプタを一つ開いてread()しているだけなので、アプリケーション側が通常1スレッドしかない 折角RSSで複数のCPUへパケットを分散していても、そんな事は関係なしにパケットを集約して1つのバッファにまとめてしまう パケットをBPFへ渡す所で、粒度がネットワークインタフェース毎のロックをかけている->RSSしていると同時に1つのCPUしか入れない、残りは待たされる
  • 12. Multiqueuebpf BPFのMultiqueueサポート アプリケーション側でキュー数分のスレッドを立て、各スレッドはどのキューからパケットを受け取るか指定 BPFはアプリケーションへ各NICのキュー情報を提供 インターフェース毎ロックでブロックされないようにする
  • 14. TODO BPFのMultiqueueサポート ioctlでキュー割り当てを指定出来るようにする 指定されたキューのパケットだけをアプリケーションへ流す NICからキュー情報を拾ってBPFのioctlから取り出せるようにする インターフェース毎ロックでブロックされないようにする テスト用に仮想Multiqueueインタフェースを実装(tapを改造)