JP5423871B2 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP5423871B2
JP5423871B2 JP2012504195A JP2012504195A JP5423871B2 JP 5423871 B2 JP5423871 B2 JP 5423871B2 JP 2012504195 A JP2012504195 A JP 2012504195A JP 2012504195 A JP2012504195 A JP 2012504195A JP 5423871 B2 JP5423871 B2 JP 5423871B2
Authority
JP
Japan
Prior art keywords
tlb
information
cpu
collected
designation
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
JP2012504195A
Other languages
English (en)
Other versions
JPWO2011111172A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2011111172A1 publication Critical patent/JPWO2011111172A1/ja
Application granted granted Critical
Publication of JP5423871B2 publication Critical patent/JP5423871B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis

Description

本発明は、TLB(Translation Lookaside Buffer)に登録されている情報の採取技術に関するものである。
コンピュータには、TLB(Translation Lookaside Buffer)が実装されているものがある。例えば、オペレーティングシステムが各仮想空間の論理アドレスに対応する物理アドレス、あるいはマップサイズなどのアドレス変換情報をハードウェアに通知するために、TLBに情報を設定する。
TLBは、コンピュータのCPU(Central Processing Unit)内に存在し、仮想アドレスから物理アドレスへの変換の高速化を図るためのものである。TLBには固定個のエントリがあり、オペレーティングシステムがTLBの各エントリに仮想アドレスから物理アドレスに変換するための情報を登録する。
CPUが命令を実行中に仮想アドレスへのアクセスが発生すると、CPUはオペレーティングシステムがTLBに登録した情報を検索する。通常、検索キーとして仮想アドレスが使用され、検索結果として仮想アドレスに対応する物理アドレスが返される。仮想アドレスに対応する情報がTLB上にある場合は、アドレス変換は非常に迅速に行われ、CPUはTLBから取得した物理アドレスを使ってメモリにアクセスする。仮想アドレスに対応する情報がTLB上にない場合は、CPUがトラップ(割り込み)を発生させて、TLB上に情報がなかったことをオペレーティングシステムに通知する。トラップを受けたオペレーティングシステムが仮想アドレスに対応する情報をTLBに登録して命令を再実行する。命令を再実行する時には、TLB上に仮想アドレスに対応する情報が登録されているため、CPUは仮想アドレスに対応する情報を用いてメモリへアクセスすることができる。
オペレーティングシステムの障害などにより、TLBへの情報登録が正常に行われなくなった場合、CPUは想定外の物理アドレスへアクセスを行うことになる。想定外の物理アドレスへのアクセスにより、コンピュータの誤動作やデータ破壊などの重大な問題が発生する可能性がある。実際にオペレーティングシステムの障害によるTLBエントリの誤登録が発生し、さらに、システムのハングアップ、あるいはプログラムの誤動作が発生した事例がある。そのため、各CPUのTLBに登録されている情報を確認する手段、あるいは、オペレーティングシステムのTLBに関する処理が正しく動作しているかどうかを確認する手段が望まれている。
従来から、オペレーティングシステムの障害などのトラブルの原因を調査するための情報採取および、動作確認(リグレッションテスト)を目的として、ツールが用意されている。例えば、コンピュータの管理者は、コンピュータを管理するファームウェア(Service Processor)において、動作確認のコマンドなどのツールを実行すればよい。動作確認のコマンドの実行に際し、コンピュータの管理者は、動作確認の対象であるCPUなどを指定する。動作確認のコマンド実行により、コンピュータの管理者は、指定したCPUのTLBに登録されている情報を取得することができる。例えば、UltraSPARCプロセッサを搭載したシステムの場合には、ファームウェアに用意された動作確認用のコマンドの起動により、ファームウェアは、TLB情報を採取するASI(Address Space Identifiers)命令を実行する。TLB情報を採取するASI命令により、ファームウェアは、TLBに登録されている情報を取得し、コンピュータの管理者に表示する。TLBに登録されている情報を採取するASI命令の詳細は、UltraSPARCプロセッサのマニュアル(UltraSPARC User's Manual Revision 2, July 1997)の6章に記載されている。
特表2007−500401号公報 特開昭63−273149号公報
近年、コンピュータに搭載されるCPUには、単一のプロセッサパッケージ内に複数のコアを追加していくというアプローチが採用されることが多い。こうしたCPUのマルチコア化は、CPUのパフォーマンスを向上させるための技術として認識され、その採用が急速に進んでいる。最近では、マルチスレッド技術と組み合わせたマルチコア化も進んでおり、論理CPUの数が512個以上の大規模サーバも登場している。なお、論理CPUとは、オペレーティングシステムがスレッドを割り当てるCPUとそのスレッドのレジスタ群とを含む仮想的なプログラム実行環境と考えることができる。論理CPUを含むコンピュータシステムでは、オペレーティングシステムは、スレッドに割り当てるプログラム実行環境として、物理的なハードウェア資源である物理CPUの代わりに論理CPUを認識する。したがって、TLBも論理CPUごとに用意されることになる。
さらに、TLBに登録できる情報の量が年々増加し、最近では論理CPUごとに合計4000エントリ以上のアドレス変換情報を保持できるようになっている。このため、例えばコンピュータのファームウェア(Service Processor)のコマンドなどのツールで、論理CPUを512個搭載したコンピュータ対して、すべての論理CPUのTLBに登録されている情報を採取する場合には、コンピュータの管理者は論理CPUを指定してツールを繰り返し(512回)実行しなければならない。その上、採取する情報は、200万エントリ以上のアドレス変換情報となり、データ量が膨大となる。したがって情報を採取するのに非常に時間と手間がかかるという問題がある。
さらに、オペレーティングシステムの障害などのトラブルの原因を調査するためにTLBに登録されている情報を採取する場合は、通常、異常が発生した特定のCPUのTLBに登録されている情報を採取すればよい。なお、特定のCPUとは、論理CPUの仕組みを有するシステムにおいては論理CPUをいい、論理CPUの仕組がないシステムにおいては、例えば、マルチコアのCPU中の1つのコアなどをいう。また、マルチコアのCPU中の1つのコアを物理CPUともいう。
しかしながら、コンピュータのファームウェア(Service Processor)のコマンドなどの外部ツールで情報を採取する場合は、どの論理CPU、あるいはどの物理CPUで異常が発生しているか特定できないことが多い。どの論理CPU、あるいは物理CPUで異常が発生しているか特定できない場合、コンピュータの管理者はすべての論理CPU、あるいはすべての物理CPUのTLBに登録されている情報を採取することもあり得る。したがって、コンピュータのファームウェアなどの外部ツールによる情報採取は、採取するデータ量の増加および採取する処理時間の増加の要因となっている。
開示の技術の一側面は、TLBに関連する情報処理装置の障害などのトラブルの原因を調査するための情報採取および、動作確認(リグレッションテスト)を効果的に支援するものである。
上記課題を解決するための一側面として、情報処理装置が例示される。本情報処理装置は、それぞれがTLB(Translation Lookaside Buffer)を有する複数の処理部と、複数の処理部のうちのTLBの情報が採取される処理部の指定とTLBの情報が採取されるタイミングの指定とを取得する手段と、指定のタイミングにおいて指定の処理部からTLBの情報を採取する手段と、を備える。
本情報処理装置によれば、TLBに関連する情報処理装置の障害などのトラブルの原因を調査するための情報採取および、動作確認(リグレッションテスト)を効果的に支援することができる。
実施例1の情報処理装置のハードウェアと機能の関連を示すブロック図である。 オペレーティングシステムの機能の詳細例を示す図である。 比較例となるシステムの処理のフローチャートである。 実施例1でのブートから停止までの処理を示すフローチャートである。 緊急停止の処理を例示する図である。 TLB採取処理の詳細例を示す図である。 実施例2に係る情報処理装置の動作を例示するフローチャートである。 スイッチをシステム管理者が押した時の処理を例示するフローチャートである。 TLBのエントリをロックする処理を例示するフローチャートである。
以下、図面を参照して一実施形態に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
図1から図6の図面を参照して、実施例1に係る情報処理装置1を説明する。図1は、情報処理装置1のハードウェアと機能の関連を示すブロック図である。情報処理装置1は、オペレーティングシステム11、ファームウェア12(Service Processor)、装置に備え付けられたスイッチ13、ディスク14、CPU15、メモリ16を備える。
実施例1の情報処理装置1では、CPU15は、例えば、複数の仮想CPUを含む。ここで、仮想CPUとは、オペレーティングシステム11から見た、プログラムを実行するためのプロセッサとプログラムの実行状態を保持するレジスタ群との組み合わせを含む仮想的な装置をいう。ここで、「仮想的な」という意味は、実際に存在するハードウェア、すなわち、物理的に存在するレジスタ群を含む物理CPUによるプログラム実行環境よりも多くのプログラム実行環境(すなわちプロセッサとレジスタ群との組み合わせ)を提供できるという意味を含む。仮想CPUは、例えば、現在CPU15のいずれかの物理CPUで処理中のプログラムの状態を示す第1のレジスタ群の値をメモリ16に保存し、一方、メモリ16に保存しておいた第2のレジスタ群の値を物理CPUのレジスタ群に書き戻す。このようなレジスタ群の値の入れ替え機能を設けることで、CPU15は、オペレーティングシステム11に対して、複数の仮想CPUを提供する。
ただし、仮想CPUに代えて、CPU15が、複数の物理CPU(プロセッサコア、コア、あるいは物理プロセッサともいう)、すなわち、物理的ハードウェアとしてプログラムを実行する装置を提供するものであってもよい。いずれにしても、実施例1において、情報処理装置1のCPU15は、オペレーティングシステム11から見た場合に、プログラム実行のための実行環境を複数有しているものとする。仮想CPUまたは物理CPUが処理部に相当する。
また、CPU15の複数の仮想CPU(あるいは、物理CPU)のそれぞれは、TLBを有する。以下、CPU15という場合には、複数の仮想CPUあるいは複数の物理CPUを含むシステムをいう。また、CPU15に含まれる仮想CPUとは、CPU15がオペレーティングシステム11に提供する個々のプログラム実行環境をいう。また、CPU15に含まれる物理CPUとは、CPU15内の個々のプロセッサコアをいう。
さらに、CPU15内の個々の仮想CPUは、CPU番号で特定される。また、CPU15が仮想CPUの仕組みを有していない場合、CPU15は、オペレーティングシステム11に対して、プログラム実行環境として、個々の物理CPUを提供する。個々の物理CPUも、CPU番号で特定される。すなわち、実施例1でCPU番号という場合、仮想CPUが提供される環境では、仮想CPUを特定する番号のことである。また、仮想CPUが提供されない環境では、実施例1でいうCPU番号は、物理CPUを特定する番号のことである。
メモリ16は、CPU15で実行されるコンピュータプログラムのコード、あるいはデータを保持する。メモリ16が保持するデータには、CPU15で仮想CPUの割り当て待ちになっているコンピュータプログラムの実行状態を示すレジスタ群の値、コンピュータプログラムの実行によってCPU15が処理するデータなどが含まれる。CPU15は、TLBを用いて、仮想アドレスを物理アドレスに変換し、メモリ16にアクセスする。メモリ16は、揮発性のDRAM(Dynamic Random Access Memory)と、不揮発性のROM(Read Only Memory)とを含む。メモリ16は、主記憶装置とも呼ばれる。
ディスク14は、外部記憶装置とも呼ばれる。ディスク14は、メモリ16に展開されるコンピュータプログラム、データ等を保存する。外部記憶装置と呼ばれるのは、CPU15から見て、メモリ16よりもアクセスに時間が長くかかる意味を含む。ただし、ディスク14は、電源が停止されても、記憶していた情報を維持する。ディスク14は、ハードディスク装置、可搬型記憶装置の入出力装置、SSD(Solid State Drive)等を含む。また、可搬型記憶装置は、CD(Compact Disc)、DVD(Digital Versatile Disc)、BD(Blu-ray Disc)等の駆動装置、あるいは、メモリカードの入出力装置を含む。
オペレーティングシステム11は、CPU15で稼働し、CPU15、メモリ16、およびディスク14等の情報処理装置1のハードウェアを制御し、CPU15で実行されるコンピュータプログラムに情報処理装置1の資源を提供する。この場合のコンピュータプログラムは、オペレーティングシステム11のようなシステムプログラムと区別する意味で、ユーザプログラム、あるいは、アプリケーションプログラムと呼ばれる。
ファームウェア(Service Processor、以下単にファームウェア12という)は、情報処理装置1を制御し、管理する機能を提供する。ファームウェア12は、図示しない専用線でCPU15と接続され、CPU15に所定のコマンドを入力し、コマンドに対する応答を受信する。例えば、ファームウェア12は、CPU15の現在の状態を取得するためのASI命令を入力し、CPU15の現在の状態を取得し、CPU15の実行状態を診断する。
スイッチ13は、ユーザ操作を受け付け、ユーザ操作を受け付けたことをオペレーティングシステム11に通知する。スイッチ13からのオペレーティングシステム11への通知は、例えば、割り込みというイベントの発生を通じて行われる。割り込みが発生すると、オペレーティングシステム11は、予め定められた優先順位にしたがって、CPU15から、割り込みの発生を受け取る。したがって、スイッチ13は、ユーザ、例えば、情報処理装置1のシステム管理者からオペレーティングシステム11への緊急の通知機構として用いることができる。
なお、割り込みそのものは、例えば、ファームウェア12からCPU15への要求として発生させてもよい。すなわち、システム管理者がスイッチ13を押すと、まず、ファームウェア12は、スイッチ13が押されたことを検知する。そして、ファームウェア12がCPU15を通じてオペレーティングシステム11にスイッチ13が押されたことを割り込みによって通知するようにしてもよい。また、ファームウェア12からオペレーティングシステム11への割り込みは、情報処理装置1のファームウェア12のコマンドを実行によっても、発生する。例えば、システム管理者あるいはファームウェア上のプログラムがCPU15を診断するファームウェア12のコマンドを実行すると、ファームウェア12がCPU15に対応する情報、例えば、ASI命令等を割り込みによって通知する。
標準出力17は、オペレーティングシステム11が用意している情報の仮想的な出力先である。オペレーティングシステム11は、例えば、標準出力として端末を想定する。端末はコンソールとも呼ばれる。また、標準出力は、リダイレクションと呼ばれる切替機能によって、ハードディスク装置などの外部記憶装置に切替可能となっていることが多い。
<オペレーティングシステム11の機能>
オペレーティングシステム11は、例えば、ファイル管理機能、メモリ管理機能、プロセス管理機能等を有する。オペレーティングシステム11は、情報処理装置1からの通知(割り込み)を受信すると、所定の処理を実行する。例えば、オペレーティングシステム11は、CPU15のハードウェアを通じて、緊急停止の要求を受け付け、緊急停止する。また、実施例1では、例えば、オペレーティングシステム11は、予めシステム管理者が設定ファイル231に指定した仮想CPUまたは物理CPUのTLBに登録されている情報を、システム管理者が設定ファイル231に指定しておいた出力先へ格納してシステムを再起動する。
図2に、オペレーティングシステム11の機能の詳細例を示す。図2に示すようにオペレーティングシステム11は割り込み処理部21、パニック処理部22、TLB情報採取部23を備える。
割り込み処理部21は、CPU15が割り込みを受信すると、CPIU15から割り込みが発生したことの通知を受信する。例えば、割り込み処理部21は、CPU15の割り込みベクタに設定されたアドレスに格納されたハンドラと呼ばれるプログラムを実行するCPU15として例示できる。割り込み処理部21は、割り込みの種類に応じた処理を実行する。
パニック処理部22は、CPU15からオペレーティングシステム11に対して、割り込み処理部21を通じて、緊急停止が要求されたときに起動される。緊急停止は、パニックとも呼ばれる。緊急停止が要求されると、パニック処理部22は、緊急停止に関連する処理を実行する。
例えば、図2に示すように、パニック処理部22は、表示/記録部221、ファイル同期処理部222、カーネルダンプ処理部223、再起動部224を有する。CPU15は、オペレーティングシステム11に含まれるコンピュータプログラムを実行し、パニック処理部22、例えば、表示/記録部221、ファイル同期処理部222、カーネルダンプ処理部223、再起動部224として機能する。
表示/記録部221は、例えば、緊急停止に伴ってシステム管理者、あるいは、ユーザに通知されるメッセージを標準出力に出力し、図示しない端末に表示し、または、ディスク14上のファイルなどに記録する。ユーザに通知されるメッセージには、緊急停止が要求される理由・原因を示すコードまたはメッセージ、理由・原因の発生した情報処理装置1の関連箇所、例えばハードウェア等を示す情報などが含まれる。
ファイル同期部222は、ディスク14に書き込まれるデータで、図示しないキャッシュメモリにキャッシュされたままディスク14に書き込まれていないデータをディスク14に書き込む。
カーネルダンプ処理部223は、緊急停止に関連するメモリ16の内容を標準出力に出力し、図示しない端末に表示し、または、ディスク14上のファイルなどに記録する。
再起動部224は、緊急停止完了後、例えば、システム管理者の指示を待ち、オペレーティングシステム11を再起動する。
TLB情報採取部23は、システム管理者の指定を取得し、取得した指定にしたがって、CPU15内のTLBに関連する情報を採取する。TLB情報採取部23がTLBの情報を採取する手段に相当する。
TLB情報採取部23にはTLB情報採取設定ファイル(以下、単に設定ファイル231)が備えられている。システム管理者は、TLB情報取得の対象となるタイミング、TLB情報取得の対象となる仮想CPU、TLB情報取得の対象となる物理CPU、取得したTLB情報の出力先などを設定ファイル231に指定する。設定ファイル231は、例えば、ディスク14上のファイル、ディスク14のファイルからメモリ16上にロードされたテーブル等である。CPU15は、設定ファイル231の情報を読み出すコンピュータプログラムを実行し、前記TLBの情報が採取される処理部の指定と前記TLBの情報が採取されるタイミングの指定とを取得する手段として機能する。
<設定ファイル231の記述例>
(1)採取タイミングの指定
TLBに登録されている情報を採取するタイミングを指定する場合は、予めシステム管理者が設定ファイル231に以下のように記述しておく。
(1−1)オペレーティングシステム11が緊急停止(パニック)した時;
パニック発生時にtlb-dump-cpuで指定されたCPUのTLBに登録されている情報を採取する場合の設定例を次に示す。
tlb-dump-timing ="panic";
(1−2)ブート処理中のカーネル初期化時、すなわちまだ端末が使用できない状態;
ブート処理中のカーネル初期化時にtlb-dump-cpuで指定されたCPU(仮想CPU、あるいは物理CPU)のTLBに登録されている情報を採取する場合の設定例を次に示す。
tlb-dump-timing="kernel-init";
(2)TLBを採取する対象のCPUの指定;
TLBに登録されている情報を採取する対象のCPU(仮想CPU、あるいは物理CPU)を指定する場合は、予めシステム管理者が設定ファイル231に以下のように記述しておく。
(2−1)何らかの異常が発生して緊急停止したCPUの指定:
緊急停止した仮想CPUまたは物理CPUのTLBに登録されている情報を採取する場合の設定例は次の通りである。なお、仮想CPUまたは物理CPUが緊急停止する場合には、緊急停止する仮想CPUまたは物理CPUからオペレーティングシステム11に緊急停止を要求する。したがって、オペレーティングシステム11は、緊急停止した仮想CPUまたは物理CPUを認識している。
tlb-dump-cpu ="panic";
(2−2)CPU番号によるCPUの指定(複数指定可能);
システム管理者がTLBの情報が採取される仮想CPUまたは物理CPUを指定したい場合に、以下の指定がなされる。例えば、CPU番号が0と2の2つのCPUのTLBに登録されている情報を採取する場合の設定例は次の通りである。
tlb-dump-cpu ="0,2";
(2−3)CPU15に搭載されているすべての仮想CPUまたは物理CPU;
CPU15に搭載されているすべての仮想CPUまたは物理CPUのTLBに登録されている情報を採取する場合の設定例は次の通りである。
tlb-dump-cpu ="all";
(2−4)対象CPUの指定なし(TLBに登録されている情報を採取しない);
TLBに登録されている情報を採取しない場合の設定例は、以下の通りである。
tlb-dump-cpu ="none";
(3)TLBに登録されている情報の出力先を指定する場合は、予めシステム管理者が設定ファイル231に以下のように記述しておく。
(3−1)ファイル
TLBに登録されている情報をファイル名 /work/tlb-dump.txtのファイルに出力する場合の設定例は、以下の通りである。
tlb-dump-output ="/work/tlb-dump.txt";
(3−2)クラッシュダンプ ファイル;
情報処理装置1を緊急停止させてメモリダンプを採取するファイルへ、TLBの情報を出力する例は、以下の通りである。以下の指定により、CPU15は、情報処理装置1を緊急停止させた時にTLBに登録されている情報をメモリダンプの一部として採取し、情報処理装置1、すなわち、オペレーティングシステム11を再起動する。
tlb-dump-output ="crash-dump";
(3−3)ライブダンプ (システムを稼動したままメモリダンプを採取)
情報処理装置1の稼働中にTLBに登録されている情報をメモリダンプの一部として採取し、情報処理装置1の運用を継続する場合の設定例は以下の通りである。
tlb-dump-output ="live-dump";
(3−4)端末(コンソールともいう);
TLBに登録されている情報をコンソールに出力する場合の設定例は以下の通りである。
tlb-dump-output ="console";
<比較例に係るシステムでの処理のフローチャート>
図3に実施例1の比較例となるシステムの処理のフローチャートを例示する。比較例のシステムの構成は、図1の場合と同様であると仮定する。ただし、図3で示される処理は、ファームウェア12上のツールの処理として例示できる。また、図1と同様に、CPU15内では、複数の仮想CPUあるいは物理CPUが利用可能であると仮定する。
比較例のツールは、システム内の指定した単一の仮想CPUまたは物理CPUからTLB情報を採取する。そのため、全てのCPUからTLBの情報を採取する場合には、図3の処理のように、システムの仮想CPU数、あるいは物理CPU数分だけユーザがTLBの取得コマンドを繰り返し実行する。なお、ユーザが繰り返しTLB採取コマンドを繰り返す代わりに、ファームウェア12上のプログラムが、繰り返しTLB採取コマンドを発行するようにしても、手順は図3と同様である。
図3の処理では、まず、ユーザが例えば、端末からファームウェア12((Service Processor)等を通じて、オペレーティングシステム11を一時停止する(C11)。
次に、ユーザは、システムに搭載されているすべてのCPU(仮想CPUまたは物理CPU)からTLBに登録されている情報を採取したか否かを判定する(C12)。
システムに搭載されているすべてのCPU(仮想CPUまたは物理CPU)からTLBに登録されている情報を採取していない場合、ユーザは、ファームウェア12上でTLB採取コマンド実行する。すると、ファームウェア12から、システムのCPU15に、TLB採取対象のCPU番号と、TLB情報採取要求とが通知される。CPU15は、指定されたCPU番号で特定される仮想CPUまたは物理CPUからTLB情報を採取する。そして、ファームウェア12は、CPU15から、採取されたTLB情報を受け取る。そして、ファームウェア12は、採取されたTLB情報を標準出力17に表示する(C13)。
システムに搭載されているすべてのCPU(仮想CPUまたは物理CPU)からTLBに登録されている情報を採取した場合、ユーザは、CPU15でオペレーティングシステム11を再開する。
<情報処理装置1の処理のフローチャート>
図4および図5に実施例1に係る情報処理装置1でのTLB情報を採取する処理のフローチャートを示す。上述のように、情報処理装置1では予め設定ファイル231にtlb-dump-cpu ="all"等のように、対象とする仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)のCPU番号を記述しておく。すると、オペレーティングシステム11内の情報採取部23の処理によって、システム管理者は、指定した仮想CPUまたは物理CPUからTLB情報を採取することができる。
なお、例えば、UltraSPARCプロセッサを搭載したシステムの場合、情報採取部23の処理を実行しているCPUと採取対象のCPUが一致する場合は、情報採取部23が、TLB情報を採取するASI命令を実行する。TLB情報を採取するASI命令がTLB採取命令に相当する。なお、UltraSPARCプロセッサ以外のプロセッサの場合には、それぞれのプロセッサで用意されているTLB採取命令を実行すればよい。
また、情報採取部23の処理を実行しているCPUと採取対象のCPUが一致しない場合は、情報採取部23が、他のCPUに割り込みを送信するASI命令を実行して、採取対象のCPUでTLB情報を採取するASI命令を実行するよう指示する。他のCPUに割り込みを送信するASI命令の詳細は、UltraSPARCプロセッサのマニュアル(UltraSPARC User's Manual Revision 2, July 1997)の9章に記載されている。他のCPUに割り込みを送信する命令は、CPU間通信命令、あるいは、クロスコールなどとも呼ばれる。したがって、UltraSPARCプロセッサ以外のプロセッサにおいては、それぞれのプロセッサで用意されているCPU間通信命令を利用すればよい。
図4は、実施例1に係る情報処理装置1でのオペレーティングシステム11のブートから停止までの処理を示すフローチャートである。この処理では、CPU15のいずれかの仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)がオペレーティングシステム11の処理(プロセス、スレッドともいう)を実行すると仮定する。また、TLB取得の対象となる仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)は、オペレーティングシステム11の処理を実行している仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)であってもよいし、他の仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)であってもよい。ただし、以下の説明では、単にCPU15がオペレーティングシステム11の処理を実行するものとして説明する。
まず、システム管理者による起動の指示により、情報処理装置1は、ブート処理を開始する(K1)。なお、起動指示は、例えば、ファームウェア12を通じてCPU15に通知される。すると、ブート処理の開始後、CPU15は、TLB採取の指定があるか否かを判定する(K2)。K2の判定は、ブート処理中のCPU15が設定ファイル231にアクセス可能になったときに設定ファイル231を読むことによって行えばよい。ただし、設定ファイル231の設定内容をブート用のディスクに保持することによって、ブート処理時にCPU15が設定ファイル231の設定内容を読むようにしてもよい。ここで、TLB採取の指定とは、ブート処理中のカーネル初期化時のTLB採取の指定、すなわち、tlb-dump-timing =" kernel-init "である。
TLB採取の指定があると、CPU15は、TLB採取処理を実行する(K3)。K3では、CPU15は、TLB採取部23として、オペレーティングシステム11に含まれるコンピュータプログラムを実行する。
次に、CPU15は、割り込み待ちの状態となる(K4)。なお、TLB採取の指定がない場合も、CPU15は、割り込み待ちの状態となる。そして、CPU15に割り込みが発生すると、割り込みの種類に応じて、ハンドラが起動され、割り込みの種類に応じた処理が実行される。
例えば、割り込みが緊急停止を指示するものであった場合(K5でYESの場合)、CPU15は、緊急停止の処理を実行する(K6)。そして、CPU15は、処理を終了する。
また、割り込みが緊急停止でなく(K5でNOの場合)、システム停止であった場合(K7でYESの場合)、CPU15は、TLB採取の指定があるか否かを判定する(K9)。ここで、TLB採取の指定とは、システム停止時のTLB採取の指定である。TLB採取の指定があると、CPU15は、TLB採取処理を実行する(K10)。そして、CPU15は、処理を終了する。なお、K9の判定は、CPU15が設定ファイル231を読むことによって行えばよい。
また、割り込みが緊急停止でなく、システム停止でもない場合(K7でNOの場合)、CPU15は、その他の処理を実行する(K8)。その後、CPU15のオペレーティングシステム11を実行するプロセス(スレッド)は、割り込み待ちとなる(K4)。
図5に、緊急停止の処理(図4のK6の詳細)を例示する。CPU15は、オペレーティングシステム11に含まれるプログラムにより、図5に示す処理を実行する。この処理では、まず、CPU15は、TLB採取の指定があるか否かを判定する(K61)。K61の判定は、CPU15が設定ファイル231を読むことによって行えばよい。ここで、TLB採取の指定とは、緊急停止時のTLB採取の指定、すなわち、tlb-dump-timing ="panic"である。そして、TLB採取の指定がある場合、CPU15は、TLB採取処理を実行する(K62)。次に、CPU15は、パニック処理部22の処理を実行する(K63)。パニック処理部22の処理とは、例えば、図2に示した表示/記録部221、ファイル同期処理部222、カーネルダンプ処理部223、再起動部224等の処理をいう。
図6に、TLB採取処理の詳細例を示す。TLB採取処理は、例えば、図4のK3、K10、図5のK62の処理の詳細である。CPU15は、オペレーティングシステム11に含まれるプログラムを実行し、TLB情報採取部23として機能する。そこで、図6では、TLB情報採取部23が処理を実行するものとして説明する。
図6の処理では、TLB情報採取部23は、設定ファイル231から、パラメータtlb-dump-cpuおよびtlb-dump-outputに指定された値を読み出す。そして、TLB情報採取部23は、パラメータtlb-dump-cpuおよびtlb-dump-outputに指定された値を判定し、指定された値に応じた処理を実行する。
例えば、パラメータtlb-dump-cpuの指定値が"panic"であった場合(S12でYESの場合)、TLB情報採取部23は、パニックが発生した仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)からTLB情報を採取し、メモリ16上に一時格納する(S13)。
また、パラメータtlb-dump-cpuの指定値がCPU番号であった場合(S12でNOであって、かつ、S14でYESの場合)、TLB情報採取部23は、指定されたCPU番号の仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)からTLB情報を採取し、メモリ16上に一時格納する(S15)。
また、パラメータtlb-dump-cpuの指定値が"all"であった場合(S12、S14でNOであって、かつ、S16でYESの場合)、TLB情報採取部23は、CPU15内のすべての仮想CPU(仮想CPUの仕組みがない場合には、すべての物理CPU)からTLB情報を採取し、メモリ16上に一時格納する(S17)。
また、パラメータtlb-dump-cpuの指定値が"none"であった場合(S12、S14、S16でNOの場合)、TLB情報採取部23は、TLB採取処理を実行しない(S19)。
そして、例えば、パラメータtlb-dump-outputの指定値が"ファイル名"であった場合(S21でYESの場合)、TLB情報採取部23は、メモリ16上に一時格納しておいた採取済みのTLB情報をファイル名で指定されたディスク14上のファイルに出力する(S22)。
また、例えば、パラメータtlb-dump-outputの指定値が"crash-dump"であった場合(S
21でNOであって、かつ、S23でYESの場合)、TLB情報採取部23は、メモリ16上に一時格納しておいた採取済みのTLB情報をシステム緊急停止時のメモリダンプ情報ととも標準出力17に出力する(S24)。S24の場合、CPU15は、緊急停止することになる。
また、例えば、パラメータtlb-dump-outputの指定値が"live-dump"であった場合(S21、S23でNOであって、かつ、S25でYESの場合)、TLB情報採取部23は、メモリ16上に一時格納しておいた採取済みのTLB情報をシステム緊急停止なしの通常運用時のメモリダンプ情報ととも標準出力17に出力する(S26)。S26の場合、CPU15は、オペレーティングシステム11による処理を継続することになる。
また、例えば、パラメータtlb-dump-outputの指定値が"console"であった場合(S21、S23、S25でNOの場合)、TLB情報採取部23は、メモリ16上に一時格納しておいた採取済みのTLB情報をそのまま標準出力に出力する(S28)。
以上述べたように、実施例1では、オペレーティングシステム11内に設けられたTLB情報採取部23が設定ファイル231に指定された仮想CPUまたは物理CPUのTLBに登録されている情報を指定のタイミングで採取する。設定ファイル231でのタイミングの指定は、例えば、ブート時、緊急停止時、システム停止時等を含む。また、設定ファイル231での仮想CPUまたは物理CPUの指定は、例えば、CPU番号による指定、緊急停止した仮想CPU、物理の指定、全CPU指定等を含む。さらに、TLB情報採取部23は採取した情報を設定ファイル231に指定された出力先へ格納する。したがって、実施例1の情報処理装置1は、オペレーティングシステム11の障害など、トラブルの原因を調査するための情報採取および、動作確認(リグレッションテスト)を目的として、CPU15に含まれる仮想CPUあるいは物理CPUのTLBに登録されている情報を採取することができる。TLB情報の採取に際して、CPU15は、調査するトラブルや動作確認に有効であるとシステム管理者が考える情報の指定を受けることができる。そして、CPU15は、指定を受けた情報を選別して取得することができる。
例えば、論理CPUを512個搭載した情報処理装置でシステムの緊急停止(パニック)が発生した場合を想定する。比較例の方法では、システム管理者は、ツールを繰り返し(512回)実行し、すべてのCPUのTLBに登録されている合計200万以上のアドレス変換情報を採取する。
一方、実施例1の情報処理装置1では、図6に示したように、システム管理者は、指定した特定の仮想CPUまたは物理CPUのTLB情報を取得できる。また、情報処理装置1では、システム管理者は、緊急停止(パニック)の原因となった仮想CPUまたは物理CPUのTLBに登録されている情報を採取できる。このため、情報処理装置1では、比較例の場合よりも、採取するデータ量と採取にかかる時間を大幅に削減することができる。
そして、図4、図5に示したように、報処理装置1では、システム管理者が指定した特定のタイミングでTLB情報を取得できる。なお、情報取得のタイミングは、図4に示した、ブート時、システム停止時、緊急停止時に限定されることはなく、その他の処理(図4のK8)において、情報を取得してもよい。
さらに、何らかの異常が発生してシステムを緊急停止した場合、システム管理者は、ファームウェア12でコマンドを実行するためにオペレーティングシステム11を一時停止しなくてもよい。情報処理装置1では、システム管理者は、TLBに登録されている情報を採取するように、予め設定ファイル231に設定できる。そのため、システム管理者は、緊急停止時にも、容易にTLBに登録されている情報を採取できる。
図7を参照して実施例2に係る情報処理装置1の処理を説明する。上記実施例1では、システム管理者が指定したタイミングで、指定された仮想CPUまたは物理CPUのTLB情報を採取する処理例を示した。実施例2では、パニックが発生した時に、システム管理者指定の仮想CPUまたは物理CPUのTLB情報を採取する処理例を説明する。実施例2の他の構成および作用は、実施例1の場合と同様である。そこで、実施例1と同一の構成要素については、その説明を省略する。また、実施例1の図面は、実施例2おいても、そのまま適用できるものとして、以下の説明がなされる。
図7は、実施例2に係る情報処理装置1の動作を例示するフローチャートである。実施例2では、予め設定ファイル231でtlb-dump-cpu ="0, 2"、tlb-dump-output ="crash-dump"を指定しておいた場合に、何らかの異常が発生して緊急停止(パニック)する際の処理を説明する。すなわち、緊急停止時に、CPU番号0とCPU番号2の仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)のTLBに登録されている情報、およびメモリダンプが採取される。
例えば、オペレーティングシステム11が異常を検出すると、情報処理装置1の緊急停止(パニック)を実行する。実施例2では、情報処理装置1の緊急停止前に、オペレーティングシステム11を実行する仮想CPU(または物理CPU)は、TLB情報採取部23を呼び出す。上記実施例1と同様、実施例2においても、CPU15内のいずれかの仮想CPU(または物理CPU)がプログラムを実行する場合に、単にCPU15がプログラムを実行するという。すなわち、CPU15は、TLB情報採取部23として、オペレーティングシステム11に含まれるプログラムを実行する。以下、図7の処理の実行主体がTLB情報採取部23であるとして、処理を説明する。
図7の処理では、オペレーティングシステム11の稼働中、オペレーティングシステム11が情報処理装置1の何らかの異常、例えば、ハードウェアの異常等を検出する。情報処理装置1の異常は、例えば、ハードウェアのトラップという処理によって検出される。すると、オペレーティングシステム11を実行中の仮想CPU(または物理CPU)において、それぞれのトラップに対応する割り込みベクタに設定されたハンドラが起動される。そして、ハンドラは、オペレーティングシステム11の緊急停止を要求する(S31)。
オペレーティングシステム11は、緊急停止の要求が発生すると、TLB情報採取部23を呼び出す(S32)。例えば、S32の処理は、ハンドラの中で実行するようにしてもよい。
すると、TLB情報採取部23は、TLB情報採取設定ファイル231から以下の情報を読み取る(S33)。すなわち、tlb-dump-cpu ="0, 2";tlb-dump-output ="crash-dump";S33によって、TLB情報採取部23は、処理対象の仮想CPU(または物理CPU)を指定するCPU番号と、採取したTLB情報の出力先を認識する。
次に、TLB情報採取部23は、すべての採取対象の仮想CPU(または物理CPU)からTLBに登録されている情報を採取したか否かを判定する(S34)。
すべての採取対象の仮想CPU(または物理CPU)からTLBに登録されている情報を採取していない場合、TLB情報採取部23は、TLB情報採取部23の処理を実行している仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)と、TLB情報を採取する対象の仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)とが一致するか否かを判定する(S35)。
S35の判定で、一致しないと判定された場合、TLB情報採取部23は、TLB情報を採取する対象の仮想CPU(仮想CPUの仕組みがない場合には、物理CPU)へTLB情報を採取するASI命令を実行するように、指示する。そして、指示の結果、採取された情報をメモリ上に格納する。S36で、1つの仮想CPU(または物理CPU)から他の仮想CPU(または物理CPU)に命令を指示する処理は、例えば、CPU間で割り込みを通知することでなされる。CPU間の割り込みは、クロスコールとも呼ばれる。CPU間の割り込みを受けた他の仮想CPU(または物理CPU)では、通常の割り込みと同様に、ハンドラに制御が移動する。そして、CPU間の割り込みに対応する所定の処理、例えば、ハンドラ実行中の仮想CPU(または物理CPU)のTLBに登録された情報の採取がなされる。さらに、採取された情報は、メモリ16上の所定の領域、例えば、複数の仮想CPU間の共有メモリに格納され、TLB情報採取部23実行中の仮想CPU(または物理CPU)に引き渡される。TLB情報採取部23実行中の仮想CPU(または物理CPU)は、ASI命令の実行を指示した仮想CPU(または物理CPU)によって採取された情報取得し、メモリ14に一時的に格納する(S36)。
S35の判定で、一致すると判定された場合、TLB情報採取部23は、TLB情報採取部23実行中の仮想CPU(または物理CPU)において、TLB情報を採取するASI命令を実行する。そして、TLB情報採取部23は、採取した情報をメモリ14に一時的に格納する(S37)。そして、TLB情報採取部23は、制御をS34に戻す。
すべての採取対象の仮想CPU(または物理CPU)からTLBに登録されている情報を採取すると、TLB情報採取部23は、制御をS38に進める。すると、パニック処理部22の処理、例えば、パニックメッセージの表示/記憶部221による処理、ファイルシステムの同期処理部222による処理、カーネルダンプ処理部223による処理が実行される。実施例2では、カーネルダンプ処理部223の出力先に、TLB情報採取部23が採取したTLBの情報が出力される。そして、再起動部224が情報処理装置1の再起動を行う(S38)。
以上述べたように、実施例2のTLB情報採取部23は、TLB情報採取設定ファイル231の設定にしたがい、CPU番号が0と2である仮想CPU(または物理CPU)からTLBに登録されている情報を採取し、メモリ上に格納する。その後、システムの緊急停止(パニック)が実行され、採取したTLB情報はクラッシュダンプとしてダンプファイルに出力される。
なお、実施例2では、緊急停止時に、TLB情報を取得する例を示したが、実施例1の図4、図5に示した処理を実行することにより、システム管理者が指定したタイミングでTLB採取処理を実行することもできる。
すなわち、実施例2の情報処理装置1によれば、システム管理者が指定したタイミング、例えば、緊急停止時に、指定した仮想CPUまたは物理CPUからTLB情報を採取することができる。そして、システム管理者が指定した出力先に採取したTLB情報を出力することができる。
図8を参照して実施例3に係る情報処理装置1の処理を説明する。上記実施例1では、システム管理者が指定したタイミングで、指定された仮想CPUまたは物理CPUのTLB情報を取得する処理例を示した。実施例2では、パニックが発生した時に、システム管理者指定の仮想CPUまたは物理CPUのTLB情報を採取する処理例を説明した。一方、実施例3では、システム管理者が情報処理装置1に備え付けられたスイッチ13を押した時に、TLB情報を取得する処理例を説明する。実施例3の他の構成および作用は、実施例1、または実施例2の場合と同様である。そこで、実施例1、または実施例2と同一の構成要素については、その説明を省略する。また、実施例1、実施例2の図面は、実施例3おいても、そのまま適用できるものとして、以下の説明がなされる。
図8は、情報処理装置1に備え付けられたスイッチ13をシステム管理者が押した時の処理を例示するフローチャートである。なお、図8は、例えば、予め設定ファイル231でtlb-dump-cpu ="all"、tlb-dump-output ="crash-dump"を指定しておいた場合を想定する。ただし、情報処理装置1のTLB採取処理は、tlb-dump-cpu ="all"、tlb-dump-output ="crash-dump"に限定される訳ではなく、他の設定でも同様に、実施例3の処理を適用できる。
まず、情報処理装置1に設けられたスイッチ13が押下されると、ファームウェア12がCPU15(オペレーティングシステム11に割り当てられた仮想CPUまたは物理CPU)に割り込みを通知する。CPU15が割り込みを受信すると、割り込みベクタを通じて、割り込みに対応するハンドラが起動され、オペレーティングシステム11は、割り込みを受信する(S41)。
オペレーティングシステム11がスイッチ13の押下に対応する割り込みを受信すると、TLB情報採取取得部23を呼び出す(S42)。
TLB情報採取取得部23は、設定ファイル231から、以下の情報を読み取る(S43)。すなわち、tlb-dump-cpu =" all ";tlb-dump-output ="crash-dump";S43によって、TLB情報採取部23は、処理対象の仮想CPU(または物理CPU)を指定するCPU番号と、採取したTLB情報の出力先を認識する。S43−S48の処理は、図7でのS33−S38の処理と同様であるので、その説明を省略する。ただし、図8では、すべての仮想CPUまたは物理CPUのTLBに登録された情報が採取される。
以上述べたように、情報処理装置1に備え付けられたスイッチ13が押下されると、TLB情報採取部23は設定ファイル231の指定にしたがって、指定の仮想CPUまたは物理CPUからTLBに登録されている情報を採取し、指定の出力先に出力する。したがって、情報処理装置1は、実施例3の手順によっても、指定のタイミングで、指定の対象からTLB情報を採取し、システム管理者に提供できる。
例えば、何らかの異常が発生してシステムがハングアップして該当システムにログインできない場合や、コマンド操作を行うための端末が使用できない場合は、各CPU(仮想CPUまたは物理CPU)のTLBに登録されている情報を出力するためのツールを実行することができない場合も生じえる。したがって、各CPUのTLBに登録されている情報を採取することができないため、オペレーティングシステム11の障害などのトラブルの原因を調査できないこともある。
実施例3の処理によれば、TLB情報採取部23は、コンピュータの管理者がスイッチ13を通じて指定したタイミングで、予めコンピュータの管理者が指定したCPUのTLBに登録されている情報を自動的に採取して、システム管理者が指定した出力先に格納する。また、情報処理装置1がハングアップしてログインできない場合や、コマンド操作を行うための端末が使用できない場合でも、トラブルの原因を調査するための情報採取および情報処理装置1の復旧処理を速やかに実施することが可能となる。
上記実施例1−3では、システム管理者が指定したタイミングで、指定された仮想CPUまたは物理CPUのTLB情報を取得する処理例を示した。実施例4では、TLB情報の取得に際して、実行されるASI命令が格納された物理アドレスを得るためのTLBのエントリをロックする処理例を説明する。実施例4の他の構成および作用は、実施例1の場合と同様である。そこで、実施例1−3と同一の構成要素については、その説明を省略する。また、実施例1−3の図面は、実施例4おいても、そのまま適用できるものとして、以下の説明がなされる。
オペレーティングシステム11の稼働中は、各CPU(仮想CPUあるいは物理CPU)のTLBに登録されている情報が頻繁に更新される。トラブルの原因調査や動作確認を目的として、ファームウェア12のコマンドなどの外部ツールでTLBの情報を採取する場合は、情報採取処理中にTLBに登録されている情報が更新されてしまう場合がある。すると、採取した情報と、問題が生じたときにTLBに登録されていた情報、あるいは、システム管理者が指定したタイミングにおいてTLBに登録されていた情報とが一致しない場合が生じえる。そして、情報が一致しない結果、問題の解析に不都合が生じることもある。そのような不都合の発生を抑制するため、例えば、オペレーティングシステム11を一時的に停止することも考えられる。しかし、オペレーティングシステム11を一時的に停止する処理によっても、各CPU(仮想CPUあるいは物理CPU)のTLBに登録されている情報を更新してしまう可能性がある。
図9は、TLB情報採取部23の命令コードとデータ域を配置するメモリ領域に対応するTLBのエントリをロックする処理を例示するフローチャートである。例えば、UltraSPARCプロセッサを搭載したシステムの場合は、TLBにロックビットが設けられている。そこで、実施例の情報処理装置1は、TLB情報採取部23の命令コード(ASI命令)とデータ域をメモリ上に配置する際、配置されるメモリ上のアドレスに対応するTLBエントリが削除されないようにロックビットを設定する。ロックビットが設定されたTLBエントリは、書き換え禁止となり、TLBエントリの情報が維持される。
なお、TLBエントリをロックして、ロックしたTLBエントリを使用する代わりに、予めロックされているTLBエントリに対応するメモリ領域に、TLB情報採取部23の命令コード(ASI命令)とデータ域を配置してもよい。また、予めTLBに登録(ロック)されている仮想アドレスに対応する実アドレスのメモリ上に命令コード(ASI命令)とデータ域を配置してもよい。要するに、実施例4の処理は、TLB情報の採取のための命令コード(ASI命令)実行に伴う副作用によって、TLBエントリの情報が更新されることを抑制するものである。
図9の処理は、例えば、オペレーティングシステム11のブートのときに、オペレーティングシステム11を起動する仮想CPUまたは物理CPUが実行するようにすればよい。以下、図9の処理は、CPU15が実行するものとして説明する。
図9の処理では、まず、CPU15は、TLB情報採取部23を配置するための仮想メモリ領域を確保する(S1)。
次に、CPU15は、仮想メモリ領域に対応する物理メモリ領域を確保する(S2)。
次に、CPU15は、論理/物理アドレス変換情報を作成し、ロックビットを設定して、TLBに登録する(S3)。CPU15は、情報が登録されたエントリをロックし、登録済みの情報の書き換えを抑止する手段として、S3の処理を実行する。
そして、CPU15は、TLB情報採取部23に対応するオペレーティングシステム11のプログラムと、採取した情報の格納先をロックされたTLBに対応するメモリ14上に配置する(S4)。CPU15は、TLBアクセス命令を登録する手段として、S4の処理を実行する。
以上の処理により、TLB情報採取部23の実行によるTLB情報を採取するASI命令の発行に伴うTLBエントリの削除、あるいは、更新を抑制できる。すなわち、情報採取部23の処理を実行することによるTLBに登録されている情報を更新することが抑制される。したがって、システム管理者が所望するタイミングで所望するTLBエントリに登録されていた情報を取得できる可能性が高まる。
TLBのエントリをロックする方法(ロックビット)の詳細は、UltraSPARCプロセッサのマニュアル(UltraSPARC User's Manual Revision 2, July 1997)の6章に記載されている。ただし、UltraSPARCプロセッサ以外のプロセッサにおいても、それぞれのプロセッサのアーキテクチャにしたがって、TLBのエントリをロックする機能が提供される。したがって、実施例4の処理は、UltraSPARCプロセッサ以外のプロセッサにおいても、同様の手順で適用可能である。
実施例4の情報処理装置1ではオペレーティングシステム11を稼働させたまま、CPUのTLBに登録されている情報を採取・保存することができる。従来の方法ではTLBに登録されている情報の更新を防ぐためにオペレーティングシステムを一時停止する必要があり、その停止処理によってもTLBに登録されている情報を更新してしまう可能性があった。しかし、実施例4の情報処理装置1では、TLB情報採取処理の命令コードとデータ域をメモリ上に配置する際、対応するアドレス変換情報がTLBから削除されないようにロックするか、予めTLBに登録(ロック)されている仮想アドレス上に配置しておく。このため、命令コードを実行することでTLBに登録されている情報を更新することが抑制される。したがって、TLB採取のために、オペレーティングシステム11を停止しなくても、トラブルの原因調査や動作確認に必要な情報を採取することができるようになる。
《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、BD(Blu-ray Disc)、DAT(Digital Audio Tape)、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。
1 情報処理装置
11 オペレーティングシステム
12 ファームウェア
13 スイッチ
14 ディスク
15 CPU
16 メモリ
17 標準出力
21 割り込み処理部
22 パニック処理部
23 TLB情報採取部
231 TLB情報採取用設定ファイル

Claims (9)

  1. それぞれがTLB(Translation Lookaside Buffer)を有する複数の処理部と、
    前記複数の処理部のうちの前記TLBの情報が採取される処理部の指定と前記TLBの情報が採取されるタイミングの指定とを取得する手段と、
    前記TLBに含まれ、情報が登録されたエントリをロックし、登録済みの情報の書き換えを抑止する手段と、
    前記ロックされたエントリを通じてアクセスされるメモリ上に前記TLBの情報を採取するTLB採取命令を登録する手段と、
    前記指定のタイミングにおいて前記指定の処理部から前記TLBの情報を採取する手段と、
    を備える情報処理装置。
  2. それぞれがTLB(Translation Lookaside Buffer)を有する複数の処理部と、
    前記複数の処理部のうちの前記TLBの情報が採取される処理部の指定と前記TLBの情報が採取されるタイミングの指定とを取得する取得手段と、
    前記指定のタイミングにおいて前記指定の処理部から前記TLBの情報を採取する手段と、
    前記TLBの情報が採取されるタイミングとして、前記処理部の停止が指定されている場合、前記TLBの情報を採取した後に当該処理部を停止させる手段と、
    を備える情報処理装置。
  3. 前記取得手段は、前記TLBの情報が採取される複数の処理部の指定を取得する
    請求項2に記載の情報処理装置。
  4. それぞれがTLB(Translation Lookaside Buffer)を有する複数の処理部を備えるコンピュータが、
    前記複数の処理部のうちの前記TLBの情報が採取される処理部の指定と前記TLBの情報が採取されるタイミングの指定とを取得するステップと、
    前記TLBに含まれ、情報が登録されたエントリをロックし、登録済みの情報の書き換
    えを抑止するステップと、
    前記ロックされたTLBのエントリを通じてアクセスされるメモリ上に前記TLBの情報を採取するTLB採取命令を登録するステップと、
    前記指定のタイミングにおいて前記指定の処理部から前記TLBの情報を採取するステップと、
    を実行する情報処理方法。
  5. それぞれがTLB(Translation Lookaside Buffer)を有する複数の処理部を備えるコンピュータが、
    前記複数の処理部のうちの前記TLBの情報が採取される処理部の指定と前記TLBの情報が採取されるタイミングの指定とを取得する取得ステップと、
    前記指定のタイミングにおいて前記指定の処理部から前記TLBの情報を採取するステップと、
    前記TLBの情報が採取されるタイミングとして、前記処理部の停止が指定されている場合、前記TLBの情報を採取した後に当該処理部を停止させるステップと、
    を実行する情報処理方法。
  6. 前記取得ステップにおいて、前記TLBの情報が採取される複数の処理部の指定を取得する
    請求項5に記載の情報処理方法。
  7. それぞれがTLB(Translation Lookaside Buffer)を有する複数の処理部を備えるコンピュータに、
    前記複数の処理部のうちの前記TLBの情報が採取される処理部の指定と前記TLBの情報が採取されるタイミングの指定とを取得するステップと、
    前記TLBに含まれ、情報が登録されたエントリをロックし、登録済みの情報の書き換えを抑止するステップと、
    前記ロックされたTLBのエントリを通じてアクセスされるメモリ上に前記TLBの情報を採取するTLB採取命令を登録するステップと、
    前記指定のタイミングにおいて前記指定の処理部から前記TLBの情報を採取するステップと、
    を実行させるためのプログラム。
  8. それぞれがTLB(Translation Lookaside Buffer)を有する複数の処理部を備えるコンピュータに、
    前記複数の処理部のうちの前記TLBの情報が採取される処理部の指定と前記TLBの情報が採取されるタイミングの指定とを取得する取得ステップと、
    前記指定のタイミングにおいて前記指定の処理部から前記TLBの情報を採取するステップと、
    前記TLBの情報が採取されるタイミングとして、前記処理部の停止が指定されている場合、前記TLBの情報を採取した後に当該処理部を停止させるステップと、
    を実行させるためのプログラム。
  9. 前記取得ステップにおいて、前記TLBの情報が採取される複数の処理部の指定を取得する
    請求項8に記載のプログラム。
JP2012504195A 2010-03-09 2010-03-09 情報処理装置、情報処理方法、およびプログラム Expired - Fee Related JP5423871B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/053898 WO2011111172A1 (ja) 2010-03-09 2010-03-09 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2011111172A1 JPWO2011111172A1 (ja) 2013-06-27
JP5423871B2 true JP5423871B2 (ja) 2014-02-19

Family

ID=44563017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012504195A Expired - Fee Related JP5423871B2 (ja) 2010-03-09 2010-03-09 情報処理装置、情報処理方法、およびプログラム

Country Status (6)

Country Link
US (1) US9122597B2 (ja)
EP (1) EP2546748A1 (ja)
JP (1) JP5423871B2 (ja)
KR (1) KR101393992B1 (ja)
CN (1) CN102792280A (ja)
WO (1) WO2011111172A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013206147A (ja) * 2012-03-28 2013-10-07 Yokohama National Univ ロギング装置、ロギング方法及びプログラム
JP6079065B2 (ja) * 2012-08-31 2017-02-15 富士通株式会社 情報処理装置,処理方法及びプログラム
JP6237543B2 (ja) * 2014-09-01 2017-11-29 株式会社デンソー 車載装置
US10802986B2 (en) 2016-07-18 2020-10-13 International Business Machines Corporation Marking to indicate memory used to back address translation structures
US10176110B2 (en) * 2016-07-18 2019-01-08 International Business Machines Corporation Marking storage keys to indicate memory used to back address translation structures
US10168902B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing purging of structures associated with address translation
US10180909B2 (en) 2016-07-18 2019-01-15 International Business Machines Corporation Host-based resetting of active use of guest page table indicators
US10176006B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Delaying purging of structures associated with address translation
US10169243B2 (en) 2016-07-18 2019-01-01 International Business Machines Corporation Reducing over-purging of structures associated with address translation
US10223281B2 (en) 2016-07-18 2019-03-05 International Business Machines Corporation Increasing the scope of local purges of structures associated with address translation
US10282305B2 (en) 2016-07-18 2019-05-07 International Business Machines Corporation Selective purging of entries of structures associated with address translation in a virtualized environment
US10162764B2 (en) * 2016-07-18 2018-12-25 International Business Machines Corporation Marking page table/page status table entries to indicate memory used to back address translation structures
US10248573B2 (en) 2016-07-18 2019-04-02 International Business Machines Corporation Managing memory used to back address translation structures
US10176111B2 (en) 2016-07-18 2019-01-08 International Business Machines Corporation Host page management using active guest page table indicators
US10241924B2 (en) 2016-07-18 2019-03-26 International Business Machines Corporation Reducing over-purging of structures associated with address translation using an array of tags

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02227747A (ja) * 1989-02-28 1990-09-10 Nec Corp ジョブステップダンプ自動採取方式
JPH03100855A (ja) * 1989-09-14 1991-04-25 Fujitsu Ltd 情報収集方式
JPH0588934A (ja) * 1991-09-30 1993-04-09 Kobe Nippon Dekin Software Kk デバツグ方式
JPH06309196A (ja) * 1993-04-20 1994-11-04 Oki Electric Ind Co Ltd トレース機能付情報処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63273149A (ja) 1987-04-30 1988-11-10 Nec Corp 変換索引緩衝機構の診断方式
US6931510B1 (en) * 2000-07-31 2005-08-16 Sun Microsystems, Inc. Method and system for translation lookaside buffer coherence in multiprocessor systems
US20080077780A1 (en) 2003-07-25 2008-03-27 Zingher Arthur R System and Method for Software Debugging
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US7299335B2 (en) * 2005-05-27 2007-11-20 Freescale Semiconductor, Inc. Translation information retrieval transparent to processor core
US20070005933A1 (en) * 2005-06-29 2007-01-04 Kopec Brian J Preventing multiple translation lookaside buffer accesses for a same page in memory
US7426626B2 (en) 2005-08-23 2008-09-16 Qualcomm Incorporated TLB lock indicator
US20070094476A1 (en) * 2005-10-20 2007-04-26 Augsburg Victor R Updating multiple levels of translation lookaside buffers (TLBs) field
JP2008102850A (ja) * 2006-10-20 2008-05-01 Toshiba Corp 情報処理装置及び情報処理方法
JP2009059005A (ja) * 2007-08-29 2009-03-19 Panasonic Corp デバッグシステム、デバッグ装置および方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02227747A (ja) * 1989-02-28 1990-09-10 Nec Corp ジョブステップダンプ自動採取方式
JPH03100855A (ja) * 1989-09-14 1991-04-25 Fujitsu Ltd 情報収集方式
JPH0588934A (ja) * 1991-09-30 1993-04-09 Kobe Nippon Dekin Software Kk デバツグ方式
JPH06309196A (ja) * 1993-04-20 1994-11-04 Oki Electric Ind Co Ltd トレース機能付情報処理装置

Also Published As

Publication number Publication date
EP2546748A1 (en) 2013-01-16
US20120331266A1 (en) 2012-12-27
JPWO2011111172A1 (ja) 2013-06-27
CN102792280A (zh) 2012-11-21
US9122597B2 (en) 2015-09-01
WO2011111172A1 (ja) 2011-09-15
KR101393992B1 (ko) 2014-05-12
KR20120115426A (ko) 2012-10-17

Similar Documents

Publication Publication Date Title
JP5423871B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US8423997B2 (en) System and method of controlling virtual machine
JP4489802B2 (ja) マルチcpuコンピュータおよびシステム再起動方法
US7774636B2 (en) Method and system for kernel panic recovery
US9229820B2 (en) Information processing device with memory dump function, memory dump method, and recording medium
JP4783392B2 (ja) 情報処理装置および障害回復方法
JP2009512020A (ja) オペレーティングシステムの停止状態からの高速起動
JP2007226413A (ja) メモリダンプ方法、メモリダンププログラム、及び、計算機システム
US20090276205A1 (en) Stablizing operation of an emulated system
US10810039B2 (en) Monitoring utilization of transactional processing resource
US11822419B2 (en) Error information processing method and device, and storage medium
EP2869189A1 (en) Boot up of a multiprocessor computer
US10324811B2 (en) Opportunistic failover in a high availability cluster
CN110764962A (zh) 日志处理方法和装置
US20050283586A1 (en) Stepping a virtual machine guest
JP2015118493A (ja) トレース装置及びトレースプログラム
JP6164283B2 (ja) ソフトウェア安全停止システム、ソフトウェア安全停止方法、およびプログラム
US9691503B2 (en) Allocation technique for memory diagnostics
JP5877533B2 (ja) 計算機装置及び計算機装置の制御方法
JP4945774B2 (ja) ディスクアレイ装置およびトランスポート制御用プロセッサコアの障害情報データ採取方法
JP5540890B2 (ja) 障害処理プログラム、制御方法、及び情報処理装置
JP2009223841A (ja) 命令ログ取得プログラム及び仮想計算機システム
JP2018013859A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2007249634A (ja) ロック管理方法及びロック管理システム
JP2022107229A (ja) 情報処理装置、制御方法及び制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130610

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131111

R150 Certificate of patent or registration of utility model

Ref document number: 5423871

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees