JP2013530573A - マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ - Google Patents

マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ Download PDF

Info

Publication number
JP2013530573A
JP2013530573A JP2013505372A JP2013505372A JP2013530573A JP 2013530573 A JP2013530573 A JP 2013530573A JP 2013505372 A JP2013505372 A JP 2013505372A JP 2013505372 A JP2013505372 A JP 2013505372A JP 2013530573 A JP2013530573 A JP 2013530573A
Authority
JP
Japan
Prior art keywords
workload
queue pair
memory
device driver
data processing
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
Application number
JP2013505372A
Other languages
English (en)
Other versions
JP5689526B2 (ja
Inventor
カルドナ、オマール
オークス、マシュー、ライアン
カニンガム、ジェームス、ブライアン
シャルマ、ラケシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013530573A publication Critical patent/JP2013530573A/ja
Application granted granted Critical
Publication of JP5689526B2 publication Critical patent/JP5689526B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供するメカニズムを提供する。
【解決手段】デバイス・ドライバが、メモリ内に初期キュー・ペアを割り当てる。デバイス・ドライバは、データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断する。ワークロードが所定の高閾値より高くなることに応じて、デバイス・ドライバは、メモリ内に追加のキュー・ペアを割り当て、初期化する。デバイス・ドライバは、追加のキュー・ペアに関連する追加の処理エンジンの動的挿入を可能にするために、ネットワーク・アダプタ内の受信側スケーリング(RSS)メカニズムをプログラムする。デバイス・ドライバは、追加のキュー・ペアへの送信タプル・ハッシングを有効化する。
【選択図】図3

Description

本願は、全般的に、改善されたデータ処理装置および方法に関し、特に、動的再構成(dynamic reconfiguration)によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供するメカニズムに関する。
イーサネット(R)媒体の速度が上がり続けるにつれて、可能な限り低いレイテンシで理論上最大限のパフォーマンスを実現するために、より多くのシステム・リソースを使用する必要性が高まっている。イーサネット(R)・アダプタ要件に関するシステム・リソースには、多数の送信/受信ディスクリプタおよびバッファの必要性から、大きな物理メモリ・フットプリントおよび対応する直接メモリ・アクセス入出力メモリ・マッピング・リソースが含まれる。10Gbpsイーサネット(R)・ドライバは、典型的には、アダプタ毎に約150〜300MBの物理システム・メモリおよび直接メモリ・アクセス入出力メモリを消費する。
従来のドライバ・モデルのもとでは、デバイス・ドライバは、アダプタがその理論上最大限のパフォーマンスを実現できるであろう量に送信/受信リソースの割り当てを行う。しかし、最大パフォーマンス限界が必要とされないようなワークロード(workload)またはネットワーク・トラフィックであれば、ドライバは必要以上に多くのリソースを消費していることになり、これはシステム・リソースの無駄である。さらに、このモデルには、変化するワークロードに効率的に対処する能力がない。
一例示実施形態では、データ処理システムにおいて、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供する方法が提供される。例示実施形態は、メモリ内に初期キュー・ペア(initial queue pair)を割り当てる。例示実施形態は、データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断する。例示実施形態は、ワークロードが所定の高閾値より高くなることに応じて、メモリ内に追加のキュー・ペアを割り当て、初期化する。例示実施形態は、追加のキュー・ペアに関連する追加の処理エンジン(processing engine)の動的挿入(dynamic insertion)を可能にするために、ネットワーク・アダプタ内の受信側スケーリング(RSS:receive side scaling)メカニズムをプログラムする。例示実施形態は、追加のキュー・ペアへの送信タプル・ハッシング(transmit tuple hashing)を有効化する。
別の例示実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を含むコンピュータ・プログラム製品が提供される。コンピュータ可読プログラムは、コンピューティング・デバイス上で実行されると、方法の例示実施形態に関して上記に要点を記載した動作のうちの様々な動作、およびその組み合わせを、コンピューティング・デバイスに実行させる。
さらに別の例示実施形態では、システム/装置が提供される。システム/装置は、1つ以上のプロセッサと、該1つ以上のプロセッサに結合されたメモリとを含むとよい。メモリは、該1つ以上のプロセッサにより実行されると、方法の例示実施形態に関して上記に要点を記載した動作のうちの様々な動作、およびその組み合わせを該1つ以上のプロセッサに実行させる、命令を含む。
本発明のこれらの特徴および利点、ならびにその他の特徴および利点が、以下の本発明の例示の実施形態の詳細な説明に記載されるか、またはそれを考慮することで当業者には明らかとなる。
例示実施形態の以下の詳細な説明を添付の図面と併せて読み、参照することで、本発明、ならびにその好適な使用方法、ならびにさらなる目的および利点が、最も深く理解される。
例示実施形態の各側面が実装され得る例示の分散型データ処理システムの図的表現を示す。 例示実施形態の側面がともに有利に利用され得るデータ処理システムのブロック図を示す。 例示実施形態が実装され得る、例示的な論理分割されたプラットフォームのブロック図を示す。 例示実施形態による、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供するメカニズムの例示的な実装を示す。 例示実施形態による、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供する例示の動作の概要を示すフローチャートを提供する。
例示実施形態は、基礎をなすハードウェアの動的再構成によって、アクティブ・メモリ・シェアリング(AMS:active memory sharing)および中央処理ユニット(CPU:central processing unit)利用のためのリソース・アフィニティを提供するメカニズムを提供し、パフォーマンスまたはサービスの中断なしに、変化するワークロードの要求に応じる。現代のアダプタは、最大限のパフォーマンスのために複数のパケット・キュー・ペア(QP:queue pair)を提供することもある。こうしたアダプタは、インターフェイス毎に複数の送信/受信キュー(QP)を使用することによって、並列ネットワーク・データ処理を実行できることもあり、これは、高トランザクション・ワークロード、および小さなパケット・サイズでより高速な回線速度を実現するためには必須の機能である。イングレス、すなわち受信トラフィックは、アダプタにより、オペレーティング・システム処理のために、適切なQPおよび関連する割り込みにハッシュされるタプルとされ得る。イーグレス、すなわち送信トラフィックは、アダプタに配信するためにオペレーティング・システム(OS:operating system)ドライバによってハッシュされるタプルとされ得る。アダプタおよびOSドライバは、典型的には、最大限のパフォーマンスを実現するために、十分なディスクリプタおよびバッファとともに複数のQP、通常はアダプタ毎に約250MBの平均メモリ・フットプリントに対し2〜4つのQPを割り当てる。各QPが、関連する受信割り込みを有することもあるため、複数のQPが使用されていて、トラフィックが少ないと、単一のQPで容易に対処可能であるのに、増加した割り込み送出が原因で追加のCPU利用オーバーヘッドが存在することになる。複数のQPは、多くの通常の使用事例に関するパフォーマンスには負の影響を有するということ、しかし特定の高ストレス・高トランザクション・ワークロードに関しては、理論上最大限のパフォーマンスを実現するために必須であるということが、既知のアダプタの分析により指摘されているため、この問題に対するパフォーマンス・チームの関心は次第に高まっている。
したがって、例示実施形態は、分散型データ処理環境、単一データ処理デバイス、または同様のものを含む、多数の異なるタイプのデータ処理環境において利用され得る。例示実施形態の具体的な構成要素および機能性を説明するための背景を提供するために、以下、図1〜3が、例示実施形態の各側面が実装されるとよい例示の環境として提供される。図1〜3に続く説明は、主として、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供するメカニズムの単一データ処理デバイス実装に焦点を当てるが、これは例でしかなく、本発明の特徴に関していかなる制限を記載することも、示唆することも目的としていない。反対に、例示実施形態は、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティが提供されるとよい分散型データ処理の環境および実施形態を含むものとする。
以下、図面、特に図1〜3を参照する。本発明の例示実施形態が実装され得るデータ処理環境の例示の図が提供されている。当然のことながら、図1〜3は例でしかなく、本発明の側面または実施形態が実装され得る環境に関していかなる制限を主張することも、示唆することも目的としていない。示される環境に対して多数の変更が、本発明の意図および範囲から逸脱することなく加えられ得る。
以下、図面を参照する。図1は、例示実施形態の各側面が実装され得る例示の分散型データ処理システムの図的表現を示す。分散型データ処理システム100は、例示実施形態の各側面が実装され得るコンピュータのネットワークを含むとよい。分散型データ処理システム100は、少なくとも1つのネットワーク102を含み、ネットワーク102は、分散型データ処理システム100内で互いに接続された様々なデバイスとコンピュータとの通信リンクを提供するために使用される媒体である。ネットワーク102は、有線、無線通信リンク、または光ファイバ・ケーブルなどの接続を含み得る。
示されている例では、サーバ104およびサーバ106が、ストレージ・ユニット108とともに、ネットワーク102に接続されている。さらに、クライアント110、112、および114もネットワーク102に接続されている。これらのクライアント110、112、および114は、例えばパーソナル・コンピュータ、ネットワーク・コンピュータ、または同様のものであるとよい。示されている例では、サーバ104が、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供する。クライアント110、112、および114は、示されている例では、サーバ104のクライアントである。分散型データ処理システム100は、示されていない追加のサーバ、クライアント、およびその他のデバイスを含んでもよい。
示されている例では、分散型データ処理システム100は、インターネットであり、ネットワーク102は、互いに通信するために伝送制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)プロトコル・スイートを使用する、ネットワークおよびゲートウェイの世界的規模の集合を表現している。インターネットの中心には、データおよびメッセージをルーティングする数千の商用、政府機関用、教育用、およびその他のコンピュータ・システムから成る主要ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。当然、分散型データ処理システム100は、例えばイントラネット、ローカル・エリア・ネットワーク(LAN:local area network)、広域ネットワーク(WAN:wide area network)、または同様のものなど、いくつかの異なるタイプのネットワークを含むようにも実装され得る。上記のように、図1は、本発明の種々の実施形態のアーキテクチャ上の制限としてではなく、例として意図されており、したがって、図1に示されている特定の構成要素は、本発明の例示実施形態が実装され得る環境に関する制限的なものと見なされてはならない。
例示実施形態では、コンピュータ・アーキテクチャは、ハードウェアおよびソフトウェアの組み合わせとして実装される。コンピュータ・アーキテクチャのソフトウェア部分は、マイクロコードまたはミリコードと呼ばれることもある。ハードウェアおよびソフトウェアの組み合わせは、命令セットおよびシステム・アーキテクチャを作成し、これに基づき、基本入出力システム(BIOS:Basic Input/Output System)、仮想マシン・モニタ(VMM:Virtual Machine Monitors)、ハイパーバイザ、アプリケーションなどのコンピュータのソフトウェアの残りが動作する。初期の組み合わせによって作成されるコンピュータ・アーキテクチャは、ごく少数しかないと考えられる定義済みインターフェイスを介する場合を除き、コンピュータ・ソフトウェア(BIOSなど)に対し不変である。
以下、図2を参照する。例示実施形態の側面がともに有利に利用され得るデータ処理システムのブロック図が示されている。図のように、データ処理システム200は、プロセッサ・ユニット211a〜211nを含む。プロセッサ・ユニット211a〜211nはそれぞれ、プロセッサおよびキャッシュ・メモリを含む。例えば、プロセッサ・ユニット211aは、プロセッサ212aおよびキャッシュ・メモリ213aを含み、プロセッサ・ユニット211nは、プロセッサ212nおよびキャッシュ・メモリ213nを含む。
プロセッサ・ユニット211a〜211nは、メイン・バス215に接続されている。メイン・バス215は、プロセッサ・ユニット211a〜211nおよびメモリ・カード223を含むシステム・プレーナ220をサポートしている。システム・プレーナ220はさらに、データ・スイッチ221およびメモリ・コントローラ/キャッシュ222を含む。メモリ・コントローラ/キャッシュ222は、複数のデュアル・インライン・メモリ・モジュール(DIMM:dual in−line memory module)を有するローカル・メモリ216を含むメモリ・カード223をサポートしている。
データ・スイッチ221は、ネイティブI/O(NIO:native I/O)プレーナ224内に位置するバス・ブリッジ217およびバス・ブリッジ218と接続している。図のように、バス・ブリッジ218は、システム・バス219を経由して、ペリフェラル・コンポーネント・インターコネクト(PCI:peripheral components interconnect)ブリッジ225および226と接続している。PCIブリッジ225は、PCIバス228を経由して様々なI/Oデバイスと接続している。図のように、ハード・ディスク236が、小型コンピュータ・システム・インターフェイス(SCSI:small computer system interface)ホスト・アダプタ230を経由してPCIバス228に接続されているとよい。グラフィックス・アダプタ231が、直接的または間接的にPCIバス228に接続されているとよい。PCIブリッジ226は、PCIバス227を経由して、ネットワーク・アダプタ234およびアダプタ・カード・スロット235a〜235nを介して外部データ・ストリームに対する接続を提供する。
業界標準アーキテクチャ(ISA:Industry standard architecture)バス229が、ISAブリッジ232を経由してPCIバス228と接続している。ISAブリッジ232は、シリアル接続シリアル1およびシリアル2を有するNIOコントローラ233を介して相互接続機能を提供する。データ処理システム200が対応する入力デバイスを経由してユーザからのデータ入力を受け取ることを可能にするために、フレキシブル・ディスク・ドライブ接続、キーボード接続、およびマウス接続が、NIOコントローラ233によって提供されている。さらに、ISAバス229に接続されている不揮発性RAM(NVRAM:non−volatile random−access memory)240は、電力供給問題などのシステム障害またはシステム故障から特定のタイプのデータを保護する不揮発性メモリを提供する。システム・ファームウェア241もISAバス229に接続されており、初期基本入出力システム(BIOS)機能を実装する。サービス・プロセッサ244が、ISAバス229に接続しており、システム診断またはシステム・サービスの機能性を提供する。
オペレーティング・システム(OS)は、ハード・ディスク236に記憶され、ハード・ディスク236はさらに、データ処理システムによって実行されるさらなるアプリケーション・ソフトウェアのストレージを提供するとよい。NVRAM240は、フィールド交換可能ユニット(FRU:field replaceable unit)の分離のために、システム変数およびエラー情報を記憶するよう使用される。システム起動中、ブートストラップ・プログラムが、オペレーティング・システムをロードし、オペレーティング・システムの実行を開始する。オペレーティング・システムをロードするために、ブートストラップ・プログラムはまず、オペレーティング・システム・カーネル・イメージをハード・ディスク236上に置き、OSカーネル・イメージをメモリ内にロードし、オペレーティング・システム・カーネルによって提供される先頭アドレスにジャンプする。典型的には、オペレーティング・システムは、データ処理システム内のランダム・アクセス・メモリ(RAM:random−access memory)内にロードされる。ロードおよび初期化が行われると、オペレーティング・システムは、プログラムの実行を制御し、リソース割り当て、スケジューリング、入出力制御、およびデータ管理などのサービスを提供するとよい。
例示実施形態は、いくつかの異なるハードウェア構成、ならびにブートストラップ・プログラムおよびオペレーティング・システムなどのソフトウェアを利用する、様々なデータ処理システムにおいて具現化され得る。データ処理システム200は、例えば、スタンドアロン・システム、またはローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)などのネットワークの一部としてもよい。上記のように、図2は、本発明の種々の実施形態のアーキテクチャ上の制限としてではなく、例として意図されており、したがって、図2に示されている特定の構成要素は、本発明の例示実施形態が実装され得る環境に関する制限的なものと見なされてはならない。
以下、図3を参照する。例示実施形態が実装され得る、例示的な論理分割されたプラットフォームのブロック図が示されている。論理分割されたプラットフォーム300内のハードウェアは、例えば、図2のデータ処理システム200のハードウェアを使用して実装されてもよい。
論理分割されたプラットフォーム300は、分割されたハードウェア330、オペレーティング・システム302、304、306、308、および仮想マシン・モニタ310を含む。オペレーティング・システム302、304、306、および308は、単一のオペレーティング・システムの複数のコピーであってもよく、または論理分割されたプラットフォーム300上で同時に実行する複数の異種オペレーティング・システムであってもよい。これらのオペレーティング・システムは、例えば、ハイパーバイザなどのパーティション管理ファームウェアなど、仮想化メカニズムとインターフェイスをとるよう設計されている、z/OS(IBM社の登録商標)を使用して実装されてもよい。z/OSは、これらの例示実施形態において単なる例として使用されている。当然、特定の実装に応じて、OS/400(IBM社の登録商標)、AIX(R)、およびLinux(R)など、他のタイプのオペレーティング・システムが使用されてもよい。オペレーティング・システム302、304、306、および308は、それぞれ論理パーティション303、305、307、および309に位置する。
ハイパーバイザ・ソフトウェアは、プラットフォームの実装に使用され得るソフトウェアの例であり(この例では、仮想マシン・モニタ310)、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手できる。ファームウェアは、例えば読み取り専用メモリ(ROM:read−only memory)、プログラム可能ROM(PROM:programmable ROM)、消去可能プログラム可能ROM(EPROM:erasable programmable ROM)、および電気的消去可能プログラム可能ROM(EEPROM:electrically erasable programmable ROM)など、電力がなくてもそのコンテンツを保持するメモリ・チップに記憶された、「ソフトウェア」である。
論理分割されたプラットフォーム300はさらに、システム・メモリ仮想化機能をIBM Power Systemsに提供するIBM(R)PowerVM(IBM社の登録商標)の高度なメモリ仮想化技術である、IBM(R)のPowerVM(IBM社の登録商標)Active Memory(TM)Sharingを使用して、複数の論理パーティションが物理メモリの共通のプールを共有できるようにすることもできる。IBM(R)Power Systems(TM)の物理メモリは、専用または共有モードのいずれかで、複数の論理パーティションに割り振られることが可能である。システム管理者は、一部の物理メモリをある論理パーティションに割り振り、一部の物理メモリを他の複数の論理パーティションにより共有されるプールに割り振る能力を有する。単一のパーティションは、専用または共有メモリのいずれかを有し得る。Active Memory(TM)Sharingは、必要システム・メモリを減らすこと、または既存システム上での追加の論理パーティションの作成を可能にすることによって、システム上でのメモリ利用度を上げるよう利用され得る。
論理パーティション303、305、307、および309はさらに、パーティション・ファームウェア・ローダ311、313、315、および317を含む。パーティション・ファームウェア・ローダ311、313、315、および317は、IPLまたは初期ブートストラップ・コード、IEEE−1275標準Open Firmware、およびインターナショナル・ビジネス・マシーンズ・コーポレーションから入手できるランタイム抽象化ソフトウェア(RTAS:runtime abstraction software)を使用して実装され得る。
論理パーティション303、305、307、および309がインスタンス化されると、ブートストラップ・コードのコピーが、仮想マシン・モニタ310によって論理パーティション303、305、307、および309内へロードされる。その後、ブートストラップ・コードに制御が移され、次にブートストラップ・コードは、open firmwareおよびRTASをロードする。続いて、論理パーティション303、305、307、および309に関連する、または割り振られているプロセッサが、論理パーティション・ファームウェアを実行するよう論理パーティションのメモリにディスパッチされる。
分割されたハードウェア330は、複数のプロセッサ332〜338、複数のシステム・メモリ・ユニット340〜346、複数の入出力(I/O:input/output)アダプタ348〜362、およびストレージ・ユニット370を含む。プロセッサ332〜338、メモリ・ユニット340〜346、NVRAMストレージ398、およびI/Oアダプタ348〜362はそれぞれ、論理分割されたプラットフォーム300内の複数の論理パーティション303、305、307、および309のうちの1つに割り振られるとよく、それぞれがオペレーティング・システム302、304、306、および308のうちの1つに対応する。
仮想マシン・モニタ310は、論理パーティション303、305、307、および309に関するいくつかの機能およびサービスを実行して、論理分割されたプラットフォーム300の分割をもたらし、実行する。仮想マシン・モニタ310は、基礎をなすハードウェアと等しい、ファームウェアで実装される仮想マシンである。したがって、仮想マシン・モニタ310は、独立したOSイメージ302、304、306、および308の同時実行を、論理分割されたプラットフォーム300のすべてのハードウェア・リソースを仮想化することによって可能にする。
サービス・プロセッサ390は、論理パーティション303、305、307、および309におけるプラットフォーム・エラーの処理などの様々なサービスを提供するために使用され得る。サービス・プロセッサ390はさらに、インターナショナル・ビジネス・マシーンズ・コーポレーションなどのベンダにエラーのレポートを返すサービス・エージェントとしての機能を果たしてもよい。種々の論理パーティションの動作は、ハードウェア・システム・コンソール380を介して制御され得る。ハードウェア・システム・コンソール380は、別個のデータ処理システムであり、このシステムからシステム管理者は、リソースを異なる論理パーティションに再割り当てすることを含む、様々な機能を実行することもできる。
例示実施形態は、通常動作を実現するために最低限必要なリソースを少し上回るリソースを用いて、単一のキュー・ペア(QP)、すなわち送信/受信ペアのみを最初に割り当てるよう、オペレーティング・システム(OS)ドライバを規定する。トラフィック・フローまたはワークロードが所定の閾値超に増えるのに従って、OSドライバは、必要に応じて追加のQPを動的に割り当てる。QPが実行中のOSドライバに追加され、アダプタに対して利用可能になるため、トラフィックは、イングレス、すなわち受信パス、およびイーグレス、すなわち送信パスの両方において、より多くの中央処理ユニット(CPU)にハッシュされ、パフォーマンスおよびCPU/メモリ・リソース使用量が効果的に拡大される。パフォーマンス拡大は、静的なディスクリプタ・カウントではなく追加のQPによって実現されるため、システム・リソースは、必要なくなれば削減されることもできる。トラフィック・フローおよびワークロードが、規定の最小閾値未満に下がるのに従って、OSドライバは、QPを除去し、通常動作の最小限のリソース利用まで再び低下するとよい。ワークロードまたはトラフィックが増えると、このサイクルが繰り返される。したがって、例示実施形態は、CPU利用およびアクティブ・メモリ・シェアリングのアフィニティを提供しながら、パフォーマンスのために調整する動的再構成を効果的に実現する。
図4は、例示実施形態による、主要な動作コンポーネントおよびその相互作用を示す例示のブロック図である。図4に示されている構成要素は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの任意の組み合わせにおいて実装され得る。一例示実施形態では、図4の構成要素は、1つ以上のデータ処理デバイスまたはシステムの1つ以上のプロセッサ上で実行されているソフトウェアとして実装される。
図4は、例示実施形態による、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供するメカニズムの例示的な実装を示す。データ処理システム400は、オペレーティング・システム404内にデバイス・ドライバ402を含む。デバイス・ドライバ402は、アプリケーション410およびネットワーク・アダプタ412が使用するメモリ408内に1つ以上のキュー・ペア406a〜406nを提供する。例示実施形態は、1つのデバイス・ドライバ402、1つのアプリケーション410、および1つのネットワーク・アダプタ412のみを示すが、当業者には当然のことながら、データ処理システム400は、複数のデバイス・ドライバ、複数のアプリケーション、および複数のネットワーク・アダプタをデータ処理システム400内に含むこともできる。
オペレーティング・システム404の初期化時、オペレーティング・システム404は、デバイス・ドライバ402を構成および初期化する。次に、デバイス・ドライバ402は、メモリ408内に、いくつかの受信ディスクリプタ/バッファおよびいくつかの送信ディスクリプタ/バッファを含むとよい初期キュー・ペア406aを割り当てる。続いてデバイス・ドライバ402は、トラフィックがネットワーク・アダプタ412に送られることができるように、ネットワーク・アダプタ412を起動する。動作中、キュー・ペア406aのみが初期化されているとき、デバイス・ドライバ402は、ネットワーク・アダプタ412へ送信されるトラフィックを受信し、トラフィックを、配信のためにネットワーク・アダプタ412上へ送る。続いてネットワーク・アダプタ412は、送信トラフィックを、サーバ416、サーバ418、クライアント420、クライアント422、または同様のものなどのデバイス上へ、ネットワーク424を経由して送る。反対に、ネットワーク・アダプタ412が、サーバ416、サーバ418、クライアント420、クライアント422、または同様のものなどのデバイスからデバイス・ドライバ402にネットワーク424を経由して送信されるトラフィックを受信すると、ネットワーク・アダプタ412は、オペレーティング・システム404による処理の割り込みを起こし、トラフィックは、デバイス・ドライバ402に送られる。キュー・ペア406a、および下記のようにさらに割り当てられるとよい406b〜406nはそれぞれ、それ自体の、関連する受信割り込みを有する。
デバイス・ドライバ402がキュー・ペア406aを割り当ててインスタンス化した後、デバイス・ドライバ402は、データ・フローおよびリソース利用可能性を介して、オペレーティング・システム404のワークロードを継続的に監視する。デバイス・ドライバ402は、送信/受信バイト・パー・セカンド、ネットワーク・アダプタ412によって送信および受信されているフロー制御フレームの数、ネットワーク・アダプタ412によって検出されるDMAオーバーラン(DMA overrun)の数、デバイス・ドライバ402によって検出される送信タイムアウト・イベントの数、割り込み毎にデバイス・ドライバ402によって処理される受信パケットの数、ソフトウェア・キュー上の送信パケットの数、または同様のものなどのパラメータを監視するとよい。デバイス・ドライバ402が、所定の高閾値を上回ることなどによって、ワークロード監視によりリソース不足の状況を検出すると、デバイス・ドライバ402は、キュー・ペア406b〜406nのうちの追加のキュー・ペアを動的に割り当てて初期化する。続いてデバイス・ドライバ402は、ネットワーク・アダプタ412内の受信側スケーリング(RSS)メカニズム414をプログラムし、キュー・ペア406aおよびキュー・ペア406b〜406nのうちの追加のキュー・ペアに関連する追加の処理エンジンの動的挿入を可能にする。続いてデバイス・ドライバ402は、キュー・ペア406aおよびキュー・ペア406b〜406nのうちの追加のキュー・ペアへの、送信タプル・ハッシングを有効化する。ネットワーク・アダプタ412による受信タプル・ハッシングおよび処理は、RSSメカニズム414をプログラムすることにより自動的に有効化される。デバイス・ドライバ402は、キュー・ペア406b〜406nのうちの利用可能なキュー・ペアがすべて消費されるまで、またはキュー・ペア406a〜406nがデータ処理システム400内の中央処理ユニットの数を上回るまで、キュー・ペア406b〜406nのうちのキュー・ペアを、まだ割り当ておよび初期化されていなければ、ワークロードによる必要に応じて追加し続ける。デバイス・ドライバ402はさらに、ネットワーク・アダプタ412内のRSSメカニズム414を再プログラムし、キュー・ペア406b〜406nのうちの新たなキュー・ペアが追加されるたびに、追加の処理エンジンの動的挿入を可能にし、さらにキュー・ペア406b〜406nのうちの新たなキュー・ペアへの送信タプル・ハッシングを有効化する。
デバイス・ドライバ402が、ワークロードが所定の低閾値を下回ることなどによってワークロードの減少を認識すると、デバイス・ドライバ402は、ネットワーク・アダプタ412内のRSSメカニズム414を動的に再プログラムし、キュー・ペア406a〜406nのうちの割り当てられているキュー・ペアの削除を可能にする。続いてデバイス・ドライバ402は、キュー・ペア406a〜406nのうちの削除されたキュー・ペアへの送信タプル・ハッシングを無効化する。キュー・ペア406a〜406nのうちの削除されたキュー・ペアが休止する(quiesce)と、デバイス・ドライバ402は、キュー・ペア406a〜406nのうちの削除されたキュー・ペアを除去し、その結果、キュー・ペア406a〜406nのうちの削除されたキュー・ペアによって使用されたメモリが解放される。ネットワーク・アダプタ412における受信タプル・ハッシングの有効化のように、ネットワーク・アダプタ412による受信タプル・ハッシングおよび処理は、RSSメカニズム414を再プログラムすることにより自動的に無効化される。
したがって、例示実施形態は、基礎をなすハードウェアの動的再構成によって、アクティブ・メモリ・シェアリング(AMS)および中央処理ユニット(CPU)利用のためのリソース・アフィニティを提供するメカニズムを提供し、パフォーマンスまたはサービスの中断なしに、変化するワークロードの要求に応じる。トラフィック・フローまたはワークロードが所定の閾値超に増えるのに従って、デバイス・ドライバは、必要に応じて追加のキュー・ペアを動的に割り当てる。トラフィック・フローおよびワークロードが所定の最小閾値未満に下がるのに従って、デバイス・ドライバは、キュー・ペアを除去し、通常動作の最小限のリソース利用まで再び低下するとよい。ワークロードまたはトラフィックが増加し、続いて減少すると、このサイクルが繰り返される。
当業者であれば当然のことであるが、本発明は、システム、方法、またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本願明細書においてすべて概して「回路」、「モジュール」もしくは「システム」と呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとり得る。さらに、本発明の側面は、コンピュータ使用可能プログラム・コードが具現化された任意の1つ以上のコンピュータ可読媒体(単数または複数)において具現化されたコンピュータ・プログラム製品の形態をとることもできる。
1つ以上のコンピュータ可読媒体(単数または複数)の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体とされ得る。コンピュータ可読ストレージ媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体のシステム、装置、デバイス、または前述のものの任意の適切な組み合わせとされ得る。コンピュータ可読媒体のより具体的な例(包括的でないリスト)には、1つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CDROM:compact disc read−only memory)、光学式ストレージ・デバイス、磁気ストレージ・デバイス、または前述のものの任意の適切な組み合わせが含まれるであろう。この文書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形の媒体とされ得る。
コンピュータ可読信号媒体は、例えば、ベースバンドに、または搬送波の一部として、コンピュータ可読プログラム・コードが具現化された伝播データ信号を含み得る。そのような伝播信号は、電磁気、光学、またはその任意の適切な組み合わせを含むがこれらに限定はされない、様々な形態のいずれかをとってよい。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体でなく、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムの伝達、伝播、または搬送をすることができる、任意のコンピュータ可読媒体としてよい。
コンピュータ可読媒体上に具現化されたコンピュータ・コードは、無線、有線、光ファイバ・ケーブル、無線周波数(RF:radio frequency)など、またはその任意の適切な組み合わせを含むがこれらに限定はされない、任意の適切な媒体を使用して送られてもよい。
本発明の側面の動作を実行するコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++または同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されることも、部分的にユーザのコンピュータ上で実行されることも、または部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で実行されることも、または完全にリモート・コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意の種類のネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、または、(例えば、インターネット・サービス・プロバイダを使用しインターネットを介して)外部コンピュータに接続されてもよい。
本発明の側面について、本発明の例示実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して以下に記載する。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。マシンを生じるよう、こうしたコンピュータ・プログラム命令が、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサにより実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する手段を作り出すようにすることもできる。
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに指示することができるこうしたコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する命令を含む製品を生じるようにすることもできる。
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータで実装されるプロセスを生じさせ、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。
以下、図5を参照する。この図面は、例示実施形態による、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供する例示の動作の概要を示すフローチャートを提供する。動作が開始するとき、構成および初期化されたデバイス・ドライバが、メモリ内に初期キュー・ペアを割り当てる(ステップ502)。続いてデバイス・ドライバは、トラフィックがネットワーク・アダプタに送られることができるように、ネットワーク・アダプタを起動する(ステップ504)。
デバイス・ドライバが、キュー・ペアを割り当ててインスタンス化した後、デバイス・ドライバは、データ・フローおよびリソース利用可能性を介して、オペレーティング・システムのワークロードを継続的に監視する(ステップ506)。デバイス・ドライバは、送信/受信バイト・パー・セカンド、ネットワーク・アダプタによって送信および受信されているフロー制御フレームの数、ネットワーク・アダプタによって検出されるDMAオーバーランの数、デバイス・ドライバによって検出される送信タイムアウト・イベントの数、割り込み毎にデバイス・ドライバによって処理される受信パケットの数、ソフトウェア・キュー上の送信パケットの数、または同様のものなどのパラメータを監視するとよい。続いてデバイス・ドライバは、リソース不足状況を示す、所定の高閾値の超過が生じたかどうかを、ワークロード監視により判断する(ステップ508)。ステップ508にて、ワークロードが所定の高閾値より高くなっていれば、デバイス・ドライバは、メモリ内に追加のキュー・ペアを動的に割り当てて初期化する(ステップ510)。続いてデバイス・ドライバは、ネットワーク・アダプタ内のRSSメカニズムをプログラム/再プログラムして追加の処理エンジンの動的挿入を可能にし(ステップ512)、デバイス・ドライバは、新たに割り当てられたキュー・ペアへの送信タプル・ハッシングを有効化し(ステップ514)、動作はその後、ステップ506に戻る。
ステップ508にて、ワークロードが所定の高閾値より高くなっていなければ、デバイス・ドライバは、ワークロードが所定の低閾値を下回ったかどうかを判断する(ステップ516)。ステップ516にて、デバイス・ドライバが、ワークロードは所定の低閾値を下回っていないと判断すると、動作はステップ506に戻る。ステップ516にて、デバイス・ドライバが、ワークロードが所定の低閾値を下回ったと判断すると、デバイス・ドライバは、割り当てられているキュー・ペアが残り1つのみあるかどうかを判断する(ステップ518)。ステップ518にて、デバイス・ドライバが、1つのみのキュー・ペアが残っていると判断すると、動作はステップ506に戻る。ステップ518にて、デバイス・ドライバが、2つ以上のキュー・ペアが残っていると判断すると、デバイス・ドライバは、ネットワーク・アダプタ内のRSSメカニズムを動的に再プログラムして、割り当てられているキュー・ペアの削除を可能にするとよい(ステップ520)。続いてデバイス・ドライバは、特定されたキュー・ペアへの送信タプル・ハッシングを無効化する(ステップ522)。デバイス・ドライバは続いて、特定されたキュー・ペタへのワークロードが休止したかどうかを判断する(ステップ524)。ステップ524にて、デバイス・ドライバが、特定されたキュー・ペアへのワークロードが休止していないと判断すると、動作はステップ524に戻る。ステップ524にて、デバイス・ドライバが、特定されたキュー・ペアへのワークロードが休止したと判断すると、デバイス・ドライバは、メモリから特定されたキュー・ペアを除去し(ステップ526)、その結果、特定されたキュー・ペアによって使用されたメモリが解放される。動作は続いて、ステップ506に戻る。
各図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性、および動作を示す。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能(単数または複数)を実装する1つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表すこともできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている2つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェア・ベース・システム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。
したがって、例示実施形態は、基礎をなすハードウェアの動的再構成によってアクティブ・メモリ・シェアリング(AMS)および中央処理ユニット(CPU)利用のためのリソース・アフィニティを提供するメカニズムを提供し、パフォーマンスまたはサービスの中断なしに、変化するワークロードの要求に応じる。トラフィック・フローまたはワークロードが、所定の閾値超に増えるのに従って、デバイス・ドライバは、必要に応じて追加のキュー・ペアを動的に割り当てる。トラフィック・フローおよびワークロードが、所定の最小閾値未満に下がるのに従って、デバイス・ドライバは、キュー・ペアを除去し、通常動作の最小限のリソース利用まで再び低下するとよい。ワークロードまたはトラフィックが増加し、続いて減少すると、このサイクルが繰り返される。
上述のとおり、当然のことながら、例示実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアおよびソフトウェア両方の構成要素を含む実施形態の形態をとり得る。例示の一実施形態では、例示実施形態のメカニズムは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアまたはプログラム・コードにおいて実装される。
プログラム・コードの記憶もしくは実行またはその両方に適したデータ処理システムは、システム・バスを介してメモリ要素に直接または間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、大容量ストレージ、および、実行中にコードが大容量ストレージから読み出されなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的なストレージとなるキャッシュ・メモリを含むことができる。
入出力、すなわちI/Oデバイス(限定はされないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む)は、直接、または介在するI/Oコントローラを介して、システムに結合されることが可能である。ネットワーク・アダプタもシステムに結合されて、データ処理システムが、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに、介在するプライベートまたはパブリック・ネットワークを介して結合された状態となることを可能にしてもよい。モデム、ケーブル・モデム、およびイーサネット(R)・カードが、現在利用可能なタイプのネットワーク・アダプタのごく一部である。
本発明の記載は、例示および説明のために示されたものであり、包括的であることも、開示された形態の発明に限定されることも目的としていない。当業者には、多数の変更および変形が明らかであろう。実施形態は、本発明の原理、実際の応用を最もよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。

Claims (21)

  1. データ処理システムにおいて、動的再構成によってマルチキュー・ネットワーク・アダプタのリソース・アフィニティを提供する方法であって、
    前記データ処理システム内のデバイス・ドライバによって、メモリ内に初期キュー・ペアを割り当てるステップと、
    前記デバイス・ドライバによって、前記データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断するステップと、
    前記ワークロードが前記所定の高閾値より高くなることに応じて、前記デバイス・ドライバによって、前記メモリ内に追加のキュー・ペアを割り当て、初期化するステップと、
    前記追加のキュー・ペアに関連する追加の処理エンジンの動的挿入を可能にするために、前記デバイス・ドライバによって、ネットワーク・アダプタ内の受信側スケーリング(RSS)メカニズムをプログラムするステップと、
    前記デバイス・ドライバによって、前記追加のキュー・ペアへの送信タプル・ハッシングを有効化するステップと、
    を含む方法。
  2. 前記割り当ておよび初期化、プログラム、ならびに有効化ステップを、前記デバイス・ドライバによって、前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなるたびに繰り返すステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記追加のキュー・ペアに関連する前記追加の処理エンジンの動的挿入を可能にするために、前記ネットワーク・アダプタ内の前記受信側スケーリング(RSS)メカニズムをプログラムするステップは、
    前記デバイス・ドライバによって、前記初期キュー・ペアへの送信タプル・ハッシングを有効化するステップ
    を含む、請求項1に記載の方法。
  4. 前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなったかどうかを判断するステップは、前記デバイス・ドライバによって、データ・フローおよびリソース利用可能性を介して前記データ処理システムの前記ワークロードを監視することによって実行される、請求項1に記載の方法。
  5. 前記デバイス・ドライバは、前記ワークロードに関連する少なくとも1つのパラメータを監視し、前記少なくとも1つのパラメータは、送信/受信バイト・パー・セカンド、前記ネットワーク・アダプタによって送信および受信されているフロー制御フレームの数、前記ネットワーク・アダプタによって検出されるDMAオーバーランの数、前記デバイス・ドライバによって検出される送信タイムアウト・イベントの数、割り込み毎に前記デバイス・ドライバによって処理される受信パケットの数、またはソフトウェア・キュー上の送信パケットの数のうちの少なくとも1つである、請求項4に記載の方法。
  6. 前記デバイス・ドライバによって、前記ワークロードが所定の低閾値を下回ったかどうかを判断するステップと、
    前記ワークロードが前記所定の低閾値を下回るのに応じて、前記メモリ内に割り当てられているキュー・ペアが残り1つのみあるかどうかを、前記デバイス・ドライバによって判断するステップと、
    前記メモリ内に割り当てられているキュー・ペアが2つ以上残っていることに応じて、割り当てられているキュー・ペアの削除を可能にするために、前記デバイス・ドライバによって前記ネットワーク・アダプタ内の前記RSSメカニズムを再プログラムするステップと、
    特定されたキュー・ペアへの送信タプル・ハッシングを、前記デバイス・ドライバによって無効化するステップと、
    前記特定されたキュー・ペアへの前記ワークロードが休止したかどうかを、前記デバイス・ドライバによって判断するステップと、
    前記特定されたキュー・ペアへの前記ワークロードが休止することに応じて、前記特定されたキュー・ペアを前記デバイス・ドライバによってメモリから除去し、その結果、前記特定されたキュー・ペアによって使用されたメモリを解放するステップと、
    をさらに含む、請求項1に記載の方法。
  7. 前記特定されたキュー・ペアをメモリから除去し、その結果、前記特定されたキュー・ペアによって使用されたメモリを解放するステップより前に、前記特定されたキュー・ペアへの前記ワークロードが休止するのを、前記特定されたキュー・ペアへの前記ワークロードが休止しないことに応じて、前記デバイス・ドライバによって待つステップ
    をさらに含む、請求項6に記載の方法。
  8. コンピュータ可読プログラムが記憶されているコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、コンピューティング・デバイス上で実行されると、前記コンピューティング・デバイスに、
    メモリ内に初期キュー・ペアを割り当てること、
    前記データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断すること、
    前記ワークロードが前記所定の高閾値より高くなることに応じて、前記メモリ内に追加のキュー・ペアを割り当て、初期化すること、
    前記追加のキュー・ペアに関連する追加の処理エンジンの動的挿入を可能にするために、ネットワーク・アダプタ内の受信側スケーリング(RSS)メカニズムをプログラムすること、および
    前記追加のキュー・ペアへの送信タプル・ハッシングを有効化すること
    を行わせる、コンピュータ・プログラム製品。
  9. 前記コンピュータ可読プログラムは、前記コンピューティング・デバイスに、
    割り当ておよび初期化、プログラム、ならびに有効化のための前記コンピュータ可読プログラムを、前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなるたびに繰り返すこと
    をさらに行わせる、請求項8に記載のコンピュータ・プログラム製品。
  10. 前記追加のキュー・ペアに関連する前記追加の処理エンジンの動的挿入を可能にするために、前記ネットワーク・アダプタ内の前記受信側スケーリング(RSS)メカニズムをプログラムするための前記コンピュータ可読プログラムは、前記コンピューティング・デバイスに、
    前記初期キュー・ペアへの送信タプル・ハッシングを有効化すること
    をさらに行わせる、請求項8に記載のコンピュータ・プログラム製品。
  11. 前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなったかどうかを判断するための前記コンピュータ可読プログラムは、データ・フローおよびリソース利用可能性を介して前記データ処理システムの前記ワークロードを監視することを、前記コンピューティング・デバイスにさらに行わせるコンピュータ可読プログラムによって実行される、請求項8に記載のコンピュータ・プログラム製品。
  12. 前記コンピュータ可読プログラムは、前記ワークロードに関連する少なくとも1つのパラメータを監視することを、前記コンピューティング・デバイスにさらに行わせ、前記少なくとも1つのパラメータは、送信/受信バイト・パー・セカンド、前記ネットワーク・アダプタによって送信および受信されているフロー制御フレームの数、前記ネットワーク・アダプタによって検出されるDMAオーバーランの数、前記デバイス・ドライバによって検出される送信タイムアウト・イベントの数、割り込み毎に前記デバイス・ドライバによって処理される受信パケットの数、またはソフトウェア・キュー上の送信パケットの数のうちの少なくとも1つである、請求項11に記載のコンピュータ・プログラム製品。
  13. 前記コンピュータ可読プログラムは、前記コンピューティング・デバイスに、
    前記ワークロードが所定の低閾値を下回ったかどうかを判断すること、
    前記ワークロードが前記所定の低閾値を下回るのに応じて、前記メモリ内に割り当てられているキュー・ペアが残り1つのみあるかどうかを判断すること、
    前記メモリ内に割り当てられているキュー・ペアが2つ以上残っていることに応じて、割り当てられているキュー・ペアの削除を可能にするために前記ネットワーク・アダプタ内の前記RSSメカニズムを再プログラムすること、
    特定されたキュー・ペアへの送信タプル・ハッシングを無効化すること、
    前記特定されたキュー・ペアへの前記ワークロードが休止したかどうかを判断すること、および、
    前記特定されたキュー・ペアへの前記ワークロードが休止することに応じて、前記特定されたキュー・ペアをメモリから除去し、その結果、前記特定されたキュー・ペアによって使用されたメモリを解放すること
    をさらに行わせる、請求項8に記載のコンピュータ・プログラム製品。
  14. 前記コンピュータ可読プログラムは、前記コンピューティング・デバイスに、
    前記特定されたキュー・ペアをメモリから除去し、その結果、前記特定されたキュー・ペアによって使用されたメモリを解放することより前に、前記特定されたキュー・ペアへの前記ワークロードが休止するのを、前記特定されたキュー・ペアへの前記ワークロードが休止しないことに応じて待つこと
    をさらに行わせる、請求項13に記載のコンピュータ・プログラム製品。
  15. プロセッサと、
    前記プロセッサに結合されたメモリと、
    を含む装置であって、前記メモリは、命令を含み、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
    メモリ内に初期キュー・ペアを割り当てること、
    前記データ処理システムのワークロードが所定の高閾値より高くなったかどうかを判断すること、
    前記ワークロードが前記所定の高閾値より高くなることに応じて、前記メモリ内に追加のキュー・ペアを割り当て、初期化すること、
    前記追加のキュー・ペアに関連する追加の処理エンジンの動的挿入を可能にするために、ネットワーク・アダプタ内の受信側スケーリング(RSS)メカニズムをプログラムすること、および
    前記追加のキュー・ペアへの送信タプル・ハッシングを有効化すること
    を行わせる、装置。
  16. 前記命令は、前記プロセッサに、
    割り当ておよび初期化、プログラム、ならびに有効化のための前記コンピュータ可読プログラムを、前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなるたびに繰り返すこと
    をさらに行わせる、請求項15に記載の装置。
  17. 前記追加のキュー・ペアに関連する前記追加の処理エンジンの動的挿入を可能にするために、前記ネットワーク・アダプタ内の前記受信側スケーリング(RSS)メカニズムをプログラムするための前記命令は、前記プロセッサに、
    前記初期キュー・ペアへの送信タプル・ハッシングを有効化すること
    をさらに行わせる、請求項15に記載の装置。
  18. 前記データ処理システムの前記ワークロードが前記所定の高閾値より高くなったかどうかを判断するための前記命令は、データ・フローおよびリソース利用可能性を介して前記データ処理システムの前記ワークロードを監視することを前記プロセッサにさらに行わせる命令によって実行される、請求項15に記載の装置。
  19. 前記命令は、前記ワークロードに関連する少なくとも1つのパラメータを監視することを前記プロセッサにさらに行わせ、前記少なくとも1つのパラメータは、送信/受信バイト・パー・セカンド、前記ネットワーク・アダプタによって送信および受信されているフロー制御フレームの数、前記ネットワーク・アダプタによって検出されるDMAオーバーランの数、前記デバイス・ドライバによって検出される送信タイムアウト・イベントの数、割り込み毎に前記デバイス・ドライバによって処理される受信パケットの数、またはソフトウェア・キュー上の送信パケットの数のうちの少なくとも1つである、請求項18に記載の装置。
  20. 前記命令は、前記プロセッサに、
    前記ワークロードが所定の低閾値を下回ったかどうかを判断すること、
    前記ワークロードが前記所定の低閾値を下回るのに応じて、前記メモリ内に割り当てられているキュー・ペアが残り1つのみあるかどうかを判断すること、
    前記メモリ内に割り当てられているキュー・ペアが2つ以上残っていることに応じて、割り当てられているキュー・ペアの削除を可能にするために前記ネットワーク・アダプタ内の前記RSSメカニズムを再プログラムすること、
    特定されたキュー・ペアへの送信タプル・ハッシングを無効化すること、
    前記特定されたキュー・ペアへの前記ワークロードが休止したかどうかを判断すること、および、
    前記特定されたキュー・ペアへの前記ワークロードが休止することに応じて、前記特定されたキュー・ペアをメモリから除去し、その結果、前記特定されたキュー・ペアによって使用されたメモリを解放すること
    をさらに行わせる、請求項15に記載の装置。
  21. 前記命令は、前記プロセッサに、
    前記特定されたキュー・ペアをメモリから除去し、その結果、前記特定されたキュー・ペアによって使用されたメモリを解放することより前に、前記特定されたキュー・ペアへの前記ワークロードが休止するのを、前記特定されたキュー・ペアへの前記ワークロードが休止しないことに応じて待つこと
    をさらに行わせる、請求項20に記載の装置。
JP2013505372A 2010-04-23 2011-03-01 マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ Expired - Fee Related JP5689526B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/766,282 US8589941B2 (en) 2010-04-23 2010-04-23 Resource affinity via dynamic reconfiguration for multi-queue network adapters
US12/766,282 2010-04-23
PCT/EP2011/052992 WO2011131400A1 (en) 2010-04-23 2011-03-01 Resource affinity via dynamically adding or removing queue pairs for network adapters with receive side scaling (rss) software

Publications (2)

Publication Number Publication Date
JP2013530573A true JP2013530573A (ja) 2013-07-25
JP5689526B2 JP5689526B2 (ja) 2015-03-25

Family

ID=43770668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013505372A Expired - Fee Related JP5689526B2 (ja) 2010-04-23 2011-03-01 マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ

Country Status (7)

Country Link
US (3) US8589941B2 (ja)
JP (1) JP5689526B2 (ja)
CN (1) CN102859491B (ja)
DE (1) DE112011100392B4 (ja)
GB (1) GB2492433B (ja)
TW (1) TW201218083A (ja)
WO (1) WO2011131400A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015043196A (ja) * 2013-08-26 2015-03-05 ヴィーエムウェア, インコーポレイテッドVMware, Inc. トラフィック及び負荷を認識する動的なキュー管理
JP2020201957A (ja) * 2019-06-10 2020-12-17 三星電子株式会社Samsung Electronics Co.,Ltd. 入出力キューペアを管理する方法及びシステム
USRE49804E1 (en) 2010-06-23 2024-01-16 Telefonaktiebolaget Lm Ericsson (Publ) Reference signal interference management in heterogeneous network deployments

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589941B2 (en) * 2010-04-23 2013-11-19 International Business Machines Corporation Resource affinity via dynamic reconfiguration for multi-queue network adapters
KR101699770B1 (ko) * 2010-09-06 2017-02-13 삼성전자주식회사 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법
US8627333B2 (en) * 2011-08-03 2014-01-07 International Business Machines Corporation Message queuing with flexible consistency options
US8842562B2 (en) * 2011-10-25 2014-09-23 Dell Products, Lp Method of handling network traffic through optimization of receive side scaling
US9736211B2 (en) * 2012-08-27 2017-08-15 Vmware, Inc. Method and system for enabling multi-core processing of VXLAN traffic
US9164809B2 (en) * 2012-09-04 2015-10-20 Red Hat Israel, Ltd. Virtual processor provisioning in virtualized computer systems
US9189260B2 (en) 2012-09-27 2015-11-17 International Business Machines Corporation Resource allocation for virtual machines and logical partitions
JP6033183B2 (ja) * 2013-07-31 2016-11-30 京セラドキュメントソリューションズ株式会社 画像形成装置、及び画像形成装置の起動方法
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
US9952885B2 (en) 2013-08-14 2018-04-24 Nicira, Inc. Generation of configuration files for a DHCP module executing within a virtualized container
US9323544B2 (en) 2013-10-09 2016-04-26 International Business Machines Corporation Dynamic reconfiguration of queue pairs
CN103942097B (zh) * 2014-04-10 2017-11-24 华为技术有限公司 一种数据处理方法、装置及具备相应装置的计算机
US9495217B2 (en) * 2014-07-29 2016-11-15 International Business Machines Corporation Empirical determination of adapter affinity in high performance computing (HPC) environment
US9465643B1 (en) * 2015-06-04 2016-10-11 Dell Products, L.P. Systems and methods for monitoring a primary operating system (OS) and/or migrating data using an OS hypervisor
CN104991829B (zh) * 2015-06-30 2018-01-23 广东欧珀移动通信有限公司 管理移动终端内存的方法和相关设备
US10795608B2 (en) 2016-02-19 2020-10-06 Hitachi, Ltd. Computer, communication driver, and communication control method
US10484515B2 (en) 2016-04-29 2019-11-19 Nicira, Inc. Implementing logical metadata proxy servers in logical networks
US10841273B2 (en) 2016-04-29 2020-11-17 Nicira, Inc. Implementing logical DHCP servers in logical networks
CN106407055B (zh) * 2016-09-13 2019-09-24 郑州云海信息技术有限公司 一种RSS Key值离散性评价方法及系统
US10481951B2 (en) * 2016-11-15 2019-11-19 Red Hat Israel, Ltd. Multi-queue device assignment for application groups
CN106789152A (zh) * 2016-11-17 2017-05-31 东软集团股份有限公司 基于多队列网卡的处理器扩展方法及装置
US10554554B2 (en) 2016-12-06 2020-02-04 Microsoft Technology Licensing, Llc Hybrid network processing load distribution in computing systems
US10715424B2 (en) 2016-12-06 2020-07-14 Microsoft Technology Licensing, Llc Network traffic management with queues affinitized to one or more cores
US10826841B2 (en) 2016-12-06 2020-11-03 Microsoft Technology Licensing, Llc Modification of queue affinity to cores based on utilization
US10802878B2 (en) * 2017-03-31 2020-10-13 Bmc Software, Inc. Phased start and stop of resources in a mainframe environment
CN107247626A (zh) * 2017-06-14 2017-10-13 山东开创云软件有限公司 一种适用于高并发业务模块调度的方法
CN111127293B (zh) * 2018-10-31 2024-04-26 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和计算机程序产品
JP7070372B2 (ja) * 2018-11-27 2022-05-18 日本電信電話株式会社 トラフィックモニタリング方法、トラフィックモニタリング装置、及びプログラム
CN109586965A (zh) * 2018-12-04 2019-04-05 郑州云海信息技术有限公司 一种网卡rss自动配置方法、装置、终端及存储介质
US11182205B2 (en) * 2019-01-02 2021-11-23 Mellanox Technologies, Ltd. Multi-processor queuing model
US11144226B2 (en) 2019-04-11 2021-10-12 Samsung Electronics Co., Ltd. Intelligent path selection and load balancing
US11240294B2 (en) 2019-08-23 2022-02-01 Samsung Electronics Co., Ltd. Systems and methods for spike detection and load balancing resource management
US11509578B2 (en) * 2019-12-13 2022-11-22 Cisco Technology, Inc. Flexible policy semantics extensions using dynamic tagging and manifests
CN113759891A (zh) * 2020-08-17 2021-12-07 北京京东乾石科技有限公司 参数确定的方法、装置、电子设备和存储介质
CN115469963A (zh) * 2021-06-10 2022-12-13 华为技术有限公司 一种多线程转发的负载均衡方法及相关装置
US11860784B1 (en) * 2022-06-27 2024-01-02 Advanced Micro Devices, Inc. Live profile-driven cache aging policies

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2007257097A (ja) * 2006-03-22 2007-10-04 Nec Corp 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
JP2008060700A (ja) * 2006-08-29 2008-03-13 Oki Electric Ind Co Ltd バッファ制御装置及びバッファ制御方法
WO2009027300A2 (en) * 2007-08-24 2009-03-05 International Business Machines Corporation Allocating network adapter resources among logical partitions
US20110142064A1 (en) * 2009-12-15 2011-06-16 Dubal Scott P Dynamic receive queue balancing
US20110153935A1 (en) * 2009-12-17 2011-06-23 Yadong Li Numa-aware scaling for network devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7100000B1 (en) * 1999-05-28 2006-08-29 International Business Machines Corporation System and methods for processing audio using multiple speech technologies
HU228286B1 (en) * 1999-09-28 2013-02-28 Ibm Method system and computer program for workload management in a computing environment
US20030067874A1 (en) 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
US7307998B1 (en) 2002-08-27 2007-12-11 3Com Corporation Computer system and network interface supporting dynamically optimized receive buffer queues
US7089378B2 (en) 2003-03-27 2006-08-08 Hewlett-Packard Development Company, L.P. Shared receive queues
CN1327677C (zh) * 2003-11-21 2007-07-18 清华大学 基于ecn且带预测验证的拥塞控制方法
US7448044B1 (en) 2005-02-02 2008-11-04 Sun Microsystems, Inc. Systems and methods for efficient queue pair number re-use
US7548513B2 (en) 2005-02-17 2009-06-16 Intel Corporation Techniques to provide recovery receive queues for flooded queues
US7363399B2 (en) * 2005-08-17 2008-04-22 International Business Machines Corporation Method, apparatus and computer program product providing storage network dynamic tuning of I/O flow with Queue Depth
CN100418313C (zh) * 2005-12-21 2008-09-10 中国科学院计算技术研究所 适于带宽变化的链路分层共享和管理域的带宽重分配方法
US7715428B2 (en) 2007-01-31 2010-05-11 International Business Machines Corporation Multicore communication processing
US8160085B2 (en) 2007-12-21 2012-04-17 Juniper Networks, Inc. System and method for dynamically allocating buffers based on priority levels
US8208396B2 (en) 2009-05-12 2012-06-26 International Business Machines Corporation Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter
US8266290B2 (en) * 2009-10-26 2012-09-11 Microsoft Corporation Scalable queues on a scalable structured storage system
US8131772B2 (en) * 2009-12-04 2012-03-06 Unisys Corporation Method and apparatus for improving the performance of object-oriented queues
US8589941B2 (en) * 2010-04-23 2013-11-19 International Business Machines Corporation Resource affinity via dynamic reconfiguration for multi-queue network adapters

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2007257097A (ja) * 2006-03-22 2007-10-04 Nec Corp 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
JP2008060700A (ja) * 2006-08-29 2008-03-13 Oki Electric Ind Co Ltd バッファ制御装置及びバッファ制御方法
WO2009027300A2 (en) * 2007-08-24 2009-03-05 International Business Machines Corporation Allocating network adapter resources among logical partitions
US20110142064A1 (en) * 2009-12-15 2011-06-16 Dubal Scott P Dynamic receive queue balancing
US20110153935A1 (en) * 2009-12-17 2011-06-23 Yadong Li Numa-aware scaling for network devices

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE49804E1 (en) 2010-06-23 2024-01-16 Telefonaktiebolaget Lm Ericsson (Publ) Reference signal interference management in heterogeneous network deployments
JP2015043196A (ja) * 2013-08-26 2015-03-05 ヴィーエムウェア, インコーポレイテッドVMware, Inc. トラフィック及び負荷を認識する動的なキュー管理
US9571426B2 (en) 2013-08-26 2017-02-14 Vmware, Inc. Traffic and load aware dynamic queue management
US9843540B2 (en) 2013-08-26 2017-12-12 Vmware, Inc. Traffic and load aware dynamic queue management
US10027605B2 (en) 2013-08-26 2018-07-17 Vmware, Inc. Traffic and load aware dynamic queue management
JP2020201957A (ja) * 2019-06-10 2020-12-17 三星電子株式会社Samsung Electronics Co.,Ltd. 入出力キューペアを管理する方法及びシステム

Also Published As

Publication number Publication date
WO2011131400A1 (en) 2011-10-27
US20110265095A1 (en) 2011-10-27
JP5689526B2 (ja) 2015-03-25
DE112011100392B4 (de) 2019-02-21
CN102859491B (zh) 2016-01-20
TW201218083A (en) 2012-05-01
GB2492433A (en) 2013-01-02
DE112011100392T5 (de) 2012-12-20
US20120210337A1 (en) 2012-08-16
CN102859491A (zh) 2013-01-02
US20150095472A1 (en) 2015-04-02
GB201204440D0 (en) 2012-04-25
US8954997B2 (en) 2015-02-10
GB2492433B (en) 2017-06-21
US8589941B2 (en) 2013-11-19

Similar Documents

Publication Publication Date Title
JP5689526B2 (ja) マルチキュー・ネットワーク・アダプタの動的再構成によるリソース・アフィニティ
US9811346B2 (en) Dynamic reconfiguration of queue pairs
US8078824B2 (en) Method for dynamic load balancing on partitioned systems
US7484029B2 (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US20180157519A1 (en) Consolidation of idle virtual machines
JP5669851B2 (ja) 論理的にパーティション化されたシステムにおいてパーティション間の効率的なコミュニケーションを行うための装置、方法、及びコンピュータ・プログラム
US20110252419A1 (en) Dynamic network adapter queue pair allocation
US9424061B2 (en) Bandwidth-efficient virtual machine image delivery
US9471368B2 (en) Sharing resources allocated to an entitled virtual machine
WO2018173300A1 (ja) I/o制御方法およびi/o制御システム
US20240020174A1 (en) Memory disaggregation in a multi-node environment
de Lacerda Ruivo et al. Efficient High-Performance Computing with Infiniband Hardware Virtualization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140829

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140930

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: 20150106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150128

R150 Certificate of patent or registration of utility model

Ref document number: 5689526

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees