JP2018185624A - スイッチプログラム、スイッチング方法及び情報処理装置 - Google Patents
スイッチプログラム、スイッチング方法及び情報処理装置 Download PDFInfo
- Publication number
- JP2018185624A JP2018185624A JP2017086367A JP2017086367A JP2018185624A JP 2018185624 A JP2018185624 A JP 2018185624A JP 2017086367 A JP2017086367 A JP 2017086367A JP 2017086367 A JP2017086367 A JP 2017086367A JP 2018185624 A JP2018185624 A JP 2018185624A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- flow
- reception buffer
- reception
- port
- 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.)
- Granted
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)
Abstract
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 true JP2018185624A (ja) | 2018-11-22 |
JP6855906B2 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021215011A1 (ja) * | 2020-04-24 | 2021-10-28 | 株式会社東陽テクニカ | パケットキャプチャ装置及び方法 |
Families Citing this family (6)
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 | 北京金山云网络技术有限公司 | 一种虚拟交换机切换方法、装置、宿主机及计算机可读存储介质 |
CN113923158B (zh) * | 2020-07-07 | 2023-09-22 | 华为技术有限公司 | 一种报文转发、路由发送和接收方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068091A1 (ja) * | 2009-12-04 | 2011-06-09 | 日本電気株式会社 | サーバ及びフロー制御プログラム |
US20130326000A1 (en) * | 2009-12-17 | 2013-12-05 | Yadong Li | Numa-aware scaling for network devices |
JP2015521779A (ja) * | 2012-06-25 | 2015-07-30 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 入力/出力仮想化のためのシステムおよび方法 |
US20160092258A1 (en) * | 2014-09-30 | 2016-03-31 | 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
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068091A1 (ja) * | 2009-12-04 | 2011-06-09 | 日本電気株式会社 | サーバ及びフロー制御プログラム |
US20130326000A1 (en) * | 2009-12-17 | 2013-12-05 | Yadong Li | Numa-aware scaling for network devices |
JP2015521779A (ja) * | 2012-06-25 | 2015-07-30 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 入力/出力仮想化のためのシステムおよび方法 |
US20160092258A1 (en) * | 2014-09-30 | 2016-03-31 | Vmware, Inc. | Numa i/o aware network queue assignments |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021215011A1 (ja) * | 2020-04-24 | 2021-10-28 | 株式会社東陽テクニカ | パケットキャプチャ装置及び方法 |
US11296958B2 (en) | 2020-04-24 | 2022-04-05 | Toyo Corporation | Packet capture device and packet capture method |
Also Published As
Publication number | Publication date |
---|---|
US20180307520A1 (en) | 2018-10-25 |
JP6855906B2 (ja) | 2021-04-07 |
US10558485B2 (en) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6855906B2 (ja) | スイッチプログラム、スイッチング方法及び情報処理装置 | |
US11677851B2 (en) | Accelerated network packet processing | |
US7996569B2 (en) | Method and system for zero copy in a virtualized network environment | |
US10534601B1 (en) | In-service software upgrade of virtual router with reduced packet loss | |
US8446824B2 (en) | NUMA-aware scaling for network devices | |
JP6958440B2 (ja) | 情報処理装置、情報処理システム及びプログラム | |
US8543729B2 (en) | Virtualised receive side scaling | |
JP5720577B2 (ja) | サーバ及びフロー制御プログラム | |
CN104871493B (zh) | 用于高性能计算网络中的通信信道故障切换的方法和设备 | |
CN108270676B (zh) | 一种基于Intel DPDK的网络数据处理方法及装置 | |
US20090006521A1 (en) | Adaptive receive side scaling | |
KR20040010789A (ko) | 데이터 룩업을 실행하는 방법 및 컴퓨터 판독가능 매체 및 장치 | |
EP2406723A1 (en) | Scalable interface for connecting multiple computer systems which performs parallel mpi header matching | |
WO2011078861A1 (en) | A computer platform providing hardware support for virtual inline appliances and virtual machines | |
US11563830B2 (en) | Method and system for processing network packets | |
US20150215384A1 (en) | Communication device migration method of extension function and communication system | |
JP2024517706A (ja) | Smartnicにおけるネットワーク接続型mpi処理アーキテクチャ | |
US7564860B2 (en) | Apparatus and method for workflow-based routing in a distributed architecture router | |
US20200336573A1 (en) | Network switching with co-resident data-plane and network interface controllers | |
JP4823331B2 (ja) | ネットワーク接続装置及びスイッチング回路装置、並びにアドレス学習処理方法 | |
CN116170404B (zh) | 一种基于dpdk的数据转发方法及装置 | |
JP5359357B2 (ja) | パケット処理装置、該処理装置に用いられるパケット処理順序制御方法及びパケット処理順序制御プログラム | |
US20230040655A1 (en) | Network switching with co-resident data-plane and network interface controllers | |
JP5278511B2 (ja) | ネットワーク接続装置及びスイッチング回路装置、並びにアドレス学習処理方法 | |
CN115225708A (zh) | 一种报文转发方法计算机设备及存储介质 |
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 |