JP5257816B2 - コンテキストスイッチサンプリング - Google Patents

コンテキストスイッチサンプリング Download PDF

Info

Publication number
JP5257816B2
JP5257816B2 JP2010088905A JP2010088905A JP5257816B2 JP 5257816 B2 JP5257816 B2 JP 5257816B2 JP 2010088905 A JP2010088905 A JP 2010088905A JP 2010088905 A JP2010088905 A JP 2010088905A JP 5257816 B2 JP5257816 B2 JP 5257816B2
Authority
JP
Japan
Prior art keywords
hardware event
event counter
thread
value
hardware
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.)
Expired - Fee Related
Application number
JP2010088905A
Other languages
English (en)
Other versions
JP2010244552A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2010244552A publication Critical patent/JP2010244552A/ja
Application granted granted Critical
Publication of JP5257816B2 publication Critical patent/JP5257816B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、概してマイクロプロセッサの分野に関する。特に、プロセッサにおけるハードウェアイベントのトリガーに基づいたプロセス又はスレッドイベントのコンテキストスイッチサンプリングに関する。
マルチタスク、マルチプロセッシング及び/又はマルチスレッドシステムでは、性能測定規準の監視が複雑になる。時間ベースのサンプリング又はイベントベースのサンプリングのような従来使用されてきた技術では、一貫した測定用レギュラーグリッドを用いて、アクティビティが時に規則的になるようなアプリケーションの振る舞いの概要及び特徴を把握していた。
また、従来、特定プロセスのコンテキスト内のアクティビティを監視するには、特別に装備されるバージョンのオペレーティング・システム(OS)を必要としていた。これらの技術は、特別に装備された機器を監視しなければならない上に、関係する特定プロセスのコンテキストにおいて望まれる測定基準も監視しなければならい。したがって、従来の技術で得られる結果は、他のプロセス、スレッド又はOSの測定から発生するアクティビティにより、悪影響を受けていた。
他のプロセス及び/又はスレッドから発生したイベントによる影響を回避し、マルチタスク、マルチプロセッシング及び/又はマルチスレッドシステムにおける性能を効率的に監視する方法は、今まで十分に研究されていない。
本発明が添付の図面を参照して例示されるが、本発明はこれら図に限定されるものではない。
コンテキストスイッチサンプリングを行うためのマルチプロセッシングシステムの一実施形態を示す。
コンテキストスイッチサンプリングを実行するプロセスの一実施形態を示すフローチャートである。
コンテキストスイッチサンプリングを実行するプロセスの他の実施形態を示すフローチャートである。
以下、コンピュータシステムにおける性能監視の方法を説明する。本発明のある実施形態において、アドレス可能なメモリは、コンテキストスイッチサンプリングを行うためのデータ及び命令を記憶している。プロセッサは、監視を行うためのハードウェアイベントカウンターを含み、アドレス可能なメモリと連結して命令にアクセスし、当該命令に応じて、プロセッサが、第1のハードウェアイベントカウンターで第1ハードウェアイベントの発生、及び第2のハードウェアイベントカウンターで第2ハードウェアイベントの発生をカウントする。第1ハードウェアイベントの発生が所定回数カウントされた後、コンテキストスイッチが発生したことが判断可能となる。そして、第2のハードウェアイベントカウンターがサンプリングされ、ハードウェアイベントカウンターはリセットされる。また、ある実施形態において、プロセッサは、第1のハードウェアイベントカウンターでセグメントレジスタの読み込みイベントの発生をカウントし、サンプリングした第2のハードウェアイベントカウンターの値を、プロセス識別子の値及び/又はスレッド識別子の値と共に記録する。
以上述べたような技術は、他のプロセス及び/又はスレッドから発生したイベントによる影響を含むことなく特定のプロセス及び/又はスレッドのイベントをより正確に捉える及び測定するのに、利用することができる。
本発明の実施形態及び他の実施形態は、以下に教示するところにより実現可能であり、また、本発明の広範な精神及び範囲から逸脱することなく、多様な変更または改良を加えることが可能であることは明らかである。また、明細書及び図面は、本発明を制限するのではなく例示しているものであり、本発明は、特許請求の範囲及び均等物によってのみ定められるものである。
図1は、コンテキストスイッチサンプリングを行うためのマルチプロセッシングシステム101の一実施形態を示す。システム101の実施形態は、例えば、データを記憶する複数の記憶領域141〜149を有するアドレス可能なメモリ140、及び機械実行可能なコンテキストスイッチサンプリングを行うための命令を備える。複数のプロセス111〜131は、バス又は他の相互接続110によりアドレス可能なメモリ140に連結されており、当該複数のプロセス111〜131は、それぞれのスレッドを同時に実行する。複数のプロセス111〜131の実施形態は、異なるダイ又は同一のダイに、ソフトウェアプロセス若しくはハードウェアスレッド又は複数の個別プロセッサコアを備えるようにしてもよいことは明らかである。また、システム101のある実施形態では、複数のハードウェアスレッドプロセス111及び121を有するプロセッサ102のようなプロセッサを備えるようにしてもよい。
複数のプロセス111〜131は、それぞれ実行ユニット112〜132、レジスタ113〜133、及びハードウェアイベントカウンター114〜134及び115〜135を備える。ある実施形態において、複数のプロセス111〜131のうちのいくつかで、一つ又は複数の実行ユニット112〜132を物理的に共有するようにしてもよいことは明らかである。また、プロセス111〜131のある実施形態では、レジスタ113〜133、及び/又はハードウェアイベントカウンター114〜134及び115〜135が、プロセス111〜131のうちのいくつかに割り当てられるようにしてもよいし、これらを当該プロセスが共通で使用するよう構成してもよいことは明らかである。一つ又は複数のプロセス111〜131をアドレス可能なメモリ140に連結することにより、機械実行可能な命令149にアクセスするようにしてもよい。当該コンピュータで実行可能な命令149に応答して、一つ又は複数のプロセス111〜131は、第1ハードウェアイベントの発生をハードウェアイベントカウンター114〜134それぞれにおいてカウントするようにしてもよい。また、ある実施形態では、第1ハードウェアイベントは、セグメントレジスタ読み込みイベントであってもよく、例えば、カリフォルニア、サンタクララ所在のインテル社製の「x86プロセッサ」のコンテキストスイッチに使用してもよい。また、複数のハードウェアイベントカウンター114〜134がそれぞれ、セグメントレジスタ読み込みイベントのようなハードウェアイベントの発生をカウントすることにより、一つ又は複数のプロセス111〜131が、いつコンテキストスイッチが発生したかを判断できるようにしてもよいことは明白である。
例えば、特定のx86プロセッサで動作する所与のOSの場合、「リング3」にて、アプリケーションプロセス間のコンテキストスイッチを実行するには、セグメントレジスタ読み込みを4回実行する必要がある。カウントが"4"を超えた後にサンプルアフターバリュー(sample−after value:SAV)を設定して、ハードウェアイベントカウンターをサンプリングすることにより、サンプリングされたハードウェアイベントカウンターの値は、他のプロセス及び/又はスレッドから発生したイベントによる影響を受けずに、より正確に特定のプロセス及び/又はスレッドのイベントを捉えて測定することができる。特に、SAVカウントが"8"(4が2回)に設定された場合、プロセス間のコンテキストスイッチが検出される。一方、SAVカウントが"5"(4プラス1)に設定された場合は、同じプロセスのスレッド間のコンテキストスイッチが検出されることになる。SAVカウントが臨界値(本例の場合、"4")である又は臨界値を下回る場合、サンプリングによって所望のアプリケーションデータを収集することができない。これは、所望のアプリケーション中のイベントのデータ値が収集されるより前に、サンプリングが実行されるからである。コンテキストスイッチの検出に必要なセグメントレジスタ読み込みの回数は、OSによって大きく異なり(例えば、セグメントレジスタ読み込み回数は、1回から100回以上の間)、特定のOSや特定のプロセッサに依存することは明らかである。
また、ある実施形態において、セグメントレジスタの読み込み以外の技術や命令を、コンテキストスイッチサンプリングを行うのに使用するようにしてもよいことは明らかである。例えば、コンテキストスイッチを、記述子テーブル読み込みと関連付けてもよく、記述子テーブル(グローバルでもローカルでもよい)読み込みに続いて、イベントカウントデータのサンプリングをトリガーすることにより、コンテキストスイッチサンプリングを行うことができる。また、他の実施形態において、コンテキストスイッチサンプリングのトリガー専用に、アドレス可能なメモリ140の特定のアドレスを、当該アドレスがアクセスされる都度、選択するようにしてもよい。また、他の実施形態において、プロセス識別子及び/又はスレッド識別子が変更される都度ハードウェアイベントをトリガーすることを利用してコンテキストスイッチサンプリングをトリガーするようにしてもよいし、専用の命令をプロセッサのアーキテクチャーに追加してコンテキストスイッチサンプリングをトリガーするようにしてもよい。
所定回数の第1ハードウェアイベントの発生が、複数の第1のハードウェアイベントカウンター114〜134でそれぞれカウントされた後、複数の第2のハードウェアイベントカウンター115〜135がそれぞれサンプリングされ、複数の第1のハードウェアイベントカウンター114〜134及び複数の第2のハードウェアイベントカウンター115〜135がそれぞれリセットされる。上述したように、実施形態のプロセス111及び121は、複数のハードウェアイベントカウンター114〜124及び115〜125を割り当てて使用してもよいし、共通して使用してもよい。したがって、プロセッサ102は、例えば、一揃いのハードウェアイベントカウンターを備えればよい。
所定回数の第1ハードウェアイベントの発生がカウントされ、且つ複数の第2のハードウェアイベントカウンター115〜135がそれぞれサンプリングされた後、サンプリングされた複数の第2のハードウェアイベントカウンター115〜135の値は、アドレス可能なメモリ140の複数のプロセス識別子141〜145と共に、複数のストレージロケーション143〜147に記録及び/又は蓄積されるようにしてもよい。また、ある実施形態においては、サンプリングされた複数の第2のハードウェアイベントカウンター115〜135の値は、アドレス可能なメモリ140の複数のスレッド識別子144〜148と共に、複数のストレージロケーション143〜147に記録及び/又は蓄積されるようにしてもよい。
上述の技術を使用して、他のプロセス及び/又はスレッドから発生したハードウェアイベントによる影響を受けずに、より正確に特定のプロセス及び/又はスレッドのハードウェアイベントを捉える及び測定することができることは、明白である。
図2は、マルチプロセッシングシステムの性能監視のためのコンテキストスイッチサンプリングを実行するプロセス201の一態様を示すフローチャートである。プロセス201及びここに示される他のプロセスは、専用のハードウェア若しくはソフトウェア、又はファームウェアのオペレーションコードからなる複数の処理ブロックによって実行され、当該オペレーションコードは、汎用機、特殊用途機、及びこれらの組み合わせである機械において実行可能なものである。
処理ブロック211において、第1のハードウェアイベントカウンター(例えば、複数のイベントカウンター114〜134のうちの一つ)で、第1ハードウェアイベントの発生数Iがカウントされる。処理ブロック212において、第2のハードウェアカウンター(例えば、複数のイベントカウンター115〜135のうちの一つ)で、第2ハードウェアイベントの発生数Jがカウントされる。処理ブロック213では、Iが所定のSAV値"N"と等しいか否かが判断される。等しくない場合は、処理ブロック211において、カウントが続けられる。等しい場合は、処理が続けられ、処理ブロック214に進み、第2のハードウェアイベントカウンターで第2ハードウェアイベント発生数Jがサンプリングされる。そして、処理ブロック215において、第1及び第2のハードウェアイベントカウンターがリセットされ、処理ブロック216において、サンプリングされた発生数Jが、プロセス識別子(例えば141〜145)の値と共にアドレス可能なメモリ140(例えば、ロケーション143〜147)に記録される。
図3は、他の実施形態のコンテキススイッチサンプリングを実行するプロセス301を示したフローチャートである。
処理ブロック311において、第1のハードウェアイベントカウンター(例えば、複数のイベントカウンター114〜134のうちの一つ)で、セグメントレジスタの読み込みイベントの発生数Iがカウントされる。処理ブロック312において、第2のハードウェアイベントカウンター(例えば、複数のイベントカウンター115〜135のうちの一つ)で、第2ハードウェアイベントの発生数Jがカウントされる。処理ブロック313では、Iが所定のSAV値"N"と等しいか否かが判断される。等しくない場合は、処理ブロック311において、カウントが続けられる。等しい場合は、処理ブロック314に進み、第2のハードウェアイベントカウンターで第2ハードウェアイベント発生数Jがサンプリングされる。そして、処理ブロック315において、第1及び第2のハードウェアイベントカウンターの、セグメントレジスタ読み込みイベントの数及び第2のハードウェアイベントの数がリセットされて、処理ブロック316において、サンプリングされた発生数Jが、プロセス識別子(例えば141〜145)の値と共にアドレス可能なメモリ140(例えば、ロケーション143〜147)に記録される。
プロセス201及び301によれば、コンテキストスイッチが発生した時を判断することが可能となり、故に、他のプロセス及び/又はスレッドの実行中に発生するハードウェアイベントからの影響含むことなく、より正確に特定のプロセス及び/又はスレッドのハードウェアイベントを捉える及び測定するのにこれらプロセスを利用できるということは明白である。
上記の説明は、本発明の好ましい実施形態を述べたものである。上述された考察から、特に成長が早く、先の進歩を簡単に予測できない技術分野において、本発明の原則に反することなく特許請求の範囲及び均等物の範囲内において本発明における配置や細部構成に変更又は改良を加えることが可能であることは、当業者にとって明らかである。

Claims (20)

  1. マルチプロセッシングシステムにおいて性能監視をする方法であって、
    第1のハードウェアイベントカウンターにて、セグメントレジスタ読み込みイベントである第1ハードウェアイベントの発生をカウントする段階と、
    第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントする段階と、
    前記第1のハードウェアイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出する段階と、
    前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングする段階と、
    を備え、
    サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記マルチプロセッシングシステムで動作するオペレーティングシステムに依存する、方法。
  2. 前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項1記載の方法。
  3. 前記サンプリングした第2のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録する段階をさらに備える請求項に記載の方法。
  4. 前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする段階をさらに備える請求項1から請求項のいずれか1つに記載の方法。
  5. マルチプロセッシングシステムにおいて性能監視をする方法であって、
    第1のハードウェアイベントカウンターにてセグメントレジスタ読み込みイベントの発生をカウントする段階と、
    第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントする段階と、
    前記セグメントレジスタ読み込みイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出する段階と、
    前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングする段階と
    を備え、
    サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記マルチプロセッシングシステムで動作するオペレーティングシステムに依存する、方法。
  6. 前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項に記載の方法。
  7. 前記サンプリングした第2のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する段階をさらに備える請求項に記載の方法。
  8. 前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする段階をさらに備える請求項から請求項のいずれか1つに記載の方法。
  9. コンピュータに、
    第1のハードウェアイベントカウンターにて、セグメントレジスタ読み込みイベントである第1ハードウェアイベントの発生をカウントする段階と、
    第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントする段階と、
    前記第1のハードウェアイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出する段階と、
    前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングする段階と
    を実行させ、
    サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記コンピュータで動作するオペレーティングシステムに依存する、プログラム。
  10. 前記コンピュータに、前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに実行させる請求項に記載のプログラム。
  11. 前記コンピュータに、前記サンプリングした第2のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録する段階をさらに実行させる請求項に記載のプログラム。
  12. 前記コンピュータに、前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする段階をさらに実行させる請求項から請求項11のいずれか1つに記載のプログラム。
  13. コンピュータシステムであって、
    コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
    第1のハードウェアイベントカウンターと第2のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
    前記機械実行可能な命令に応答して、前記プロセッサは、
    前記第1のハードウェアイベントカウンターにてセグメントレジスタ読み込みイベントの発生をカウントし、
    前記第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントし、
    前記セグメントレジスタの読み込みイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出し、
    前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターの値をサンプリングし、
    サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記プロセッサで動作するオペレーティングシステムに依存する、コンピュータシステム。
  14. 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした前記第2のハードウェアイベントカウンターをプロセス識別子の値と共に記録する請求項13に記載のコンピュータシステム。
  15. 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第2のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する請求項14に記載のコンピュータシステム。
  16. 前記機械実行可能な命令に応答して、前記プロセッサが、前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする、請求項13から請求項15のいずれか1つに記載のコンピュータシステム。
  17. コンピュータシステムであって、
    コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
    第1のハードウェアイベントカウンターと第2のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
    前記機械実行可能な命令に応答して、前記プロセッサは、
    前記第1のハードウェアイベントカウンターにて、セグメントレジスタ読み込みイベントである第1ハードウェアイベントの発生をカウントし、
    前記第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントし、
    前記第1ハードウェアイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出し、
    前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングし、
    サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記プロセッサで動作するオペレーティングシステムに依存する、コンピュータシステム。
  18. 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する請求項17に記載のコンピュータシステム。
  19. 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第2のハードウェアイベントカウンター値をスレッド識別子の値と共に記録する請求項18に記載のコンピュータシステム。
  20. 前記機械実行可能な命令に応答して、前記プロセッサが、前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする、請求項17から請求項19のいずれか1つに記載のコンピュータシステム。
JP2010088905A 2009-04-08 2010-04-07 コンテキストスイッチサンプリング Expired - Fee Related JP5257816B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/420,815 2009-04-08
US12/420,815 US8346509B2 (en) 2009-04-08 2009-04-08 Context switch sampling

Publications (2)

Publication Number Publication Date
JP2010244552A JP2010244552A (ja) 2010-10-28
JP5257816B2 true JP5257816B2 (ja) 2013-08-07

Family

ID=42352696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010088905A Expired - Fee Related JP5257816B2 (ja) 2009-04-08 2010-04-07 コンテキストスイッチサンプリング

Country Status (4)

Country Link
US (1) US8346509B2 (ja)
EP (1) EP2239664B1 (ja)
JP (1) JP5257816B2 (ja)
CN (1) CN101859268B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9021172B2 (en) 2012-07-06 2015-04-28 Arm Limited Data processing apparatus and method and method for generating performance monitoring interrupt signal based on first event counter and second event counter
JP2014182478A (ja) 2013-03-18 2014-09-29 Fujitsu Ltd 性能プロファイリング装置及び性能プロファイリング方法
US8935675B1 (en) 2013-09-25 2015-01-13 Google Inc. Statistical sampling of event monitoring triggers under overhead constraints
US9218185B2 (en) 2014-03-27 2015-12-22 International Business Machines Corporation Multithreading capability information retrieval
US10102004B2 (en) 2014-03-27 2018-10-16 International Business Machines Corporation Hardware counters to track utilization in a multithreading computer system
US9354883B2 (en) 2014-03-27 2016-05-31 International Business Machines Corporation Dynamic enablement of multithreading
US9594660B2 (en) 2014-03-27 2017-03-14 International Business Machines Corporation Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores
US9417876B2 (en) 2014-03-27 2016-08-16 International Business Machines Corporation Thread context restoration in a multithreading computer system
US9804846B2 (en) 2014-03-27 2017-10-31 International Business Machines Corporation Thread context preservation in a multithreading computer system
US9921848B2 (en) 2014-03-27 2018-03-20 International Business Machines Corporation Address expansion and contraction in a multithreading computer system
US11200058B2 (en) * 2014-05-07 2021-12-14 Qualcomm Incorporated Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media
CN105487958B (zh) * 2015-11-24 2018-04-10 无锡江南计算技术研究所 处理器内部行为监测方法
KR102440948B1 (ko) 2016-02-11 2022-09-05 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
GB2550903B (en) * 2016-05-27 2019-06-12 Arm Ip Ltd Context data control
CN107451038B (zh) * 2016-05-30 2020-05-19 龙芯中科技术有限公司 硬件事件采集方法、处理器和计算系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151004A (ja) 1991-11-30 1993-06-18 Nec Corp タスクのcpu占有時間測定方法
JPH07307727A (ja) 1994-05-13 1995-11-21 Nippon Motorola Ltd データ信号のサンプリング方法及びその回路
US5615135A (en) * 1995-06-01 1997-03-25 International Business Machines Corporation Event driven interface having a dynamically reconfigurable counter for monitoring a high speed data network according to changing traffic events
US6356615B1 (en) * 1999-10-13 2002-03-12 Transmeta Corporation Programmable event counter system
US6519310B2 (en) * 2001-03-28 2003-02-11 Intel Corporation Hardware event based flow control of counters
US7779238B2 (en) * 2004-06-30 2010-08-17 Oracle America, Inc. Method and apparatus for precisely identifying effective addresses associated with hardware events
US7200522B2 (en) * 2005-01-27 2007-04-03 International Business Machines Corporation Method, apparatus, and computer program product in a performance monitor for sampling all performance events generated by a processor
JP5102634B2 (ja) * 2005-01-28 2012-12-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 決定的イベント・シーケンスのロギングおよび再生のための命令をカウントする方法
US8136124B2 (en) * 2007-01-18 2012-03-13 Oracle America, Inc. Method and apparatus for synthesizing hardware counters from performance sampling
JP5119994B2 (ja) * 2008-03-14 2013-01-16 富士通株式会社 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置
JP5353227B2 (ja) 2008-12-24 2013-11-27 富士通株式会社 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。

Also Published As

Publication number Publication date
US8346509B2 (en) 2013-01-01
EP2239664A2 (en) 2010-10-13
EP2239664B1 (en) 2017-11-15
CN101859268B (zh) 2017-03-01
EP2239664A3 (en) 2010-12-15
US20100262870A1 (en) 2010-10-14
CN101859268A (zh) 2010-10-13
JP2010244552A (ja) 2010-10-28

Similar Documents

Publication Publication Date Title
JP5257816B2 (ja) コンテキストスイッチサンプリング
CN101625657B (zh) 监控数据处理设备和概括监控数据
US8141053B2 (en) Call stack sampling using a virtual machine
US9081629B2 (en) Excluding counts on software threads in a state
US20100017583A1 (en) Call Stack Sampling for a Multi-Processor System
US8286134B2 (en) Call stack sampling for a multi-processor system
IL260141A (en) Address translation latency measurement
JP2007213205A (ja) システム分析プログラム、システム分析装置、およびシステム分析方法
JP2010152458A (ja) 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
US20130227586A1 (en) Recording Activity of Software Threads in a Concurrent Software Environment
EP2735970B1 (en) Dynamic library profiling method
US9009537B2 (en) Diagnostic data capture in a computing environment
CN112988544B (zh) 操作系统性能瓶颈的分析方法、系统、设备和存储介质
US6725363B1 (en) Method for filtering instructions to get more precise event counts
CN107451038B (zh) 硬件事件采集方法、处理器和计算系统
JP6544054B2 (ja) 情報処理装置、実行情報記録プログラムおよび実行情報記録方法
CN116820610A (zh) 一种可观测领域中对用户态程序动态跟踪的方法和装置
CN108628637B (zh) 用于处理数据的装置和方法
CN111368104A (zh) 信息处理方法、装置及设备
CN106095631B (zh) 一种基于有限状态机实现的多周期非流水线cpu动态调试方法
JP2009217385A (ja) プロセッサ及びマルチプロセッサ
CN110909351B (zh) 硬件协助的控制结构不变式挖掘方法
CN111966514A (zh) 一种异常处理方法、系统、电子设备及存储介质
JP2004078790A (ja) 命令トレース出力方法
JP2004021936A (ja) 情報処理装置の障害処理方法および情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130104

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130412

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5257816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees