JP6855906B2 - スイッチプログラム、スイッチング方法及び情報処理装置 - Google Patents
スイッチプログラム、スイッチング方法及び情報処理装置 Download PDFInfo
- Publication number
- JP6855906B2 JP6855906B2 JP2017086367A JP2017086367A JP6855906B2 JP 6855906 B2 JP6855906 B2 JP 6855906B2 JP 2017086367 A JP2017086367 A JP 2017086367A JP 2017086367 A JP2017086367 A JP 2017086367A JP 6855906 B2 JP6855906 B2 JP 6855906B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- flow
- port
- node
- receive buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
(1)実施例に係る情報処理装置は、NICの物理ポートに対応する仮想スイッチポート毎に、NUMAノード毎の最低1つ以上の受信キューを有する。そして、実施例に係る情報処理装置は、NICの物理ポートにおいて受信キューに対応するHwQ(ハードウェアキュー)のDMA先を受信キューに対応するNUMAノードのメモリに設定する。
(2)そして、実施例に係る情報処理装置は、各NUMAノードに最低1つ以上のスレッドを割り当て、同一NUMAノードの受信キューの受信処理を担当させる。
(3)そして、NUMAノード#1に割当てられたスレッド#1は他NUMAノードに割り当てられたスレッドとの間に通信経路を確立する。
(4−1)スレッド#1は、NICのフィルタに当該フロー情報及び当該フローの出力先HwQ情報を登録する。
(4−2)スレッド#1は、当該フローを受信したポートにおいて受信キュー及びHwQの切替を行った旨をスレッド間通信経路経由で切替先NUMAノード#2のスレッド#2に通知する。
(4−3)スレッド#1は、当該フローのアクションの出力先をスレッド#2に変更してフローキャッシュに登録する。
(4−4)スレッド#1は、その後当該ポートで一定数のパケットを受信するか、もしくは、受信パケットがない状態になるとスレッド#2に切替完了通知を行う。
(6)スレッド#2は、スレッド#1から切替完了通知を受信すると当該ポートの受信処理を再開する。
(1)受信キュー24aからの読み出し時に読み出しデータが存在しない(受信パケットがない)
(2)受信キュー24a及び対応するハードウェア受信キュー31aのキュー長の合計数分のパケットの処理を実行
2 仮想スイッチ
3 NIC
4 受信バッファ
10 情報処理装置
21 VM用仮想ポート
22 フローテーブル群
23 フローキャッシュ
24 仮想スイッチポート
24a 受信キュー
24b 送信キュー
25 スレッド
31 物理ポート
31a ハードウェア受信キュー
31b フィルタ
31c ハードウェア送信キュー
41 ドライバ部
42 仮想ポートハンドラ
43 スレッド間通信ポート
44 検索部
44a 登録部
44b 判断部
45 中継部
46 スレッド制御部
Claims (6)
- 第1受信バッファと通信装置を有する第1ノードで第1スレッドが実行される第1処理装置と、第2受信バッファを有する第2ノードで第2スレッドが実行される第2処理装置に、
前記第1スレッドは、前記第2処理装置で実行される仮想マシンの仮想ポート宛のフローについて、前記通信装置の出力先を前記第2受信バッファに設定し、前記出力先の前記第2受信バッファへの設定を切替通知により前記第2スレッドに通知し、前記第1受信バッファに格納されたパケットを前記第2スレッドに転送し、
前記第2スレッドは、前記切替通知を受信すると、前記フローについて、前記第2受信バッファの受信処理を一時停止し、前記第1スレッドから転送されたパケットを前記仮想ポートに転送し、該転送が終わった後に前記第2受信バッファの受信処理を再開する、
処理を実行させることを特徴とするスイッチプログラム。 - 前記第1スレッドは、前記フローについて、前記第1処理装置のフローキャッシュにエントリを登録する際に、前記第1受信バッファから前記第2受信バッファへの切替が必要か否かを判定し、必要と判定した場合に、該エントリのアクションの出力先を前記第2スレッドに変更し、前記通信装置の出力先を前記第2受信バッファに設定し、前記出力先の前記第2受信バッファへの設定を切替通知により前記第2スレッドに通知し、前記第1受信バッファに格納されたパケットを前記第2スレッドに転送する、ことを特徴とする請求項1に記載のスイッチプログラム。
- 前記第1スレッドは、前記フローについて、前記第1受信バッファにパケットがなくなった場合、又は、前記第1受信バッファに格納された所定の数のパケットを前記第2スレッドに転送した場合に、前記第2スレッドに切替完了通知を送信し、
前記第2スレッドは、前記フローについて、前記切替完了通知を受信すると、前記第2受信バッファの受信処理を再開することを特徴とする請求項1又は2に記載のスイッチプログラム。 - 前記第1スレッドは、受信バッファに対応する受信ポートが物理ポートであり、出力先のポートが仮想マシン用仮想ポートであり、かつ、前記受信ポートが属するノードと前記仮想マシン用仮想ポートが属するノードが異なる場合に前記切替が必要と判定することを特徴とする請求項2に記載のスイッチプログラム。
- 第1受信バッファと通信装置を有する第1ノードで第1スレッドが実行される第1処理装置と、第2受信バッファを有する第2ノードで第2スレッドが実行される第2処理装置が、
前記第1スレッドは、前記第2処理装置で実行される仮想マシンの仮想ポート宛のフローについて、前記通信装置の出力先を前記第2受信バッファに設定し、前記出力先の前記第2受信バッファへの設定を切替通知により前記第2スレッドに通知し、前記第1受信バッファに格納されたパケットを前記第2スレッドに転送し、
前記第2スレッドは、前記切替通知を受信すると、前記フローについて、前記第2受信バッファの受信処理を一時停止し、前記第1スレッドから転送されたパケットを前記仮想ポートに転送し、該転送が終わった後に前記第2受信バッファの受信処理を再開する
処理を実行することを特徴とするスイッチング方法。 - 第1処理装置と第1受信バッファと通信装置とを有する第1ノードと、第2処理装置と第2受信バッファとを有する第2ノードとを有する情報処理装置において、
前記第1ノードは、前記第2処理装置で実行される仮想マシンの仮想ポート宛のフローについて、前記通信装置の出力先を前記第2受信バッファに設定し、前記出力先の前記第2受信バッファへの設定を切替通知により前記第2ノードに通知し、前記第1受信バッファに格納されたパケットを前記第2ノードに転送し、
前記第2ノードは、前記切替通知を受信すると、前記フローについて、前記第2受信バッファの受信処理を一時停止し、前記第1ノードから転送されたパケットを前記仮想ポートに転送し、該転送が終わった後に前記第2受信バッファの受信処理を再開する
ことを特徴とする情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017086367A JP6855906B2 (ja) | 2017-04-25 | 2017-04-25 | スイッチプログラム、スイッチング方法及び情報処理装置 |
US15/957,166 US10558485B2 (en) | 2017-04-25 | 2018-04-19 | Information processing apparatus and method for shifting buffer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017086367A JP6855906B2 (ja) | 2017-04-25 | 2017-04-25 | スイッチプログラム、スイッチング方法及び情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018185624A JP2018185624A (ja) | 2018-11-22 |
JP6855906B2 true JP6855906B2 (ja) | 2021-04-07 |
Family
ID=63854545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017086367A Active JP6855906B2 (ja) | 2017-04-25 | 2017-04-25 | スイッチプログラム、スイッチング方法及び情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10558485B2 (ja) |
JP (1) | JP6855906B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108123901B (zh) * | 2016-11-30 | 2020-12-29 | 新华三技术有限公司 | 一种报文传输方法和装置 |
JP6390748B1 (ja) * | 2017-04-19 | 2018-09-19 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US11301278B2 (en) * | 2018-04-25 | 2022-04-12 | Vmware, Inc. | Packet handling based on multiprocessor architecture configuration |
JP7157330B2 (ja) * | 2018-11-27 | 2022-10-20 | 富士通株式会社 | 監視装置、監視方法および監視プログラム |
CN109450701B (zh) * | 2018-12-07 | 2020-04-17 | 北京金山云网络技术有限公司 | 一种虚拟交换机切换方法、装置、宿主机及计算机可读存储介质 |
WO2021215011A1 (ja) * | 2020-04-24 | 2021-10-28 | 株式会社東陽テクニカ | パケットキャプチャ装置及び方法 |
CN113923158B (zh) * | 2020-07-07 | 2023-09-22 | 华为技术有限公司 | 一种报文转发、路由发送和接收方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068091A1 (ja) * | 2009-12-04 | 2011-06-09 | 日本電気株式会社 | サーバ及びフロー制御プログラム |
US8446824B2 (en) * | 2009-12-17 | 2013-05-21 | Intel Corporation | NUMA-aware scaling for network devices |
US8806025B2 (en) * | 2012-06-25 | 2014-08-12 | Advanced Micro Devices, Inc. | Systems and methods for input/output virtualization |
US9459904B2 (en) * | 2014-09-30 | 2016-10-04 | Vmware, Inc. | NUMA I/O aware network queue assignments |
-
2017
- 2017-04-25 JP JP2017086367A patent/JP6855906B2/ja active Active
-
2018
- 2018-04-19 US US15/957,166 patent/US10558485B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018185624A (ja) | 2018-11-22 |
US20180307520A1 (en) | 2018-10-25 |
US10558485B2 (en) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6855906B2 (ja) | スイッチプログラム、スイッチング方法及び情報処理装置 | |
US8446824B2 (en) | NUMA-aware scaling for network devices | |
JP5720577B2 (ja) | サーバ及びフロー制御プログラム | |
KR101747518B1 (ko) | 소프트웨어 정의 네트워크에서의 가상화된 컨테이너 및 가상 머신을 통한 로컬 서비스 체이닝 | |
JP6328134B2 (ja) | クラスタ化されたコンピュータ・システムで通信チャネルのフェイルオーバを実行する方法、装置、およびプログラム | |
US9973417B2 (en) | Method and apparatus for managing application state in a network interface controller in a high performance computing system | |
US8543729B2 (en) | Virtualised receive side scaling | |
JP5839032B2 (ja) | ネットワークシステム、コントローラ、及びフロー制御方法 | |
JP6958440B2 (ja) | 情報処理装置、情報処理システム及びプログラム | |
JP6254574B2 (ja) | ネットワーキング・デバイスの仮想化のためのパケット処理のオフロード | |
US10178054B2 (en) | Method and apparatus for accelerating VM-to-VM network traffic using CPU cache | |
US10187308B2 (en) | Virtual switch acceleration using resource director technology | |
US20150163172A1 (en) | Server switch integration in a virtualized system | |
US20070162619A1 (en) | Method and System for Zero Copy in a Virtualized Network Environment | |
KR20040010789A (ko) | 데이터 룩업을 실행하는 방법 및 컴퓨터 판독가능 매체 및 장치 | |
WO2011078861A1 (en) | A computer platform providing hardware support for virtual inline appliances and virtual machines | |
JP2024517706A (ja) | Smartnicにおけるネットワーク接続型mpi処理アーキテクチャ | |
JP2017143344A (ja) | パケット伝送装置,制御装置,及びパケット伝送制御方法 | |
US11563830B2 (en) | Method and system for processing network packets | |
JP2019083469A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP7052634B2 (ja) | 負荷分散システム及び負荷分散方法 | |
WO2018015983A1 (en) | Communication apparaus, system, rollback method, and program | |
US20220413890A1 (en) | Information processing apparatus, computer-readable recording medium having stored therein information processing program, and method for processing information | |
WO2018096609A1 (ja) | 計算機、通信制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210120 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210216 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210301 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6855906 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |