JP7298950B1 - 情報処理装置、リカバリ方法及びプログラム - Google Patents

情報処理装置、リカバリ方法及びプログラム Download PDF

Info

Publication number
JP7298950B1
JP7298950B1 JP2022017878A JP2022017878A JP7298950B1 JP 7298950 B1 JP7298950 B1 JP 7298950B1 JP 2022017878 A JP2022017878 A JP 2022017878A JP 2022017878 A JP2022017878 A JP 2022017878A JP 7298950 B1 JP7298950 B1 JP 7298950B1
Authority
JP
Japan
Prior art keywords
bus
computer system
blockage
information processing
instruction
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.)
Active
Application number
JP2022017878A
Other languages
English (en)
Other versions
JP2023115581A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2022017878A priority Critical patent/JP7298950B1/ja
Priority to US18/100,957 priority patent/US20230251947A1/en
Application granted granted Critical
Publication of JP7298950B1 publication Critical patent/JP7298950B1/ja
Publication of JP2023115581A publication Critical patent/JP2023115581A/ja
Active 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/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • 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/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface

Landscapes

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

Abstract

【課題】汎用的なコンピュータシステムとデバイスとの間のバスを、閉塞された状態からリカバリする。【解決手段】情報処理装置は、コンピュータシステムと、デバイスとを備える。コンピュータシステムとデバイスとはバスで接続される。コンピュータシステムのオペレーションシステム上で動作する監視手段は、検出手段と、閉塞解除手段とを備える。検出手段は、バスの閉塞を検出する。閉塞解除手段は、バスの閉塞が検出された場合に、閉塞解除処理を行う。閉塞解除処理は、オペレーションシステムにデバイスの切り離しを指示する処理と、バスの閉塞を解除する処理と、指示を受けたオペレーションシステムによりコンピュータシステムから切り離されたデバイスをリセットする処理と、デバイスのリセット後にオペレーションシステムにデバイスを接続するよう指示する処理とを含む。【選択図】図1

Description

本発明は、情報処理装置、リカバリ方法及びプログラムに関する。
PCI(Peripheral Component Interconnect)バスを利用したコンピュータシステムは、PCIバス障害が発生した場合、その障害が発生したPCIバスを閉塞する。この閉塞によって、コンピュータシステムは、PCIバスにより接続されたPCIデバイスを利用できなくなる。PCIバス障害の多くは、間欠障害である。間欠障害の場合、閉塞されたPCIバスをリカバリすることによって、コンピュータシステムはPCIデバイスを再び利用可能になる(例えば、特許文献1参照)。
特開2009-116642号公報
特許文献1の技術では、BIOSへの作り込みが必要となる。しかしながら、汎用サーバなどのコンピュータシステムでは、BIOSの改造が困難な場合がある。
そこでこの発明は、上述の課題を解決することができる情報処理装置、リカバリ方法及びプログラムを提供することを目的としている。
本発明の第1の態様によれば、情報処理装置は、コンピュータシステムと、前記コンピュータシステムとバスで接続されるデバイスとを備え、前記コンピュータシステムのOS上で動作するソフトウェアの実行により実現される監視手段は、前記バスの閉塞を検出する検出手段と、前記バスの閉塞が検出された場合に、前記OSに前記デバイスの切り離しを指示する処理と、前記バスの閉塞を解除する処理と、前記指示を受けた前記OSにより前記コンピュータシステムから切り離された前記デバイスをリセットする処理と、前記デバイスのリセット後に前記OSに前記デバイスを接続するよう指示する処理とを含む閉塞解除処理を行う閉塞解除手段とを備える。
本発明の第2の態様によれば、リカバリ方法は、コンピュータシステムのOS上で動作するソフトウェアの実行により実現される監視手段が行う方法であって、前記コンピュータシステムとデバイスとを接続するバスの閉塞を検出する検出ステップと、前記バスの閉塞が検出された場合に、前記OSに前記デバイスの切り離しを指示する切り離し指示ステップと、前記バスの閉塞を解除する閉塞解除ステップと、前記指示を受けた前記OSにより前記コンピュータシステムから切り離された前記デバイスをリセットするリセットステップと、前記デバイスのリセット後に前記OSに前記デバイスを接続するよう指示する接続指示ステップと、を有する。
本発明の第3の態様によれば、リカバリ方法は、コンピュータシステムが行う方法であって、前記コンピュータシステムOS上で動作するソフトウェアの実行により実現される監視手段が、前記コンピュータシステムとデバイスとを接続するバスの閉塞を検出する検出ステップと、前記監視手段が、前記バスの閉塞が検出された場合に、前記OSに前記デバイスの切り離しを指示する切り離し指示ステップと、前記監視手段が、前記バスの閉塞を解除する閉塞解除ステップと、記切り離し指示ステップにおける前記指示を受けた前記OSにより前記コンピュータシステムから前記デバイスを切り離す切り離しステップと、前記監視手段が、前記コンピュータシステムから切り離された前記デバイスをリセットするリセットステップと、前記監視手段が、前記デバイスのリセット後に前記OSに前記デバイスを接続するよう指示する接続指示ステップと、記接続指示ステップにおける前記指示を受けた前記OSにより前記デバイスを前記コンピュータシステムに接続する接続ステップと、を有する。
本発明の第4の態様によれば、プログラムは、コンピュータシステムに上記のリカバリ方法を実行させるためのプログラムである。
本発明によれば、汎用的なコンピュータシステムとデバイスとの間のバスを、閉塞された状態からリカバリすることが可能となる。
本発明の一実施形態による情報処理装置の機能ブロック図である。 同実施形態による情報処理装置の準備フェーズにおける処理を示すフロー図である。 同実施形態による情報処理装置の監視フェーズにおける処理を示すフロー図である。 同実施形態による情報処理装置のPCIバス閉塞解除処理を示すフロー図である。 同実施形態による情報処理装置のPCIバス閉塞継続処理を示すフロー図である。 同実施形態による情報処理装置の機能ブロック図である。
以下、図面を参照して本発明の実施の形態を詳細に説明する。
図1は、本発明の一実施形態による情報処理装置100の構成を示す機能ブロック図である。図1では、本実施形態と関係する機能ブロックのみを抽出して示している。なお、図1における機能ブロック間の矢印は、機能ブロック間における処理等を端的に表すものであり、各機能ブロック間の双方向性を排除するものではない。情報処理装置100は、例えば、サーバコンピュータなどの装置である。情報処理装置100は、HW(ハードウェア)レイヤL10とSW(ソフトウェア)レイヤL11とを含んで構成される。
HWレイヤL10は、情報処理装置100を構成するハードウェアの装置を示す。HWレイヤL10は、コンピュータシステム1と、PCIデバイス2と、PCIバス3とを有する。コンピュータシステム1は、PCIデバイス2とPCIバス3により接続される。コンピュータシステム1は、プロセッサや各種メモリなどを含む。コンピュータシステム1は、PCIバス閉塞レジスタ4を有する。PCIバス閉塞レジスタ4は、PCIバス閉塞フラグの値を記憶するレジスタである。本実施形態において、PCIバス閉塞フラグ「0」はPCIバス3が閉塞されていないことを示し、PCIバス閉塞フラグ「1」は、PCIバス3が閉塞されていることを示す。
SWレイヤL11は、コンピュータシステム1がプログラムを実行することにより、HWレイヤL10を用いて実現される機能及びその機能に用いられるデータを示す。SWレイヤL11は、BIOS(Basic Input/Output System)11と、ACPI(Advanced Configuration and Power Interface)テーブル12と、EFI(Extensible Firmware Interface)パーティション13と、OS(Operation System)17と、監視部18と、PCIデバイスドライバ19とを有する。
BIOS11は、コンピュータシステム1がUEFI(Unified Extensible Firmware Interface)仕様で規定されたBIOSのプログラムを実行することにより実現される。BIOS11として、一般的な汎用サーバ等に搭載されているものを利用可能である。ACPIテーブル12は、ACPI仕様で規定されたデータ構造のデータである。ACPIテーブル12は、コンピュータシステム1の起動時にBIOS11によって作成される。ACPIテーブル12には、システムの初期化に必要なデータが格納される。OS17は、ACPIテーブル12を参照可能である。
EFIパーティション13は、BIOS11及びOS17からアクセス可能なデータ記憶領域である。一般的に、EFIパーティション13には、OSブートローダ16が配置される。さらに、本実施形態のEFIパーティション13には、PCIバス閉塞向けEFIアプリ14とACPI SSDT DATA15とが配置される。以下では、PCIバス閉塞向けEFIアプリ14を「EFIアプリ14」と記載する。
EFIアプリ14は、BIOS11上で動作するEFIアプリケーションである。EFIアプリケーションは、UEFI仕様で規定されるBIOS上で動作するアプリケーションである。EFIアプリ14は、ACPI SSDT DATA15を含んでいる。EFIアプリ14は、BIOS11の起動後に、ACPI SSDT DATA15をACPIテーブル12に追加するようにBIOS11に指示する。具体的には、EFIアプリ14は、UEFI仕様で用意されているAPI(Application Program Interface)を用いて、ACPI SSDT DATA15をACPIテーブル12に追加する。EFIアプリ14は、この追加後にOSブートローダ16を起動する。なお、EFIアプリ14から読み出し可能であれば、ACPI SSDT DATA15は、EFIアプリ14の外部に記憶されてもよい。
ACPI SSDT DATA15は、Bus Check Notifyを発行するACPI Methodが記述されたデータである。Bus Check Notifyは、ACPI仕様で規定されている。Bus Check Notifyは、OS17がPCIデバイス2を再認識するための通知である。OS17は、Bus Check Notifyを受けたときに、PCIデバイス2が見つからなければ、PCIデバイスドライバ19を停止する。これにより、PCIデバイス2を、論理的に切り離された状態とする。OS17は、PCIデバイス2が見つかれば、PCIデバイスドライバ19を開始して、PCIデバイス2が論理的に接続された状態とする。これにより、OS17は、PCIデバイス2を利用可能となる。Bus Check Notifyを利用することにより、一般的なOSに改造を行うことなくPCIデバイス2の論理的な切り離し及び接続を実行させることができる。
OSブートローダ16は、OS17を起動するEFIアプリケーションである。OSブートローダ16は、BIOS11上で動作する。
OS17は、例えば、汎用サーバで動作する一般的なオペレーションシステムである。OS17は、コンピュータシステム1においてプロセッサがOSのソフトウェアをメモリから読み出して実行することにより実現される。プロセッサは、例えば、CPU(central processing unit)である。OS17は、UEFI仕様により規定されたインターフェース及びACPI仕様により規定されたインターフェースを持つ。
監視部18は、コンピュータシステム1においてプロセッサが監視ソフトウェアをメモリから読み出して実行することにより実現される。監視ソフトウェアは、OS17上で動作するソフトウェアである。監視部18は、アプリ実装部181と、履歴保持部182と、検出部183と、判断部184と、閉塞解除部185と、閉塞維持部186とを有する。
アプリ実装部181は、EFIアプリ14をEFIパーティション13に配置する処理と、EFIアプリ14をBIOS11のBoot Entryに登録する処理と、コンピュータシステム1を再起動する処理とを実行する。
履歴保持部182は、PCIバス3の障害履歴の情報を記憶する。検出部183は、PCIバス閉塞レジスタ4が記憶するPCIバス閉塞フラグを監視する。検出部183は、PCIバス閉塞フラグの値に基づいてPCIバス3の閉塞を検出する。検出部183は、PCIバス3の閉塞の履歴を履歴保持部182に書き込む。
判断部184は、検出部183がPCIバス3の閉塞を検出した場合、PCIバス閉塞解除判断処理を行う。判断部184は、PCIバス閉塞解除判断処理において、履歴保持部182が記憶している障害履歴の情報を参照し、PCIバス3の閉塞の発生回数を取得する。判断部184は、閉塞の発生回数が所定回数未満である場合、間欠障害が原因でPCIバス3が閉塞されたと判断する。この場合、閉塞解除部185は、PCIバス3の閉塞を解除するPCIバス閉塞解除処理を実行する。判断部184は、閉塞の発生回数が所定回数以上である場合、固定障害が原因でPCIバス3が閉塞されたと判断する。この場合、閉塞維持部186は、PCIバス3の閉塞を継続するPCIバス閉塞維持処理を実行する。
PCIデバイスドライバ19は、コンピュータシステム1においてプロセッサがデバイスドライバをメモリから読み出して実行することにより実現される。デバイスドライバは、OS17がPCIデバイス2を利用するためのプログラムである。PCIデバイスドライバ19は、OS17上で動作する。
続いて、情報処理装置100の動作を説明する。情報処理装置100は、「準備フェーズ」と、「監視・リカバリフェーズ」との二つのフェーズによって、PCIバス閉塞リカバリ処理を実現する。
図2は、情報処理装置100の準備フェーズにおける処理を示すフロー図である。準備フェーズは、コンピュータシステム1においてOS17が起動している状態で開始する。まず、監視部18のアプリ実装部181は、EFIアプリ14をEFIパーティション13に配置する(ステップS11)。例えば、アプリ実装部181は、監視ソフトウェア内や監視ソフトウェア内に記述されている保存場所などからEFIアプリ14のプログラムをコピーしてEFIパーティション13に書き込む。さらに、アプリ実装部181は、EFIアプリ14をBIOS11のBoot Entryに登録する(ステップS12)。Boot Entryは、BIOS11の起動完了後に、BIOS11が実行するプログラムを記述したエントリである。一般的には、Boot Entryに、OSブートローダ16が指定される。そのため、BIOS11の起動完了後に、OSブートローダ16が実行され、OS17が起動する。
アプリ実装部181は、コンピュータシステム1を再起動する(ステップS13)。コンピュータシステム1の再起動によって、BIOS11が起動する。BIOS11は起動中に、ACPIテーブル12を作成する(ステップS14)。BIOS11は、作成したACPIテーブル12を、コンピュータシステム1のメモリに書き込む。BIOS11は、起動が完了すると、Boot Entryに登録されたEFIアプリ14を起動する(ステップS15)。
EFIアプリ14は、BIOS11が作成したACPIテーブル12へACPI SSDT DATA15を追加する(ステップS16)。EFIアプリ14は、この追加を、UEFI仕様で規定されたACPI追加インターフェース(EFI_ACPI_TABLE_PROTOCOL.InstallAcpiTable)により行う。通常、BIOS11のみがACPIテーブル12の作成や変更が可能である。しかし、標準で用意されたAPI(Application Program Interface)であるACPI追加インターフェースを使用することにより、ACPIテーブル12にデータ追加を行うことができる。
続いて、EFIアプリ14は、OSブートローダ16を起動する(ステップS17)。OSブートローダ16は、起動完了後、OS17を起動する(ステップS18)。起動されたOS17は、作成されたACPIテーブル12を参照可能である。OS17の起動完了後、コンピュータシステム1がOS17上で動作する監視ソフトウェアを実行する。これにより、監視部18が起動する。監視部18の起動後、情報処理装置100は、監視フェーズに移行する(ステップS19)。
図3は、情報処理装置100の監視フェーズにおける処理を示すフロー図である。監視部18の検出部183は、PCIバス閉塞レジスタ4が記憶するPCIバス閉塞フラグを監視する(ステップS21)。コンピュータシステム1は、PCIバス閉塞が発生した場合に、PCIバス閉塞フラグを「0」から「1」に書替える(ステップS22)。
検出部183は、PCIバス閉塞フラグが「0」から「1」へ変化したことを検出する(ステップS23)。判断部184は、PCIバス閉塞解除を行うか否かを判断する(ステップS24)。そこで、判断部184は、履歴保持部182が記憶している障害履歴からPCIバス閉塞の発生回数の情報を取得する。
判断部184は、PCIバス閉塞の発生回数が所定回数未満である場合、PCIバス閉塞解除を行うと判断する(ステップS24:YES)。情報処理装置100は、後述の図4に示すPCIバス閉塞解除処理を実行する(ステップS25)。一方、判断部184は、発生回数が所定回数以上である場合、PCIバス閉塞解除を行わないと判断する(ステップS24:NO)。情報処理装置100は、後述の図5に示すPCIバス閉塞継続処理を実行する(ステップS26)。ステップS25又はステップS26の処理の後、情報処理装置100は、ステップS21のPCIバス閉塞フラグ監視処理に戻る(ステップS27)。
図4は、情報処理装置100のPCIバス閉塞解除処理を示すフロー図である。図4は、図3のステップS25における詳細な処理を示す。監視部18の閉塞解除部185は、ACPIテーブル12に登録されているBus Check Notifyを行うACPI Methodをコールする。これにより、OS17へのBus Check Notifyが発行される(ステップS31)。Bus Check Notifyが発行されたOS17は、PCIデバイス2の再認識を行う。OS17は、PCIバス3が閉塞されているためにPCIデバイス2を見つけることができない。よって、OS17は、PCIデバイスドライバ19を停止する(ステップS32)。PCIデバイスドライバ19の停止により、PCIデバイス2は、コンピュータシステム1から論理的に切り離された状態となる。
閉塞解除部185は、PCIバス閉塞フラグを「0」に書替える(ステップS33)。さらに、閉塞解除部185は、PCIバス閉塞解除を行って、閉塞中のPCIバス3の閉塞を解除する(ステップS34)。これにより、コンピュータシステム1からPCIデバイス2の制御が可能となる。閉塞解除部185は、Secondary Bus Resetを行って、PCIデバイス2をハードウェア的にリセットする(ステップS35)。Secondary Bus Resetの機能は、コンピュータシステム1に搭載されている。閉塞解除部185は、リセットされたPCIデバイス2の初期化処理を行う(ステップS36)。
続いて、閉塞解除部185は、ACPIテーブル12に登録されているBus Check Notifyを行うACPI Methodをコールし、OS17にBus Check Notifyを発行する(ステップS37)。Bus Check Notifyが発行されたOS17は、PCIデバイス2の再認識を行う。OS17は、PCIデバイス2を見つけると、PCIデバイス2を論理的に接続された状態とするためPCIデバイスドライバ19を開始する(ステップS38)。PCIデバイスドライバ19の開始により、PCIデバイス2が利用可能となる。情報処理装置100は、図3のステップS27の処理を行って、ステップS21の処理に戻る。
図5は、情報処理装置100のPCIバス閉塞継続処理を示すフロー図である。図5は、図3のステップS26における詳細な処理を示す。監視部18の閉塞維持部186は、ステップS41-1~ステップS41-6のPCIデバイスリセット処理を実行する(ステップS41)。PCIデバイスリセット処理において、まず、閉塞維持部186は、コンピュータシステム1からのPCIデバイス2に対する処理を停止する(ステップS41-1)。具体的には、閉塞維持部186は、Bus Master Disableを行って、ハードウェア的にPCIデバイス2に対する読み書きの処理を停止する。Bus Master Disableの機能は、コンピュータシステム1に搭載されている。
続いて、閉塞維持部186は、PCIバス閉塞フラグを「0」に書替える(ステップS41-2)。閉塞維持部186は、閉塞されているPCIバス3の閉塞を解除するPCIバス閉塞解除を行う(ステップS41-3)。これにより、コンピュータシステム1からPCIデバイス2へ制御のための信号を出力できるようになる。閉塞維持部186は、Secondary Bus Resetを行って、PCIデバイス2をハードウェア的にリセットする(ステップS41-5)。PCIデバイス2のリセット後、監視部18は、PCIバス閉塞フラグを「1」に書替える(ステップS41-6)。監視部18は、PCIバス3を閉塞する(ステップS41-5)。
ステップS41のPCIデバイスリセット処理の後、閉塞維持部186は、ACPIテーブル12に登録されているBus Check Notifyを行うACPI Methodをコールする。これにより、OS17にBus Check Notifyが発行される(ステップS42)。Bus Check Notifyが発行されたOS17は、PCIデバイス2の再認識を行う。OS17は、PCIバス3の閉塞のためPCIデバイス2を見つけることができない。よって、OS17は、PCIデバイスドライバ19を停止する(ステップS43)。PCIデバイス2は、コンピュータシステム1から論理的に切り離された状態になる。情報処理装置100は、図3のステップS27の処理を行って、ステップS21の処理に戻る。
PCIバスを利用したコンピュータシステムは、PCIバス障害が発生すると、障害が発生したそのPCIバスを閉塞する。PCIバス障害が間欠障害である場合、PCIバス閉塞のリカバリを行うことにより、コンピュータは起動したままで再びPCIバス及びPCIデバイスを利用可能である。しかしながら、汎用サーバの場合、BIOSに、PCIバスをリカバリする機能を実装するための改造を行うことは難しい。
BIOSを改造せずにPCIバス閉塞リカバリを実現するためには、主に次の二つの課題がある。一つめの課題は、閉塞されたPCIバスに接続されたPCIデバイスを、BIOSを使用せずにOSから論理的に切り離さなければならないことである。具体的には、BIOSが作成するACPIテーブルに、BIOSを改造することなく、Bus Check Notifyを発行するACPI Methodを組み込む必要がある。二つ目の課題は、閉塞したPCIバスに接続されたPCIデバイスが外部装置に影響を与えないように、BIOSを使用することなくPCIデバイスの電源を落さなければならないことである。
本実施形態では、BIOS11の起動後に、EFIアプリ14が、Bus Check Notifyを発行するACPI Methodを組み込んだACPI SSDT DATA15をACPIテーブル12へ追加する。EFIアプリ14は、その追加後にOSブートローダ16を起動する。OSブートローダ16によって起動されたOS17は、ACPI SSDT DATA15が設定されたACPIテーブル12を参照可能である。そして、OS17上で実行されるソフトウェアの監視部18が、ACPIテーブル12のACPI Methodをコールする。これにより、BIOSを改造することなく、上記の一つ目の課題を解決することができる。
また、本実施形態では、OS17上で実行されるソフトウェアの監視部18が、PCIデバイス2のリセット処理を行う。リセット処理においては、監視部18は、コンピュータシステム1に予め組み込まれているBus Master Disableを実行してPCIデバイス2への読み書きの処理を停止する。その後、監視部18は、PCIバス3の閉塞を解除し、コンピュータシステム1に予め組み込まれているSecondary Bus Resetを実行してPCIデバイス2をリセットする。監視部18は、リセット後に再度PCIバス3を閉塞する。よって、BIOSがPCIデバイスの電源を落とす必要がない。従って、BIOSを改造することなく、二つ目の課題を解決することができる。
上述の本実施形態によれば、BIOSの改造を行うことができない汎用サーバなどのコンピュータシステムにおいても、PCIバス閉塞のリカバリが実現可能である。加えて、OSの改造を行わなくてもよい。
図6は、本発明の実施形態による情報処理装置101の最小構成を示す機能ブロック図である。同図に示す情報処理装置101は、HWレイヤと、SWレイヤとを含んで構成される。HWレイヤは、コンピュータシステム51と、デバイス52とを有する。コンピュータシステム51は、バス53によりデバイス52と接続される。SWレイヤは、コンピュータシステム51がプログラムを実行することにより、HWレイヤを用いて実現される機能を示す。SWレイヤは、OS61と、監視部62とを有する。監視部62は、コンピュータシステム51のOS61上で動作する。監視部62は、検出部621と、閉塞解除部622とを備える。検出部621は、バス53の閉塞を検出する。閉塞解除部622は、検出部621がバス53の閉塞を検出した場合に閉塞解除処理を行う。閉塞解除処理は、デバイス52の切り離しをOS61に指示する処理と、バス53の閉塞を解除する処理と、指示を受けたOS61がコンピュータシステム51から論理的に切り離したデバイス52をリセットする処理と、デバイス52のリセット後にOS61にデバイス52を接続するよう指示する処理とを含む。情報処理装置101は、BIOSを改造することなく、コンピュータシステム51とデバイス52との間のバス53を、閉塞された状態からリカバリ可能である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)コンピュータシステムと、
前記コンピュータシステムとバスで接続されるデバイスとを備え、
前記コンピュータシステムのオペレーションシステム上で動作する監視手段は、
前記バスの閉塞を検出する検出手段と、
前記バスの閉塞が検出された場合に、前記オペレーションシステムに前記デバイスの切り離しを指示する処理と、前記バスの閉塞を解除する処理と、前記指示を受けた前記オペレーションシステムにより前記コンピュータシステムから切り離された前記デバイスをリセットする処理と、前記デバイスのリセット後に前記オペレーションシステムに前記デバイスを接続するよう指示する処理とを含む閉塞解除処理を行う閉塞解除手段とを備える、
情報処理装置。
(付記2)前記監視手段は、
前記バスの閉塞が検出された場合に、前記バスの閉塞回数に基づいて前記デバイスの閉塞を解除するか維持するかを判断する判断手段と、
前記判断手段が前記デバイスの閉塞を維持すると判断した場合に、前記バスの閉塞を解除した後に前記デバイスをリセットする処理と、前記デバイスのリセット後に前記バスを閉塞する処理と、前記バスの閉塞後に前記オペレーションシステムに前記デバイスを切り離すよう指示する処理とを含む閉塞維持処理を行う閉塞維持手段とをさらに備え、
前記閉塞解除手段は、前記判断手段が前記デバイスの閉塞を解除すると判断した場合に前記閉塞解除処理を行う、
付記1に記載の情報処理装置。
(付記3)前記コンピュータシステムが記憶するACPI(Advanced Configuration and Power Interface)テーブルは、前記オペレーションシステムへの前記デバイスの切り離し又は接続の指示を発行する指示発行処理を含み、
前記閉塞解除手段は、前記オペレーションシステムに前記デバイスの切り離へ指示する前記処理及び前記オペレーションシステムに前記コンピュータシステムから切り離された前記デバイスを接続するよう指示する前記処理を、前記ACPIテーブルに設定されている前記指示発行処理をコールすることにより実行し、
前記閉塞維持手段は、前記オペレーションシステムに前記デバイスを切り離すよう指示する前記処理を前記ACPIテーブルに設定されている前記指示発行処理をコールすることにより実行する、
付記2に記載の情報処理装置。
(付記4)前記コンピュータシステムのBIOS(Basic Input/Output System)が生成した前記ACPIテーブルに前記指示発行処理を書き込む書込手段をさらに有する、
付記3に記載の情報処理装置。
(付記5)前記監視手段は、前記書込手段を前記情報処理装置に実装する実装手段をさらに備える、
付記4に記載の情報処理装置。
(付記6)前記書込手段は、前記コンピュータシステムのEFI(Extensible Firmware Interface)パーティションに実装される、
付記5に記載の情報処理装置。
(付記7)前記情報処理装置は、前記デバイスのドライバをさらに備え、
前記オペレーションシステムは、前記ドライバを停止することにより前記デバイスを論理的に切り離し、前記ドライバを動作させることにより前記デバイスを論理的に接続する、
付記1から付記6のいずれかに記載の情報処理装置。
(付記8)前記閉塞維持手段は、前記コンピュータシステムから前記デバイスへの処理を停止した後に、前記デバイスをリセットする前記処理を行う、
付記2に記載の情報処理装置。
(付記9)前記指示発行処理は、前記オペレーションシステムが前記デバイスを再認識するための通知を発行する処理であり、
前記オペレーションシステムは、前記通知を受けたときに前記デバイスが認識できない場合に前記コンピュータシステムから前記デバイスを切り離した状態とし、前記デバイスが認識できた場合に前記コンピュータシステムに前記デバイスが接続された状態とする、
付記3から付記6のいずれかに記載の情報処理装置。
(付記10)前記オペレーションシステムを起動するオペレーションシステム起動手段を有し、
前記書込手段は、前記コンピュータシステムの起動の際に前記BIOSが生成した前記ACPIテーブルへ前記指示発行処理を書き込んだ後、前記オペレーションシステム起動手段を起動する、
付記4から付記6のいずれかに記載の情報処理装置。
(付記11)前記バスは、PCI(Peripheral Component Interconnect)バスである、
付記1から付記10のいずれかに記載の情報処理装置。
(付記12)前記コンピュータシステムは、前記バスの閉塞の有無を表す値を記憶手段に書き込み、
前記判断手段は、前記記憶手段に記憶されている前記値を参照して前記バスの閉塞を検出する、
付記2に記載の情報処理装置。
(付記13)コンピュータシステムのオペレーションシステム上で動作する監視手段が、
前記コンピュータシステムとデバイスとを接続するバスの閉塞を検出する検出ステップと、
前記バスの閉塞が検出された場合に、オペレーションシステムに前記デバイスの切り離しを指示する切り離し指示ステップと、
前記バスの閉塞を解除する閉塞解除ステップと、
前記指示を受けた前記オペレーションシステムにより前記コンピュータシステムから切り離された前記デバイスをリセットするリセットステップと、
前記デバイスのリセット後に前記オペレーションシステムに前記デバイスを接続するよう指示する接続指示ステップと、
を有するリカバリ方法。
(付記14)コンピュータシステムのオペレーションシステム上で動作する監視手段が、前記コンピュータシステムとデバイスとを接続するバスの閉塞を検出する検出ステップと、
前記監視手段が、前記バスの閉塞が検出された場合に、前記オペレーションシステムに前記デバイスの切り離しを指示する切り離し指示ステップと、
前記監視手段が、前記バスの閉塞を解除する閉塞解除ステップと、
前記オペレーションシステムが、前記切り離し指示ステップにおける前記指示を受けて前記コンピュータシステムから前記デバイスを切り離す切り離しステップと、
前記監視手段が、前記コンピュータシステムから切り離された前記デバイスをリセットするリセットステップと、
前記監視手段が、前記デバイスのリセット後に前記オペレーションシステムに前記デバイスを接続するよう指示する接続指示ステップと、
前記オペレーションシステムが、前記接続指示ステップにおける前記指示を受けて前記デバイスを前記コンピュータシステムに接続する接続ステップと、
を有するリカバリ方法。
(付記15)コンピュータに、
付記13に記載のリカバリ方法を実行させるためのプログラム。
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
1…コンピュータシステム、2…PCIデバイス、3…PCIバス、4…PCIバス閉塞レジスタ、11…BIOS、12…ACPIテーブル、13…EFIパーティション、14…PCIバス閉塞向けEFIアプリ、15…ACPI SSDT DATA、16…OSブートローダ、17…OS、18…監視部、19…PCIデバイスドライバ、51…コンピュータシステム、52…デバイス、53…バス、61…OS、62…監視部、100…情報処理装置、101…情報処理装置、181…アプリ実装部、182…履歴保持部、183…検出部、184…判断部、185…閉塞解除部、186…閉塞維持部、621…検出部、622…閉塞解除部

Claims (10)

  1. コンピュータシステムと、
    前記コンピュータシステムとバスで接続されるデバイスとを備え、
    前記コンピュータシステムのOS上で動作するソフトウェアの実行により実現される監視手段は、
    前記バスの閉塞を検出する検出手段と、
    前記バスの閉塞が検出された場合に、前記OSに前記デバイスの切り離しを指示する処理と、前記バスの閉塞を解除する処理と、前記指示を受けた前記OSにより前記コンピュータシステムから切り離された前記デバイスをリセットする処理と、前記デバイスのリセット後に前記OSに前記デバイスを接続するよう指示する処理とを含む閉塞解除処理を行う閉塞解除手段とを備える、
    情報処理装置。
  2. 前記監視手段は、
    前記バスの閉塞が検出された場合に、前記バスの閉塞回数に基づいて前記デバイスの閉塞を解除するか維持するかを判断する判断手段と、
    前記判断手段が前記デバイスの閉塞を維持すると判断した場合に、前記バスの閉塞を解除した後に前記デバイスをリセットする処理と、前記デバイスのリセット後に前記バスを閉塞する処理と、前記バスの閉塞後に前記OSに前記デバイスを切り離すよう指示する処理とを含む閉塞維持処理を行う閉塞維持手段とをさらに備え、
    前記閉塞解除手段は、前記判断手段が前記デバイスの閉塞を解除すると判断した場合に前記閉塞解除処理を行う、
    請求項1に記載の情報処理装置。
  3. 前記コンピュータシステムが記憶するACPI(Advanced Configuration and Power Interface)テーブルは、前記OSへの前記デバイスの切り離し又は接続の指示を発行する指示発行処理が設定され
    前記閉塞解除手段は、前記OSに前記デバイスの切り離しを指示する前記処理及び前記OSに前記コンピュータシステムから切り離された前記デバイスを接続するよう指示する前記処理を、前記ACPIテーブルに設定されている前記指示発行処理をコールすることにより実行し、
    前記閉塞維持手段は、前記OSに前記デバイスを切り離すよう指示する前記処理を前記ACPIテーブルに設定されている前記指示発行処理をコールすることにより実行する、
    請求項2に記載の情報処理装置。
  4. 前記コンピュータシステムのBIOS(Basic Input/Output System)が生成した前記ACPIテーブルに前記指示発行処理を書き込む書込手段をさらに有する、
    請求項3に記載の情報処理装置。
  5. 前記監視手段は、前記書込手段を前記情報処理装置に実装する実装手段をさらに備える、
    請求項4に記載の情報処理装置。
  6. 前記書込手段を実現するために実行されるアプリケーションが、前記コンピュータシステムのEFI(Extensible Firmware Interface)パーティションに配置される、
    請求項5に記載の情報処理装置。
  7. 前記コンピュータシステムは、前記デバイスのドライバをさらに実行し
    前記OSは、前記ドライバを停止することにより前記デバイスを論理的に切り離し、前記ドライバを動作させることにより前記デバイスを論理的に接続する、
    請求項1から請求項6のいずれか一項に記載の情報処理装置。
  8. コンピュータシステムのOS上で動作するソフトウェアの実行により実現される監視手段が行う方法であって
    前記コンピュータシステムとデバイスとを接続するバスの閉塞を検出する検出ステップと、
    前記バスの閉塞が検出された場合に、前記OSに前記デバイスの切り離しを指示する切り離し指示ステップと、
    前記バスの閉塞を解除する閉塞解除ステップと、
    前記指示を受けた前記OSにより前記コンピュータシステムから切り離された前記デバイスをリセットするリセットステップと、
    前記デバイスのリセット後に前記OSに前記デバイスを接続するよう指示する接続指示ステップと、
    を有するリカバリ方法。
  9. コンピュータシステムが行う方法であって、
    前記コンピュータシステムOS上で動作するソフトウェアの実行により実現される監視手段が、前記コンピュータシステムとデバイスとを接続するバスの閉塞を検出する検出ステップと、
    前記監視手段が、前記バスの閉塞が検出された場合に、前記OSに前記デバイスの切り離しを指示する切り離し指示ステップと、
    前記監視手段が、前記バスの閉塞を解除する閉塞解除ステップと、
    記切り離し指示ステップにおける前記指示を受けた前記OSにより前記コンピュータシステムから前記デバイスを切り離す切り離しステップと、
    前記監視手段が、前記コンピュータシステムから切り離された前記デバイスをリセットするリセットステップと、
    前記監視手段が、前記デバイスのリセット後に前記OSに前記デバイスを接続するよう指示する接続指示ステップと、
    記接続指示ステップにおける前記指示を受けた前記OSにより前記デバイスを前記コンピュータシステムに接続する接続ステップと、
    を有するリカバリ方法。
  10. 前記コンピュータシステムに、
    請求項8に記載のリカバリ方法を実行させるためのプログラム。
JP2022017878A 2022-02-08 2022-02-08 情報処理装置、リカバリ方法及びプログラム Active JP7298950B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022017878A JP7298950B1 (ja) 2022-02-08 2022-02-08 情報処理装置、リカバリ方法及びプログラム
US18/100,957 US20230251947A1 (en) 2022-02-08 2023-01-24 Information processing device and recovery method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022017878A JP7298950B1 (ja) 2022-02-08 2022-02-08 情報処理装置、リカバリ方法及びプログラム

Publications (2)

Publication Number Publication Date
JP7298950B1 true JP7298950B1 (ja) 2023-06-27
JP2023115581A JP2023115581A (ja) 2023-08-21

Family

ID=86900635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022017878A Active JP7298950B1 (ja) 2022-02-08 2022-02-08 情報処理装置、リカバリ方法及びプログラム

Country Status (2)

Country Link
US (1) US20230251947A1 (ja)
JP (1) JP7298950B1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215809A (ja) 2004-01-28 2005-08-11 Nec Corp コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法
JP2007226653A (ja) 2006-02-24 2007-09-06 Nec Corp Pci多段ブリッジ構成コンピュータにおけるacpiマシン語テーブル記述方法及び装置とそのプログラム
JP2009116642A (ja) 2007-11-07 2009-05-28 Nec Corp Pciバス障害リカバリ方法及びプログラム
JP2011128795A (ja) 2009-12-16 2011-06-30 Nec Corp 情報処理装置及び情報処理装置の障害復旧方法
US20140297999A1 (en) 2013-03-27 2014-10-02 Samsung Electronics Co., Ltd. Computer system and method for controlling acpi information
US20160210163A1 (en) 2015-01-15 2016-07-21 AVAST Software s.r.o. Rebooting to a uefi application from a uefi supported system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005215809A (ja) 2004-01-28 2005-08-11 Nec Corp コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法
JP2007226653A (ja) 2006-02-24 2007-09-06 Nec Corp Pci多段ブリッジ構成コンピュータにおけるacpiマシン語テーブル記述方法及び装置とそのプログラム
JP2009116642A (ja) 2007-11-07 2009-05-28 Nec Corp Pciバス障害リカバリ方法及びプログラム
JP2011128795A (ja) 2009-12-16 2011-06-30 Nec Corp 情報処理装置及び情報処理装置の障害復旧方法
US20140297999A1 (en) 2013-03-27 2014-10-02 Samsung Electronics Co., Ltd. Computer system and method for controlling acpi information
US20160210163A1 (en) 2015-01-15 2016-07-21 AVAST Software s.r.o. Rebooting to a uefi application from a uefi supported system

Also Published As

Publication number Publication date
JP2023115581A (ja) 2023-08-21
US20230251947A1 (en) 2023-08-10

Similar Documents

Publication Publication Date Title
US10853179B2 (en) Information handling system and method for restoring firmware in one or more regions of a flash memory device
EP2189901B1 (en) Method and system to enable fast platform restart
US9501289B2 (en) Method of a UEFI firmware and computer system thereof
US11126420B2 (en) Component firmware update from baseboard management controller
JP6124994B2 (ja) レガシーos環境から統合拡張可能ファームウェア・インターフェース(uefi)ブート前環境への復元を行うための方法およびシステム、ならびにコンピュータ・プログラム
US8930769B2 (en) Managing operating system deployment failure
US7131026B2 (en) Automated recovery of computer appliances
US11169819B2 (en) Information handling system (IHS) and method to proactively restore firmware components to a computer readable storage device of an IHS
US20040172578A1 (en) Method and system of operating system recovery
US11704197B2 (en) Basic input/output system (BIOS) device management
WO2008094443A1 (en) Master boot record management
US10909247B2 (en) Computing device having two trusted platform modules
KR20050086494A (ko) 시스템 부팅시 하드웨어를 구성하는 동안 사용자의 상호작용을 없애기 위한 시스템 및 장치
US20060036832A1 (en) Virtual computer system and firmware updating method in virtual computer system
US11704198B2 (en) Method and apparatus for providing recovery from a computing device boot up error
TW201937366A (zh) 具開機之可信驗證與容錯移轉之計算機系統及方法
JP2011232986A (ja) 情報処理装置及びメモリダンプ採取方法
US6275930B1 (en) Method, computer, and article of manufacturing for fault tolerant booting
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
US20170262341A1 (en) Flash memory-hosted local and remote out-of-service platform manageability
TWI764454B (zh) 韌體損壞恢復技術
JP7298950B1 (ja) 情報処理装置、リカバリ方法及びプログラム
KR101100894B1 (ko) 임베디드 장치의 오류검출 및 복구방법
US10768940B2 (en) Restoring a processing unit that has become hung during execution of an option ROM
CN112817642A (zh) X86平台使用固件自动切换启动efi操作系统的方法、装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230608

R151 Written notification of patent or utility model registration

Ref document number: 7298950

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151