JP5257816B2 - コンテキストスイッチサンプリング - Google Patents
コンテキストスイッチサンプリング Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3017—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring 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
Claims (20)
- マルチプロセッシングシステムにおいて性能監視をする方法であって、
第1のハードウェアイベントカウンターにて、セグメントレジスタ読み込みイベントである第1ハードウェアイベントの発生をカウントする段階と、
第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントする段階と、
前記第1のハードウェアイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出する段階と、
前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングする段階と、
を備え、
サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記マルチプロセッシングシステムで動作するオペレーティングシステムに依存する、方法。 - 前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項1に記載の方法。
- 前記サンプリングした第2のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録する段階をさらに備える請求項1に記載の方法。
- 前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする段階をさらに備える請求項1から請求項3のいずれか1つに記載の方法。
- マルチプロセッシングシステムにおいて性能監視をする方法であって、
第1のハードウェアイベントカウンターにてセグメントレジスタ読み込みイベントの発生をカウントする段階と、
第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントする段階と、
前記セグメントレジスタ読み込みイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出する段階と、
前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングする段階と
を備え、
サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記マルチプロセッシングシステムで動作するオペレーティングシステムに依存する、方法。 - 前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに備える請求項5に記載の方法。
- 前記サンプリングした第2のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する段階をさらに備える請求項6に記載の方法。
- 前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする段階をさらに備える請求項5から請求項7のいずれか1つに記載の方法。
- コンピュータに、
第1のハードウェアイベントカウンターにて、セグメントレジスタ読み込みイベントである第1ハードウェアイベントの発生をカウントする段階と、
第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントする段階と、
前記第1のハードウェアイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出する段階と、
前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングする段階と
を実行させ、
サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記コンピュータで動作するオペレーティングシステムに依存する、プログラム。 - 前記コンピュータに、前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する段階をさらに実行させる請求項9に記載のプログラム。
- 前記コンピュータに、前記サンプリングした第2のハードウェアイベントカウンターの値をスレッド識別子の値と共に記録する段階をさらに実行させる請求項9に記載のプログラム。
- 前記コンピュータに、前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする段階をさらに実行させる請求項9から請求項11のいずれか1つに記載のプログラム。
- コンピュータシステムであって、
コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
第1のハードウェアイベントカウンターと第2のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
前記機械実行可能な命令に応答して、前記プロセッサは、
前記第1のハードウェアイベントカウンターにてセグメントレジスタ読み込みイベントの発生をカウントし、
前記第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントし、
前記セグメントレジスタの読み込みイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出し、
前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターの値をサンプリングし、
サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記プロセッサで動作するオペレーティングシステムに依存する、コンピュータシステム。 - 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした前記第2のハードウェアイベントカウンターをプロセス識別子の値と共に記録する請求項13に記載のコンピュータシステム。
- 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第2のハードウェアイベントカウンターの値及び前記プロセス識別子の値を、スレッド識別子の値と共に記録する請求項14に記載のコンピュータシステム。
- 前記機械実行可能な命令に応答して、前記プロセッサが、前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする、請求項13から請求項15のいずれか1つに記載のコンピュータシステム。
- コンピュータシステムであって、
コンテキストスイッチサンプリングを行うためのデータ及び機械実行可能な命令を記憶するアドレス可能なメモリと、
第1のハードウェアイベントカウンターと第2のハードウェアイベントカウンターとを含み前記アドレス可能なメモリと連結して前記機械実行可能な命令にアクセスするプロセッサとを備え、
前記機械実行可能な命令に応答して、前記プロセッサは、
前記第1のハードウェアイベントカウンターにて、セグメントレジスタ読み込みイベントである第1ハードウェアイベントの発生をカウントし、
前記第2のハードウェアイベントカウンターにて第2ハードウェアイベントの発生をカウントし、
前記第1ハードウェアイベントのカウント値と、コンテキストスイッチが発生するまでに発生する前記セグメントレジスタ読み込みイベントの回数を示すサンプルアフターバリュー(SAV)との比較に基づいてプロセスまたはスレッドのコンテキストスイッチが発生したかどうかを検出し、
前記プロセスまたは前記スレッドの前記コンテキストスイッチを検出したことに対応して、前記第2のハードウェアイベントカウンターをサンプリングし、
サンプリングされた前記第2のハードウェアイベントカウンターは、1つ以上のプロセスまたはスレッドから捉えられる1つ以上のイベントからの影響を受けずに、前記プロセスまたは前記スレッドに対するイベントを捉えて測定し、前記回数は、前記プロセッサで動作するオペレーティングシステムに依存する、コンピュータシステム。 - 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第2のハードウェアイベントカウンターの値をプロセス識別子の値と共に記録する請求項17に記載のコンピュータシステム。
- 前記機械実行可能な命令に応答して、前記プロセッサが、前記サンプリングした第2のハードウェアイベントカウンター値をスレッド識別子の値と共に記録する請求項18に記載のコンピュータシステム。
- 前記機械実行可能な命令に応答して、前記プロセッサが、前記第1のハードウェアイベントカウンター及び前記第2のハードウェアイベントカウンターをリセットする、請求項17から請求項19のいずれか1つに記載のコンピュータシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/420,815 US8346509B2 (en) | 2009-04-08 | 2009-04-08 | Context switch sampling |
US12/420,815 | 2009-04-08 |
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)
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 |
US9417876B2 (en) | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration 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 |
US10102004B2 (en) | 2014-03-27 | 2018-10-16 | International Business Machines Corporation | Hardware counters to track utilization 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)
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 |
ATE409909T1 (de) * | 2005-01-28 | 2008-10-15 | Ibm | Zählverfahren für anweisungen zur protokollierung und wiedergabe einer deterministischen ereignisabfolge |
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 | 富士通株式会社 | 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。 |
-
2009
- 2009-04-08 US US12/420,815 patent/US8346509B2/en active Active
-
2010
- 2010-04-07 JP JP2010088905A patent/JP5257816B2/ja not_active Expired - Fee Related
- 2010-04-08 CN CN201010207270.1A patent/CN101859268B/zh not_active Expired - Fee Related
- 2010-04-08 EP EP10250736.5A patent/EP2239664B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
EP2239664A3 (en) | 2010-12-15 |
JP2010244552A (ja) | 2010-10-28 |
EP2239664B1 (en) | 2017-11-15 |
CN101859268A (zh) | 2010-10-13 |
US8346509B2 (en) | 2013-01-01 |
CN101859268B (zh) | 2017-03-01 |
US20100262870A1 (en) | 2010-10-14 |
EP2239664A2 (en) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5257816B2 (ja) | コンテキストスイッチサンプリング | |
CN101625657B (zh) | 监控数据处理设备和概括监控数据 | |
US8141053B2 (en) | Call stack sampling using a virtual machine | |
US20100017583A1 (en) | Call Stack Sampling for a Multi-Processor System | |
US8286134B2 (en) | Call stack sampling for a multi-processor system | |
US20170212844A1 (en) | Measuring address translation latency | |
JP5889332B2 (ja) | 並行ソフトウェア環境のためのアクティビティ記録システム | |
US20140344831A1 (en) | Excluding counts on software threads in a state | |
JP2007213205A (ja) | システム分析プログラム、システム分析装置、およびシステム分析方法 | |
US20120180057A1 (en) | Activity Recording System for a Concurrent Software Environment | |
JP2010152458A (ja) | 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。 | |
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) | 硬件事件采集方法、处理器和计算*** | |
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 |