DE102012215216B4 - Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi - Google Patents

Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi Download PDF

Info

Publication number
DE102012215216B4
DE102012215216B4 DE102012215216.4A DE102012215216A DE102012215216B4 DE 102012215216 B4 DE102012215216 B4 DE 102012215216B4 DE 102012215216 A DE102012215216 A DE 102012215216A DE 102012215216 B4 DE102012215216 B4 DE 102012215216B4
Authority
DE
Germany
Prior art keywords
computer
call stack
operating system
cpu
hardware unit
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
DE102012215216.4A
Other languages
English (en)
Other versions
DE102012215216A1 (de
Inventor
Doyle J. McCoy
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.)
Kyndryl Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012215216A1 publication Critical patent/DE102012215216A1/de
Application granted granted Critical
Publication of DE102012215216B4 publication Critical patent/DE102012215216B4/de
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/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
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0712Error 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 virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit, wobei das Verfahren die folgenden Schritte umfasst:Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch einen Computer;Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer;Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer;Abrufen der Vielzahl von Aufruf-Stack-Frames durch einen Prozessor des Computers auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; undAusgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft ein Verfahren und ein System zum Verbessern der Fähigkeit eines Datenverarbeitungssystems, auf unerwartete Hardwareausfälle zu reagieren und insbesondere eine Technik zum Erfassen von Daten zum Diagnostizieren eines Hardwareausfalls.
  • HINTERGRUND
  • Viele mittlere und große Datenverarbeitungssysteme enthalten einen Typ von Steuerprozessor und einen oder mehrere virtuelle Prozessoren, die in der Lage sind, virtuelle Datenverarbeitungssysteme abzubilden, auf denen mehrere Betriebssysteme ausgeführt werden. Mechanismen zum Erkennen und Beenden von Hardwareausfällen können in die Prozessoren, in Mikrocode (d.h. Firmware) und in Betriebssysteme integriert sein. Ein systemumfassender Hardwareabsturz (z.B. infolge eines physischen Hardwareausfalls oder eines Problems der Logikschaltung) kann durch einen Codestrom, ein Ereignis oder eine Task in Form von Hardware, Mikrocode, Firmware oder Software verursacht werden. Ausfalldaten können erfasst und gespeichert und dann an den Dienstanbieter des Prozessors zur Analyse und für Wiederherstellungsmaßnahmen zurückgesendet werden.
  • Die US 7 788 537 B1 betrifft ein Verfahren zur Verarbeitung einer Speicherabbilddatei, das Folgendes umfasst: Feststellen, ob eine mit einem vorangehenden Prozessorausfall verknüpfte Speicherabbilddatei existiert, und in Reaktion auf das Feststellen, dass die Speicherabbilddatei existiert, Ausführen einer vorläufigen Analyse der Speicherabbilddatei unter Verwendung eines Debuggers, und wobei das Feststellen und die vorläufige Analyse als Teil des Neustarts eines Prozessors nach dem vorangegangenen Ausfall des Prozessors ausgeführt werden.
  • Die US 7 574 627 B2 betrifft eine Technik zum Ermitteln einer grundlegenden Ursache eines Systemfehlers in einem System, in dem eine Vielzahl von Betriebssystemen auf einem Computer läuft. In einem System, in dem jedes einer Vielzahl von Betriebssystemen einen Prozess durch die Time-Sharing-Hardware eines Computers ausführt, wird eine Vielzahl von miteinander verknüpften Betriebssystemen im Voraus in einem Speichermittel gespeichert. Wenn ein Fehler in einem Betriebssystem erkannt wird und das Speichermittel ein mit dem Betriebssystem verknüpftes Betriebssystem speichert, in dem der Fehler aufgetreten ist, wird ein Speicherabbild für das Betriebssystem, in dem der Fehler aufgetreten ist, und das mit diesem Betriebssystem verknüpfte Betriebssystem ausgeführt.
  • Die US 2010 / 0 083 043 A1 betrifft eine Vorrichtung und ein Verfahren, die beinhalten: die wiederholte Ausgabe eines Subsistenzsignals, das angibt, dass eine Informationsverarbeitungsvorrichtung normal arbeitet, wenn die Informationsverarbeitungseinheit normal arbeitet; die Ausführung einer Speicherabbildungsverarbeitung, falls erforderlich, wenn ein Fehler in der Informationsverarbeitungseinheit auftritt; die Überwachung, ob ein anderes Subsistenzsignal innerhalb einer ersten Zeitperiode nach der Ausgabe des Subsistenzsignals ausgegeben wird; und die Feststellung, ob die Speicherabbildungsverarbeitung ausgeführt wird oder nicht, die Anforderung eines Neustarts oder einer Abschaltung der Informationsverarbeitungseinheit, wenn die Speicherabbildungsverarbeitung nicht ausgeführt wird, und die Anforderung des Neustarts oder der Abschaltung der Informationsverarbeitungseinheit nach Ablauf einer zweiten Zeitperiode, wenn die Speicherabbildungsverarbeitung ausgeführt wird.
  • KURZDARSTELLUNG
  • Der Erfindung liegt die Aufgabe zugrunde ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit, ein Computersystem, ein Computerprogrammprodukt und einen Prozess zum Unterstützen einer Datenverarbeitungs-Infrastruktur zu schaffen, wobei das Verfahren, das Computersystem, das Computerprogrammprodukt und der Prozess eine verbesserte Fähigkeit eines Datenverarbeitungssystem, auf unerwartete Hardwareausfälle zu reagieren und einen Hardwareausfall zu diagnostizieren, bewirken.
  • Die der Erfindung zugrunde liegende Aufgabe wird durch die Merkmale der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • Gemäß ersten Ausführungsformen stellt die vorliegende Erfindung ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit bereit. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch einen Computer. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
  • Gemäß zweiten Ausführungsformen stellt die vorliegende Erfindung ein Computersystem bereit, das eine Zentraleinheit (CPU), einen mit der CPU verbundenen Speicher und eine mit der CPU verbundene computerlesbare körperliche Speichereinheit enthält. Die Speichereinheit enthält Anweisungen, die über den Speicher durch die CPU ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit realisieren. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit durch das Computersystem, der zu einem vollständigen Systemabsturz führt. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer CPU der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames in eine Computerdatei durch das Computersystem.
  • Gemäß dritten Ausführungsformen stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das eine computerlesbare körperliche Speichereinheit mit darin gespeicherten computerlesbaren Programmanweisungen aufweist, wobei die computerlesbaren Programmanweisungen durch eine Zentraleinheit (CPU) eines Computersystems ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit implementieren. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch das Computersystem. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystem images (OS) der Computer-Hardwareeinheit durch das Computersystem. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
  • Gemäß vierten Ausführungsformen stellt die vorliegende Erfindung einen Prozess zum Unterstützen einer Datenverarbeitungs-Infrastruktur bereit. Der Prozess beinhaltet das Bereitstellen mindestens eines Unterstützungsdienstes zum Erstellen, Integrieren, Hosting, Warten und/oder Installieren eines computerlesbaren Codes in einem Computer, der einen Prozessor umfasst. Der Prozessor führt in dem Code enthaltene Anweisungen aus, die den Computer zum Durchführen eines Verfahrens zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit veranlassen. Das Verfahren beinhaltet das Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch den Computer. Das Verfahren beinhaltet ferner das Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer. Das Verfahren beinhaltet ferner das Abrufen der Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames. Das Verfahren beinhaltet ferner das Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
  • Ausführungsformen der vorliegenden Erfindung stellen eine Zusatzdiensteinheit oder einen Zusatzdienstprozessor bereit, um eine verbesserte Datenerfassungstechnik zum Erfassen von Ausfalldaten bezüglich Betriebssystem-Instanzen eines Systems oder bezüglich eines Hypervisors umzusetzen, um Wiederherstellungsmaßnahmen für einen systemweiten Absturz zu diagnostizieren und festzulegen, der als ein durch Hardware verursachter Ausfall wahrgenommen wird, in Wirklichkeit aber durch Software ausgelöst wird. Hierin offengelegte Ausführungsformen erfassen Daten bezüglich der Wechselbeziehung zwischen Hypervisor-Firmware und den Kernel-/Betriebssystemimages in verschiedenen Partitionen, um die Trennung zwischen den Betriebssystemen der verschiedenen Partitionen aufrechtzuerhalten.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit, wobei das Verfahren die folgenden Schritte umfasst:
    • Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch den Computer;
    • Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer;
    • Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer;
    • Abrufen der Vielzahl von Aufruf-Stack-Frames durch einen Prozessor des Computers auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
    • Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
  • Gemäß einer Ausführungsform umfasst das Verfahren die folgenden Schritte:
    • Erfassen von Konfigurationsdaten durch den Computer, die Zuordnungen von CPU-Threads der CPU zu Betriebssystem images der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
    • Ermitteln des einem CPU-Thread zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystemimages durch den Computer auf der Grundlage der erfassten Konfigurationsdaten;
    • Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch den Computer auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei der Schritt des Abrufens des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystemimages beruht.
  • Gemäß einer weiteren Ausführungsform umfasst das Verfahren den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch den Computer, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein CPU-Thread, dem das Betriebssystemimage zugeordnet ist, im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung in dem Betriebssystemimage angeben, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und dem Verfahren zum Durchführen der Adressumsetzung beruht.
  • Gemäß einer weiteren Ausführungsform beinhaltet der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des Verfahrens zum Durchführen der Adressumsetzung, das durch die abgerufenen Metadaten angegeben wird, und der erfassten Adressumsetzungstabelle.
  • Gemäß einer weiteren Ausführungsform umfasst das Verfahren ferner das Erkennen eines Typs des Betriebssystemimages als Hypervisorprogrammimage durch den Computer.
  • Gemäß einer weiteren Ausführungsform wird der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames durch den Computer von einem Dienstprozessor außerhalb der System-Verarbeitungseinheiten ausgeführt, auf denen eine Vielzahl von Betriebssystem images über einen Hypervisor der Computer-Hardwareeinheit ausgeführt werden, wobei der Dienstprozessor keine durch den Hypervisor verwaltete ambulante logische Partition (LPAR) erfordert.
  • Gemäß einer weiteren Ausführungsform umfasst das Verfahren ferner die folgenden Schritte:
    • Erfassen einer zweiten Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer;
    • Abrufen eines zweiten Formats einer zweiten Vielzahl von Aufruf-Stack-Frames eines zweiten Aufrufstapels eines zweiten Betriebssystemimages der Computer-Hardwareeinheit, wobei das Betriebssystemimage und das zweite Betriebssystemimage unterschiedlichen Typs sind, aber gemeinsame Grundstrukturen aufweisen, darunter ein gemeinsamer Image-Datenübertragungs-Kernbereich und ein gemeinsames Prozessor-Datenübertragungs-Array, und wobei das Format der Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystem images von dem zweiten Format verschieden ist;
    • Abrufen der zweiten Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten zweiten Adressumsetzungstabelle und des abgerufenen zweiten Formats der zweiten Vielzahl von Aufruf-Stack-Frames;
    • Ausgeben der abgerufenen zweiten Vielzahl von Aufruf-Stack-Frames durch den Computer in die Computerdatei; und
    • Empfangen einer Diagnose des Ausfalls auf der Grundlage der Computerdatei, die die Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystem images und die zweite Vielzahl von Aufruf-Stack-Frames des zweiten Aufrufstapels des zweiten Betriebssystem images beinhaltet.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung ein Computersystem, das Folgendes umfasst:
    • eine Zentraleinheit (CPU);
    • einen mit der CPU verbundenen Speicher;
    • eine mit der CPU verbundene computerlesbare körperliche Speichereinheit, wobei die Speichereinheit Anweisungen enthält, die über den Speicher durch die CPU ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit implementieren, wobei das Verfahren die folgenden Schritte umfasst:
      • Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, die zu einem vollständigen System-Absturz führt, durch das Computersystem;
      • Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem;
      • Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch das Computersystem;
      • Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
      • Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
  • Gemäß einer Ausführungsform des Computersystems umfasst das Verfahren ferner die folgenden Schritte:
    • Erfassen von Konfigurationsdaten durch das Computersystem, die Zuordnungen von CPU-Threads der CPU zu Betriebssystemimages der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
    • Ermitteln des Betriebssystemimages, das einem CPU-Thread zugeordnet ist, und Erkennen eines Typs des Betriebssystem images durch das Computersystem auf der Grundlage der erfassten Konfigurationsdaten; und
    • Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch das Computersystem auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei der Schritt des Abrufens des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystem images beruht.
  • Gemäß einer weiteren Ausführungsform des Computersystems umfasst das Verfahren ferner den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch das Computersystem, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein CPU-Thread, dem das Betriebssystemimage zugeordnet ist, im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung in dem Betriebssystemimage anzeigen, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und dem Verfahren zum Durchführen der Adressumsetzung beruht.
  • Gemäß einer weiteren Ausführungsform des Computersystems beinhaltet der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des durch die abgerufenen Metadaten angegebenen Verfahrens zum Durchführen der Adressumsetzung und der erfassten Adressumsetzungstabelle.
  • Gemäß einer weiteren Ausführungsform des Computersystems umfasst das Verfahren ferner den Schritt des Erkennens eines Typs des Betriebssystemimages als Hypervisorprogrammimage durch das Computersystem.
  • Gemäß einer weiteren Ausführungsform des Computersystems wird der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames durch das Computersystem von einem Dienstprozessor außerhalb der System-Verarbeitungseinheiten ausgeführt, auf denen eine Vielzahl von Betriebssystemimages über einen Hypervisor der Computer-Hardwareeinheit ausgeführt werden, wobei der Dienstprozessor keine durch den Hypervisor verwaltete ambulante logische Partition (LPAR) erfordert.
  • Gemäß einer weiteren Ausführungsform des Computersystems umfasst das Verfahren ferner die folgenden Schritte:
    • Erfassen einer zweiten Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem;
    • Abrufen eines zweiten Formats einer zweiten Vielzahl von Aufruf-Stack-Frames eines zweiten Aufrufstapels eines zweiten Betriebssystemimages der Computer-Hardwareeinheit durch das Computersystem, wobei das Betriebssystemimage und das zweite Betriebssystemimage unterschiedlichen Typs sind, aber gemeinsame Grundstrukturen aufweisen, darunter ein gemeinsamer Image-Datenübertragungs-Kernbereich und ein gemeinsames Prozessor-Datenübertragungsarray, und wobei das Format der Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystem images von dem zweiten Format verschieden ist;
    • Abrufen der zweiten Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten zweiten Adressumsetzungstabelle und des abgerufenen zweiten Formats der zweiten Vielzahl von Aufruf-Stack-Frames;
    • Ausgeben der abgerufenen zweiten Vielzahl von Aufruf-Stack-Frames durch das Computersystem in die Computerdatei; und
    • Empfangen einer Diagnose des Ausfalls auf der Grundlage der Computerdatei, die die Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystemimages und die zweite Vielzahl von Aufruf-Stack-Frames des zweiten Aufrufstapels des zweiten Betriebssystem images beinhaltet.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung ein Computerprogrammprodukt, das eine computerlesbare körperliche Speichereinheit mit darin gespeicherten computerlesbaren Programmanweisungen umfasst, die durch eine Zentraleinheit (CPU) eines Computersystems ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit implementieren, wobei das Verfahren die folgenden Schritte umfasst:
    • Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch das Computersystem;
    • Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer;
    • Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystem images (OS) der Computer-Hardwareeinheit durch das Computersystem;
    • Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
    • Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
  • Gemäß einer Ausführungsform des Programmprodukts umfasst das Verfahren die folgenden Schritte:
    • Erfassen von Konfigurationsdaten durch das Computersystem, die Zuordnungen von CPU-Threads der CPU zu Betriebssystemimages der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
    • Ermitteln des einem CPU-Thread zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystem images durch das Computersystem auf der Grundlage der erfassten Konfigurationsdaten;
    • Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch das Computersystem auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei die computerlesbaren Programmanweisungen zum Abrufen des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystem images beruht.
  • Gemäß einer weiteren Ausführungsform des Programmprodukts umfasst das Verfahren ferner den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch das Computersystem, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein CPU-Thread, dem das Betriebssystemimage zugeordnet ist, im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung in dem Betriebssystemimage angeben, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und dem Verfahren zum Durchführen der Adressumsetzung beruht.
  • Gemäß einer weiteren Ausführungsform des Programmprodukts beinhaltet der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des Verfahrens zum Durchführen der Adressumsetzung, das durch die abgerufenen Metadaten angegeben wird, und der erfassten Adressumsetzungstabelle.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung einen Prozess zum Unterstützen einer Datenverarbeitungs-Infrastruktur, wobei der Prozess das Bereitstellen mindestens eines Unterstützungsdienstes zum Erstellen, Integrieren, Hosting, Warten und/oder Implementieren eines computerlesbaren Codes in einem Computer mit einem Prozessor umfasst, wobei der Prozessor in dem Code enthaltene Anweisungen ausführt, um den Computer zum Durchführen eines Verfahrens zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu veranlassen, und wobei das Verfahren die folgenden Schritte umfasst:
    • Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt;
    • Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit;
    • Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit;
    • Abrufen der Vielzahl von Aufruf-Stack-Frames durch den Prozessor des Computers auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und
    • Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
  • Gemäß einer Ausführungsform des Prozesses umfasst das Verfahren ferner die folgenden Schritte:
    • Erfassen von Konfigurationsdaten durch den Computer, die Zuordnungen von CPU-Threads der CPU zu Betriebssystem images der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben;
    • Ermitteln des einem CPU-Thread zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystemimages durch den Computer auf der Grundlage der erfassten Konfigurationsdaten; und
    • Abrufen eines Plans einer Struktur einer Task in einer Computer-Datenspeichereinheit durch den Computer auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei die computerlesbaren Programmanweisungen zum Abrufen des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystemimages beruhen.
  • Figurenliste
    • 1 ist ein Blockschaubild eines Systems zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit gemäß Ausführungsformen der vorliegenden Erfindung.
    • 2 ist ein Ablaufplan eines Prozesses zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit gemäß Ausführungsformen der vorliegenden Erfindung, wobei der Prozess in dem System von 1 implementiert wird.
    • 3 ist ein Blockschaubild eines Computersystems, das in dem System von 1 enthalten ist und den Prozess von 2 gemäß Ausführungsformen der vorliegenden Erfindung implementiert.
  • DETAILLIERTE BESCHREIBUNG
  • ÜBERSICHT
  • Die vorliegende Erfindung erkennt, dass Mechanismen zur Beendigung eines Ausfalls und zum Erfassen von Ausfalldaten in vorhandenen mittleren bis großen Datenverarbeitungssystemen nur Daten erfassen, die direkt ein Element betreffen, das vermutlich ausgefallen ist, und stellen daher nur unzureichende Daten zum Diagnostizieren eines systemweiten Hardwareabsturzes bereit, der durch einen Codestrom, ein Ereignis oder eine Aufgabe auf Grundlage von Mikrocode/Firmware oder Software ausgelöst werden kann. Die vorliegende Erfindung erkennt auch, dass andere bekannte Datenerfassungsmechanismen auch unzureichende Daten zum Diagnostizieren von systemweiten Hardwareabbrüchen liefern, weil sie sich auf das Erfassen von Daten vom Mikrocode des Systemprozessors und/oder der Abbruchmodi in der Betriebssystem-Software konzentrieren, die nicht auf eine in der Hardware begründete Art von Ausfall schließen lassen. Die vorliegende Erfindung erkennt auch, dass Virtualisierungstechnologien eine Trennung zwischen Betriebssystemen erfordern, die auf einem Systemprozessor ausgeführt werden, damit sich in einem Speicherauszug keine Daten vom aktiven Speicherimage eines Betriebssystems (auch als Partition bekannt) befinden. Die oben erwähnte Trennung verhindert eine ordnungsgemäße Diagnose, wenn es zu Wechselwirkungen zwischen einem Softwarecodestrom Konstruktionsfehlern der Hardwarelogik kommt.
  • Ausführungsformen der vorliegenden Erfindung können ein Verfahren und ein System zum Erfassen von Daten im einem Computersystem bereitstellen, das von einem systemweiten Hardwareabbruch (z.B. wegen eines physischen Hardwareausfalls oder wegen eines Konstruktionsproblems der Logikschaltung) betroffen ist, der eigentlich durch einen Codestrom, ein Ereignis oder eine Task in Form von Software ausgelöst wird, aber so empfunden wird, als würde er durch Hardware verursacht. Im vorliegenden Gebrauch ist ein systemweiter Hardwareabbruch (auch unter der Bezeichnung Hardwareprozessor-Ausfallmodus bekannt) als vollständiger Systemabsturz definiert, der anzeigt, dass eine Computer-Hardwareeinheit ausgefallen ist und den Absturz verursacht haben kann. Ausführungsformen der vorliegenden Erfindung machen von der Idee Gebrauch, dass Betriebssysteme und Hypervisor-Firmware im Systemspeicher einige der in Wechselbeziehung stehenden Architekturen und Strukturen nutzen, die ihre Stapel-, Seitenumsetzungsmechanismen (z.B. gemeinsame Seitentabelle zum Virtualisieren) und Speichermechanismen für Task-Daten betreffen. Somit erfasst in Bereichen, in denen ein Fehler in einer Wechselbeziehung zwischen der Hypervisor-Firmware und dem Mikrocode oder Kernel des Betriebssystems stehend beschrieben werden kann, eine hierin offenbarte Zusatzdiensteinheit (oder ein Zusatzdienstprozessor) Datenpunkte von dem ausgefallenen Kern auf der Grundlage der oben erwähnten in Wechselbeziehung stehenden Architekturen und Strukturen und auf der Grundlage von Eigenschaften jedes Betriebssystemimages, beispielsweise des Endian-Formats, der Wortgröße, des Stack-Frame-Formats und des Adressiermodus für jedes Betriebssystemimage. Die durch die Zusatzdiensteinheit erfassten Datenpunkte umfassen unter anderem Aufrufstapel von physischen oder virtuellen Prozessoren mit gerade in Ausführung befindlichen Tasks unabhängig von dem Betriebssystemimage, zu dem die Tasks gehören. Die Zusatzdiensteinheit erfordert keine ambulante logische Partition (LPAR), um die oben erwähnten Ausfalldaten zu erfassen.
  • SYSTEM ZUM ERFASSEN VON DATEN ZUM DIAGNOSTIZIEREN EINES DURCH SOFTWARE VERURSACHTEN AUSFALLS EINER COMPUTER-HARDWAREEINHEIT
  • 1 ist ein Blockschaubild eines Systems gemäß Ausführungsformen der vorliegenden Erfindung zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit. Eine Ausführungsform des Systems 100 beinhaltet ein Computersystem 102, das einen Systemhauptspeicher 104 beinhaltet. Bei dem Systemhauptspeicher 104 handelt es sich um eine körperliche Computer-Datenspeichereinheit, die als Hauptspeicher des Computersystems 102 dient. Gemäß einer Ausführungsform handelt es sich bei dem Systemhauptspeicher 104 um einen flüchtigen Speicher.
  • In dem Computersystem 102 werden Betriebssystemimages (OS) 106-1 ... 106-N und Kernels 108-1 ... 108-N ausgeführt, wobei N ≥ 2 ist. Die Betriebssystem images 106-1 ... 106-N sind in einer Eins-zu-eins-Beziehung Kernels 108-1 ... 108-N zugeordnet. Ein Hypervisor 110 (d.h. ein Partitionsmanager) verwaltet (nicht gezeigte) logische Partitionen, in denen Betriebssystem images 106-1 ... 106-N und Kernels 108-1 ... 108-N ausgeführt werden.
  • Betriebssystemimages 106-1 ... 106-N weisen ähnliche Image-Architekturstrukturen wie beispielsweise Image-Stammstrukturen auf. Zum Beispiel werden Image-Stammstrukturen wie beispielsweise ein auf den Prozessor zugeschnittener Steuerbereich (Processor Architected Control Area, PACA) und ein auf Knoten zugeschnittener Steuerbereich (Node Architected Control Area NACA) benötigt, um für die Hypervisorunterstützung eine strukturelle Mindestübereinstimmung zwischen Betriebssystem images zu erreichen. Gemäß Ausführungsformen der vorliegenden Erfindung müssen Steuerwarteschlangen und Zuordnungen zwischen den Betriebssystemimages 106-1 ... 106-N konsistent sein, damit der Datenaustausch mit den Hardwareeinheiten funktioniert.
  • Das Computersystem 102 beinhaltet eine Zusatzdiensteinheit 112, die ein Programm 114 zur Speicherauszugserfassung ausführt, das einen in Ausführungsformen der vorliegenden Erfindung enthaltenen Datenerfassungsprozess implementiert. Die Zusatzdiensteinheit 112 beinhaltet ein oder mehrere Datendepots, die Metadaten 116 des Betriebssystem images, eine Speicherauszugsdatei 118 und (nicht gezeigte) System-Hardwaredaten beinhalten, die von den Hardwareeinheiten des Computersystems 102 erfasst werden. Die Metadaten 116 des Betriebssystem images werden auf einer Computer-Datenspeichereinheit gespeichert und enthalten Informationen für verschiedene Typen von Betriebssystemimages 106-1 ... 106-N auf der Plattform des Computersystems 102. Bei einem der Typen der Betriebssystemimages 106-1 ... 106-N kann es sich um ein Hypervisorprogrammimage handeln.
  • Die Metadaten 116 des Betriebssystem images enthalten die im Folgenden für jede Hardware-Zentraleinheit (CPU) des Computersystems 102 aufgeführten Daten:
    • Endian-Format (d.h. Big-Endian-, Little-Endian- oder Mixed-Endian-Format)
    • Wortgröße (z.B., 32 Bit oder 64 Bit)
    • das Register, das den Stack-Backchain-Zeiger (z.B. GPR1) anzeigt
    • das Register, das auf die Adresse der nächsten durch die CPU auszuführenden Anweisung verweist
    • den Adressierungsmodus (z.B. virtuell, real usw.)
    • das Adressumsetzungsverfahren und die Adressumsetzungstabelle, die bei der Adressumsetzung verwendet werden
    • wie der Typ des Betriebssystemimages ermittelt werden soll, zu dem die CPU gehört. Die Typen der Betriebssystemimages können in einer Aufzählung spezieller Typen (oder Typen und Versionen) von Betriebssystemen sowie in einem Typ bestehen, der ein Hypervisorprogramm anzeigt.
  • Gemäß einer Ausführungsform ermittelt die Zusatzdiensteinheit 112 die oben aufgeführten Daten, indem sie auf (nicht gezeigte) Register der (nicht gezeigten CPU) des Computersystems 102 zugreift und Bits aus den Registern abruft.
  • Für mit jeder CPU des Computersystems 102 verbundene Tasks beinhalten die Metadaten 116 der Betriebssystem images den Plan der Taskstruktur innerhalb des Speichers. Die Metadaten 116 des Betriebssystem images brauchen die durch die CPU-Register bereitgestellten Informationen (siehe die oben aufgeführten Daten) nicht zu wiederholen, außer bezüglich des Formats, wo die Register im Aufgabenspeicher gespeichert sind.
  • Das Programm 114 zur Speicherauszugserfassung ruft die oben aufgeführten Daten von den Metadaten 116 des Betriebssystem images ab und ruft Daten vom Systemhauptspeicher 104 ab, um Datenpunkte abzurufen, die (nicht gezeigte) Aufruf-Stack-Frames enthalten. Die Metadaten 116 des Betriebssystemimages beschreiben die folgenden Informationen, die zum Abrufen von Informationen über einen Aufruf-Stack-Frame durch die Zusatzdiensteinheit 112 verwendet werden:
    • Wo der nächste oder die nächsten (für einen doppelt verketteten Stapel) Stackframe-Zeiger gespeichert sind.
  • Wo sich die Rücksprungadresse einer Anweisung befindet. Bei den meisten Hardware-Architekturen wird die Rücksprungadresse einer Anweisung als Adresse der Anweisung beschrieben, die nach dem Rücksprung aus einem aufgerufenen Programm als nächste ausgeführt werden soll.
  • Den Ausführungstyp des Aufruf-Stack-Frames (z.B. 32 Bit oder 64 Bit; Adressierung im Ein-Speicher-Adressraum oder private virtuelle Adressierung; Little-Endian-, Big-Endian- oder Mixed-Endian-Architektur). Der Ausführungstyp eines Frames berücksichtigt Betriebssysteme, die innerhalb ein und desselben Betriebssystemimages gleichzeitig mehrere Umgebungen ausführen können.
  • Den Typ des Aufruf-Stack-Frames (z.B. Ausnahme oder ohne Ausnahme, verdeckt oder offen usw.)
  • Das Programm 114 zur Speicherauszugserfassung gibt die abgerufenen Datenpunkte, die die Aufruf-Stack-Frames enthalten, als Speicherauszugs-Image in eine Speicherauszugsdatei 118 aus. Die Speicherauszugsdatei 118 wird in einer (nicht gezeigten) Computer-Datenspeichereinheit innerhalb der Zusatzdiensteinheit 112 gespeichert. Das Speicherauszugs-Image zeigt den Status der Betriebssysteme im Computersystem 102 zum Zeitpunkt des Systemabsturzes des Computersystems 102 an. Die Speicherauszugsdatei 118 kann analysiert werden, um eine durch Software bedingte Ursache für den Systemabsturz des Computersystems 102 zu diagnostizieren und Maßnahmen zur Wiederherstellung nach dem Systemabsturz zu ergreifen.
  • Gemäß einer weiteren Ausführungsform werden die Metadaten 116 des Betriebssystemimages und/oder die Speicherauszugsdatei 118 in einem oder mehreren Computerdatendepots gespeichert, die außerhalb der Zusatzdiensteinheit 112 und außerhalb des Computersystems 102 angeordnet und mit der Zusatzdiensteinheit 112 verbunden sind.
  • Gemäß einer weiteren Ausführungsform befindet sich die Zusatzdiensteinheit 112 außerhalb des Computersystems 102 und ist (z.B. durch ein Kabel) mit dem Computersystem 102 verbunden.
  • Die Funktionalität der Komponenten des Systems 100 wird im Folgenden unter Bezugnahme auf 2 und 3 näher beschrieben.
  • PROZESS ZUM ERFASSEN VON DATEN ZUM DIAGNOSTIZIEREN EINES DURCH SOFTWARE VERURSACHTEN AUSFALLS EINER COMPUTER-HARDWAREEINHEIT
  • 2 ist ein Ablaufplan eines Prozesses gemäß Ausführungsformen der vorliegenden Erfindung zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit, wobei der Prozess in dem System von 1 implementiert wird. Der Prozess zum Erfassen von Daten zum Diagnostizieren eines durch Software verursachten Ausfalls einer Computer-Hardwareeinheit beginnt in Schritt 200. Vor dem Schritt 202 erleidet das Computersystem 102 (siehe 1) einen vollständigen Systemabsturz (d.h. die Hardwareplattform stürzt ab), und der Abbruchmodus zeigt einen Ausfall der Computerhardware an. Der vollständige Systemabsturz kann zum Beispiel das Ergebnis eines in der Hardware gefundenen Fehlers in einem Prozessor, in einer Pipeline, einem Cachespeicher oder einem Speicher sein. Während der Abbruchmodus einen Ausfall der Hardware anzeigt, werden Daten über das Betriebssystem benötigt, um den berichteten Ausfall der Hardware richtig zu verstehen und zu diagnostizieren.
  • Nach dem vollständigen Systemabsturz und vor dem Schritt 202 erkennt die Zusatzdiensteinheit 112 (siehe 1) oder (in 1 nicht gezeigt) eine andere Einheit oder ein Prozessor, der/die Teil des Computersystems 102 (siehe 1) oder mit diesem verbunden ist, einen Hardwareausfallmodus für das Computersystem 102 (siehe 1) oder empfängt einen Hinweis darauf.
  • In Schritt 202 erfasst die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor Speicherauszugsdaten der Hardware für einen offen ersichtlichen Hardwarezustand. Die Speicherauszugsdaten der Hardware können von einer oder mehreren Hardwareeinheiten wie beispielsweise Systemprozessoren, Cachespeichern, Pipelines, Eingabe-/Ausgabe(E/A)-Einheiten und Schaltkreisen erfasst werden, wobei der Systemhauptspeicher 104 erhalten bleibt (siehe 1). Zum Beispiel können Speicherauszugsdaten der Hardware erzeugt werden, ohne den Systemhauptspeicher anzutasten, wenn PowerPC® pSeries/iSeries®-Systeme verwendet werden, die von International Business Machines Corporation in Armonk, New York, USA, angeboten werden.
  • Gemäß einer Ausführungsform schreibt die Zusatzdiensteinheit 112 (sieh 1) oder die andere Einheit oder der andere Prozessor die Speicherauszugsdaten der Hardware in die Speicherauszugsdatei 118 und geht dann weiter zu Schritt 204. Gemäß einer Ausführungsform wird in Schritt 202 ein bekannter Prozess zum Erfassen der Speicherauszugsdaten der Hardware verwendet.
  • In Schritt 204 erfasst die Zusatzdiensteinheit 112 (siehe 1) oder eine andere Einheit oder ein anderer Prozessor (in 1 nicht gezeigt), die Teil des Computersystems 102 (siehe 1) oder mit diesem verbunden sind, Adressumsetzungstabellen für die Hardware. Adressumsetzungstabellen für die Hardware enthalten Daten, die durch eine CPU des Computersystems 102 (siehe FIG: 1) zum Umsetzen virtueller Adressen und E/A-Adressen in tatsächliche Speicheradressen oder E/A-Adressen verwendet werden. Im Gegensatz zu aktuellen Datenerfassungstechniken, bei denen Adressumsetzungstabellen der Hardware erfasst werden, wenn der Abbruchmodus auf einen Softwarefehler zurückzuführen ist, jedoch nicht, wenn der Abbruchmodus auf einen Hardwareausfall zurückzuführen ist, erfassen Ausführungsformen der vorliegenden Erfindung die Adressumsetzungstabellen der Hardware, da Software als Ursache für den Hardwareausfall infrage kommen kann. Gemäß einer Ausführungsform schreibt die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor die Adressumsetzungstabellen der Hardware in die Speicherauszugsdatei 118.
  • In Schritt 206 erfasst die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor (in 1 nicht gezeigt), die Teil des Computersystems 102 (siehe 1) oder mit diesem verbunden sind, Konfigurationsdaten virtueller Images für Betriebssystemimages 106-1 ... 106-N (siehe 1), die im Computersystem 102 (siehe 1) ausgeführt werden. Die Konfigurationsdaten virtueller Images werden unter Verwendung von Daten aus Metadaten 116 (siehe 1) des Betriebssystem images von dem SystemHauptspeicher 104 (siehe 1) erfasst. Die in Schritt 206 erfassten Konfigurationsdaten virtueller Images enthalten Daten, die die Zuordnungen von CPU-Threads zu Betriebssystemimages 106-1 ... 106-N (siehe 1) zum Zeitpunkt des Ausfalls anzeigen. Gemäß einer Ausführungsform schreibt die Zusatzdiensteinheit 112 (siehe 1) oder die andere Einheit oder der andere Prozessor die erfassten Konfigurationsdaten des virtuellen Images in die Speicherauszugsdatei 118 und geht dann zu Schritt 208 über.
  • Im Gegensatz zu aktuellen Datenerfassungstechniken, mit denen Konfigurationsdaten von virtuellen Images erfasst werden, wenn der Abbruchmodus auf einen Softwarefehler zurückzuführen ist, jedoch nicht, wenn der Abbruchmodus auf einen Hardwareausfall zurückzuführen ist, erfasst eine Ausführungsform der vorliegenden Erfindung die Konfigurationsdaten der virtuellen Images in Schritt 206, obwohl der Abbruchmodus einen Hardwareausfall anzeigt.
  • Schritt 208 startet eine äußere Schleife für jeden den Betriebssystem images 106-1 .. 106-N (siehe 1) im Computersystem 102 (siehe 1) zugeordneten CPU-Thread. Der gerade in einer Iteration der äußeren Schleife befindliche CPU-Thread wird hierin auch als der aktuelle CPU-Thread bezeichnet.
  • In Schritt 210 vergleicht die Zusatzdiensteinheit 112 (siehe 1) eine Kennung des aktuellen CPU-Threads (d.h. die CPU-Threadnummer) mit den in Schritt 206 erfassen Konfigurationsdaten des virtuellen Images und ermittelt dadurch das Betriebssystemimage unter den Betriebssystemimages 106-1 ... 106-N (siehe 1), dem der aktuelle CPU-Thread zugeordnet ist. An Schritt 210 ist die Zusatzdiensteinheit 112 (siehe 1) auch insofern beteiligt, als sie den Typ (auch als Betriebssystemimage-Typ bekannt) des Betriebssystemimages erkennt, dem der aktuelle CPU-Thread zugeordnet ist.
  • In Schritt 212 ruft die Zusatzdiensteinheit 112 (siehe 1) Formatierungsdaten für Tasks und Frames (d.h. Formatierungsdaten für Tasks und Formatierungsdaten für Aufruf-Stack-Frames) von den Metadaten 116 (siehe 1) des Betriebssystemimages ab. Die in Schritt 212 abgerufenen Formatierungsdaten für Tasks und Frames werden dem in Schritt 210 erkannten Betriebssystemimage-Typ zugeordnet.
  • In Schritt 214 ermittelt die Zusatzdiensteinheit 112 (siehe 1) eine Umgebung des aktuellen CPU-Threads für die Ausführung von Anweisungen. Durch Abrufen der Daten von den Metadaten 116 des Betriebssystemimages (siehe 1) ermittelt die Zusatzdiensteinheit 112 (siehe 1) die Wortgröße (z.B. 32 Bit oder 64 Bit), die durch das in Schritt 210 ermittelte Betriebssystemimage verwendet wird, ob das Betriebssystemimage das Little-Endian-, das Big-Endian- oder ein Mixed-Endian-Format verwendet, ob sich das Betriebssystemimage im Hypervisormodus befindet und welche Register verwendet werden, um die Adresse des ersten Eintrags im Aufruf-Stack-Frames zu ermitteln.
  • In Schritt 216 ruft die Zusatzdiensteinheit 112 (siehe 1) Taskdaten ab (d.h. Daten über die zum Zeitpunkt des vollständigen Systemabsturzes durch den aktuellen CPU-Thread ausgeführte Task). An Schritt 216 ist die Zusatzdiensteinheit 112 (siehe 1) insofern beteiligt, als sie unter Verwendung der in Schritt 212 abgerufenen Task-Formatierungsdaten den Speicherplatz des Taskspeichers im Hauptspeicher 104 des Systems (siehe 1) abruft. Gemäß einer Ausführungsform kopiert die Zusatzdiensteinheit 112 (siehe 1) Seiten vom Taskspeicher, die die Taskdaten (d.h. die abgerufenen Taskdaten) enthält, und schreibt die Seiten, die die abgerufenen Taskdaten enthalten, in die Speicherauszugsdatei 118 und geht dann weiter zu Schritt 218.
  • Schritt 218 startet eine innere Schleife für jeden Aufruf-Stack-Frame in dem Aufrufstapel des Betriebssystemimages, dem der aktuelle CPU-Thread zugeordnet ist. Der gerade in einer Iteration der inneren Schleife befindliche Aufruf-Stack-Frame wird hierin auch als der aktuelle Aufruf-Stack-Frame bezeichnet.
  • In Schritt 220 ruft die Zusatzdiensteinheit 112 (siehe 1) den Aufruf-Stack-Frame unter Verwendung der in Schritt 212 abgerufenen Formatierungsdaten des Frames ab. Gemäß einer Ausführungsform kopiert die Zusatzdiensteinheit 112 (siehe 1) die Seiten aus dem Systemhauptspeicher 104 (siehe 1), der den Aufruf-Stack-Frame (d.h. den abgerufenen Aufruf-Stack-Frame) enthält, und schreibt die Seiten, die den abgerufenen Aufruf-Stack-Frame enthalten, in die Speicherauszugsdatei 118 und fährt mit Schritt 222 fort.
  • In Schritt 222 ermittelt die Zusatzdiensteinheit 112 (siehe 1) eine Programmausführungsadresse für den aktuellen Aufruf-Stack-Frame, ruft die Programminformation für den aktuellen Aufruf-Stack-Frame unter Verwendung der ermittelten Programmausführungsadresse ab und ermittelt den Typ der Programminformation. Schritt 222 kann Programminformationen in verschiedenen Formaten abrufen, beispielsweise im eXtended Common Object File Format (XCOFF). Bevor der Prozess zu Schritt 218 (wenn eine Adresse eines für die innere Schleife zu berücksichtigenden nächsten Aufruf-Stack-Frames erkannt wird) oder zu Schritt 308 zurückspringt (wenn für den aktuellen CPU-Thread kein nächster Aufruf-Stack-Frame gefunden wird und für die äußere Schleife ein nächster CPU-Thread berücksichtigt werden soll) oder aus anderen Gründen mit Schritt 224 fortgefahren wird, kopiert die Zusatzdiensteinheit 112 (siehe 1) Seiten, die die Programminformationen (d.h. die abgerufenen Programminformationen) vom Systemhauptspeicher 104 (siehe 1) enthalten und schreibt die Seiten, die die abgerufenen Programminformationen enthalten in die Speicherauszugsdatei 118.
  • Wenn die innere Schleife das Ende des Aufrufstapels erreicht und keine weiteren Aufruf-Stack-Frames formatiert werden müssen, springt der Prozess zurück zu Schritt 208, und wenn es einen nächsten CPU-Thread gibt, wird dieser für eine weitere Iteration in der äußeren Schleife ab Schritt 208 berücksichtigt. Wenn die Verarbeitung aller Aufruf-Stack-Frames bzw. CPU-Threads in der inneren und der äußeren Schleife abgeschlossen ist, wird der Prozess von 2 mit Schritt 224 beendet.
  • Bei jedem Abrufen von Daten vom Systemhauptspeicher 104 (siehe 1) in Schritt 204, 206, 208, 210, 212, 214, 216, 220 und 222 führt das Programm 114 (siehe 1) zur Erfassung der Speicherauszugsdaten eine Adressumsetzung durch. Wenn es vorher keinen vollständigen Systemabsturz gegeben hätte, könnte die Adressumsetzung während der Ausführungszeit durch die Hardware des Computersystems 102 (siehe 1) durchgeführt werden. Da die Hardware vor Schritt 202 durch den vollständigen Systemabsturz abgebrochen wurde, kann die Hardware nicht zur Adressumsetzung verwendet werden. Somit sucht das Programm 114 zur Erfassung der Speicherauszugsdaten nach Metadaten in den Metadaten 116 (siehe 1) des Betriebssystemimages, wo die Metadaten in Verbindung mit einer bestimmten CPU-Task des aktuellen CPU-Threads gespeichert sind, und ruft diese ab. Die abgerufenen Metadaten für die betreffende CPU-Task enthalten den Typ des Aufruf-Stack-Frames und des Adressumsetzungsmodus (z.B. Adressierung im Ein-Speicher-Adressraum oder private Adressierung; real oder virtuell; gemeinsam genutzt usw.). Anschließend ermittelt das Programm 114 zur Erfassung von Speicherauszugsdaten (siehe 1) das Verfahren der CPU zur Adressumsetzung. Auf der Grundlage des ermittelten Verfahrens zur Adressumsetzung führt das Programm 114 zur Erfassung von Speicherauszugsdaten (siehe 1) die Adressumsetzung in Schritt 204, 206, 208, 210, 212, 214, 216, 220 und 222 durch, um Daten vom Systemhauptspeicher 104 (siehe 1) abzurufen.
  • Der Prozess von 2 kann in die Speicherauszugsdatei 118 Steuerstrukturen zum Erstellen eines Speicherauszugs für Images einfügen. Zum Erstellen eines Speicherauszugs der Steuerstrukturen übernimmt die Zusatzdiensteinheit 112 (siehe 1) die Adressumsetzung, die Adressumsetzungsdaten und die erforderlichen Speicherplätze der Daten der Image-Steuerstruktur. Gemäß einer alternativen Ausführungsform kann die Zusatzdiensteinheit 112 (siehe 1) die Daten zum Erstellen eines Speicherauszugs der Image-Steuerstrukturen auf Frame- oder Seitenebene übernehmen, um sie in einer Datenbank zu speichern und die Daten später zu analysieren.
  • Gemäß Ausführungsformen der vorliegenden Erfindung besteht jedes Mal, wenn eine Seite in Schritt 216, 220 und 222 in die Speicherauszugsdatei 118 geschrieben wird, die Möglichkeit, dass eine Duplikatseite in die Speicherauszugsdatei geschrieben werden kann. Gemäß einer weiteren Ausführungsform verhindert die Zusatzdiensteinheit 112 (siehe 1) das Eintreten von Seitenduplikaten durch Verwendung eines Seiten-Cachespeichers, der die Seiten des Systemhauptspeichers 104 (siehe 1) überwacht, die in das Speicherauszugs-Image der Speicherauszugsdatei 118 ausgegeben werden sollen. Anstatt in Schritt 216, 220 und 222 mehrere getrennte Ausgaben in die Speicherauszugsdatei 118 zu tätigen, gibt der Seiten-Cachespeicher gemäß der weiteren Ausführungsform jede durch Schritt 216, 220 und 222 angeforderte Seite zum Abschluss der Speicherauszugsbearbeitung in Schritt 224 nur genau einmal aus.
  • Nach Schritt 224 enthält die Speicherauszugsdatei 118 die in Schritt 202, 204, 206, 216, 220 und 222 geschriebenen Seiten und andere Daten, die ein Speicherauszugsimage darstellen. Auf der Grundlage des Speicherauszugsimages in der Speicherauszugsdatei 118 ermittelt ein menschlicher Analytiker oder ein Computer einen Status des Betriebssystems im Computersystem 102, diagnostiziert den Hardwareausfall und stellt fest, dass der Hardwareausfall durch Software verursacht wurde, ermittelt wahlweise eine oder mehrere Maßnahmen zur Wiederherstellung des Computersystems 102 und führt wahlweise eine oder mehrere Maßnahmen zur Wiederherstellung des Computersystems durch.
  • COMPUTERSYSTEM
  • 3 ist ein Blockschaubild eines Computersystems, das Bestandteil des Systems von 1 ist und den Prozess von 2 gemäß Ausführungsformen der vorliegenden Erfindung implementiert. Das System 300 stellt eine Ausführungsform des Systems 100 (siehe 1) dar und beinhaltet das Computersystem 102, das als eingebettetes System die Zusatzdiensteinheit 112 enthält. Bei der Zusatzdiensteinheit 112 handelt es sich um ein eigenes Computersystem, das im Allgemeinen eine Zentraleinheit (CPU) 302, einen Speicher 304, eine Eingabe-/Ausgabe(E/A)-Schnittstelle 306, einen Bus 308 und eine Computer-Datenspeichereinheit 312 zum Speichern von Programmen umfasst. Gemäß einer weiteren Ausführungsform handelt es sich bei der Zusatzdiensteinheit 112 und deren Komponenten um ein Computersystem außerhalb des Computersystems 102, das mit diesem verbunden ist. Die CPU 302 führt Rechen- und Steuerfunktionen der Zusatzdiensteinheit 112 aus, darunter die Ausführung von Anweisungen, die im Programmcode 314 enthalten sind, um ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit auszuführen, wobei die Anweisungen über den Speicher 304 durch die CPU 302 ausgeführt werden. Die CPU 302 kann eine einzige Zentraleinheit umfassen oder auf eine oder mehrere Zentraleinheiten an einem oder mehreren Standorten (z.B. auf einem Client und einem Server) verteilt sein. Gemäß einer Ausführungsform beinhaltet der Programmcode 314 ein Programm zur Codespeicherauszugserfassung 114 (siehe 1)
  • Der Speicher 304 kann ein beliebiges bekanntes computerlesbare Speichermedium umfassen, das im Folgenden beschrieben wird. Gemäß einer Ausführungsform stellen Cachespeicherelemente des Speichers 304 temporären Speicherplatz zumindest für Abschnitte des Programmcodes (z.B. für den Programmcode 314) bereit, um während der Ausführung von Anweisungen des Programmcodes die Anzahl der Zugriffe auf den Massenspeicher zu verringern. Außerdem kann sich der Speicher 304 ebenso wie die CPU 302 an einem einzigen physischen Standort befinden, der eine oder mehrere Arten von Datenspeichern umfasst, oder auf eine Vielzahl physischer Systeme in verschiedenen Formen verteilt sein. Ferner kann der Speicher 304 Daten enthalten, die zum Beispiel über ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN) verteilt sind.
  • Die Schnittstelle 306 umfasst ein System zum Austauschen von Daten an oder von einer Quelle außerhalb der Zusatzdiensteinheit 112. Eine oder mehrere (nicht gezeigte) E/A-Einheiten können mit der Zusatzdiensteinheit 112 verbunden sein und jede bekannte Art von Peripherieeinheiten umfassen, darunter eine Anzeigeeinheit (z.B. einen Monitor), eine Tastatur, eine Maus, einen Drucker, Lautsprecher, ein Handgerät, ein Faxgerät usw. Der Bus 308 stellt eine Datenübertragungsverbindung zwischen den Komponenten in der Zusatzdiensteinheit 112 bereit und kann jede Art von Übertragungsverbindung umfassen, darunter elektrische, optische, drahtlose u sw.
  • Die E/A-Schnittstelle 306 ermöglicht der Zusatzdiensteinheit 112 auch das Speichern von Informationen (z.B. Daten oder Programmanweisungen wie beispielsweise den Programmcode 314) auf der Computer-Datenspeichereinheit 312 oder einer anderen (nicht gezeigten) Computer-Datenspeichereinheit und das Abrufen der Informationen von diesen. Die Computer-Datenspeichereinheit 312 kann jedes bekannte computerlesbare Speichermedium umfassen, das im Folgenden beschrieben wird. Zum Beispiel kann es sich bei der Computer-Datenspeichereinheit 312 um eine permanente Datenspeichereinheit wie beispielsweise ein magnetisches Plattenlaufwerk (d.h. ein Festplattenlaufwerk) oder ein optisches Plattenlaufwerk (z.B. ein CD-ROM-Laufwerk, in das eine CD-ROM eingelegt wird) handeln.
  • Der Speicher 304 und/oder die Speichereinheit 312 können den Computerprogrammcode 314 speichern, der Anweisungen beinhaltet, die über den Speicher 304 durch die CPU 302 ausgeführt werden, um Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu erfassen. Obwohl 3 zeigt, dass der Speicher 304 den Programmcode 314 enthält, sind durch die vorliegende Erfindung Ausführungsformen denkbar, bei denen der Speicher 304 nicht gleichzeitig den gesamten Code 314, sondern stattdessen zu jedem Zeitpunkt jeweils nur einen Abschnitt des Codes 314 enthält.
  • Ferner kann der Speicher 304 andere in 3 nicht gezeigte Systeme beinhalten, beispielsweise ein Betriebssystem (z.B. Linux), das durch die CPU 302 ausgeführt wird und die Steuerung verschiedener Komponenten ermöglicht, die sich innerhalb der Zusatzdiensteinheit 112 befinden und/oder mit dieser verbunden sind.
  • Die Speichereinheit 312 und/oder eine oder mehrere andere (nicht gezeigte) Computer-Datenspeichereinheiten, die mit der Zusatzdiensteinheit 112 verbunden sind, können Metadaten 116 (siehe 1) des Betriebssystemimages, eine Speicherauszugsdatei 118 (siehe 1) und Systemhardwaredaten speichern, die von Hardwareeinheiten des Computersystems 102 erfasst wurden.
  • Das Computersystem 102 umfasst im Allgemeinen eine CPU 352, einen Speicher 354, eine Eingabe-/Ausgabe(E/A)-Schnittstelle 356, einen Bus 358 und ist mit einer oder mehreren E/A-Einheiten 360 und einer Computer-Datenspeichereinheit 362 verbunden. Die CPU 352 führt Rechen- und Steuerfunktionen des Computersystems 102 aus. Die CPU 352 kann eine einzelne Zentraleinheit umfassen oder auf eine oder mehrere Zentraleinheiten an einem oder mehreren Standorten (z.B. auf einem Client und einem Server) verteilt sein.
  • Der Speicher 354 kann jedes bekannte computerlesbare Speichermedium umfassen. Der Speicher 354 kann sich an einem einzigen physischen Standort befinden, der eine oder mehrere Arten von Datenspeichern umfasst, oder auf eine Vielzahl physischer Systeme unterschiedlicher Form verteilt sein. Ferner kann der Speicher 354 Daten enthalten, die zum Beispiel über ein LAN oder ein WAN verteilt sind.
  • Die E/A-Schnittstelle 356 umfasst ein beliebiges System zum Austauschen von Informationen zwischen einer externen Quelle und dem Computersystem 102, darunter zum Austauschen von Informationen zwischen der Zusatzdiensteinheit 112 und einer oder mehreren Komponenten des Computersystems 102. Der Doppelpfeil mit der gestrichelten Linie in 3 zwischen der CPU 352 und der Zusatzdiensteinheit 112 zeigt an, dass die Informationen, die durch den hierin offengelegten Prozess zum Abrufen der Speicherauszugsdaten verwendet werden, zwischen der CPU 352 und der Zusatzdiensteinheit 112 über die E/A-Schnittstelle 356 ausgetauscht werden, ohne dass zwischen der Zusatzdiensteinheit 112 und der CPU 352 eine direkte Verbindung bestehen muss, wodurch sich charakteristische Ausführungsformen der vorliegenden Erfindung von einer ambulanten Einheit unterscheiden. Der Doppelpfeil mit der gestrichelten Linie in 3 zwischen dem Speicher 354 und der Zusatzdiensteinheit 112 zeigt an, dass die Informationen, die durch den hierin offengelegten Prozess zum Abrufen der Speicherauszugsdaten verwendet werden, zwischen dem Speicher 354 und der Zusatzdiensteinheit 112 über die E/A-Schnittstelle 356 ausgetauscht werden, ohne dass zwischen der Zusatzdiensteinheit 112 und dem Speicher 354 eine direkte Verbindung bestehen muss, wodurch sich charakteristische Ausführungsformen der vorliegenden Erfindung zusätzlich von einer ambulanten Einheit unterscheiden.
  • Eine oder mehrere E/A-Einheiten 360 können mit dem Computersystem 102 verbunden sein und jeden bekannten Typ von Peripherieeinheit umfassen, darunter eine Anzeigeeinheit (z.B. einen Monitor), eine Tastatur, eine Maus, einen Drucker, Lautsprecher, ein Handgerät, ein Fax usw. Der Bus 358 stellt eine Datenübertragungsverbindung zwischen jeder der Komponenten im Computersystem 102 bereit und kann jede Art von Übertragungsverbindung umfassen, darunter elektrische, optische, drahtlose usw.
  • Die E/A-Schnittstelle 356 ermöglicht dem Computersystem 102 auch das Speichern von Informationen (z.B. Daten oder Programmanweisungen) auf der Computer-Datenspeichereinheit 362 oder einer anderen (nicht gezeigten) Computer-Datenspeichereinheit und das Abrufen der Informationen von diesen. Die Computer-Datenspeichereinheit 362 kann jedes bekannte computerlesbare Speichermedium umfassen.
  • Gemäß einer Ausführungsform ist der Speicher 354 gleich mit dem Systemhauptspeicher 104 (siehe 1) identisch oder enthält diesen. Ferner kann der Speicher 354 andere in 3 nicht gezeigte Systeme beinhalten, beispielsweise ein Betriebssystem (z.B. Linux), das durch die CPU 352 ausgeführt wird und die Steuerung verschiedener Komponenten ermöglicht, die Teil des Computersystems 102 oder mit diesem verbunden sind.
  • Dem Fachmann ist einsichtig, dass die vorliegende Erfindung als System, Verfahren oder Computerprogrammprodukt realisiert werden kann. Demgemäß kann ein Aspekt einer Ausführungsform der vorliegenden Erfindung die Form eines kompletten Hardwareaspekts, eines kompletten Softwareaspekts (darunter Firmware, residente Software, Mikrocode usw.) oder eines Aspekts annehmen, der Software- und Hardwareaspekte in sich vereint, die hierin im Allgemeinen sämtlich als Modul bezeichnet werden können. Darüber hinaus kann eine Ausführungsform der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien (z.B. im Speicher 304 und/oder in der Computer-Datenspeichereinheit 312) verkörpert ist, in denen ein computerlesbarer Programmcode (z.B. der Programmcode 314) verkörpert oder gespeichert ist.
  • Es kann jede Kombination von einem oder mehreren computerlesbaren Medien (z.B. der Speicher 304 und die Computer-Datenspeichereinheit 312) verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Gemäß einer Ausführungsform dient als computerlesbares Speichermedium eine computerlesbare Speichereinheit oder eine computerlesbare Speichervorrichtung. Bei dem computerlesbaren Speichermedium kann es sich unter anderem um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine geeignete Kombination derselben handeln. Eine nicht erschöpfende Liste weiterer spezieller Beispiele für das computerlesbare Medium beinhaltet: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei dem computerlesbaren Speichermedium um ein körperliches Medium handeln, das ein Programm (z.B. das Programm 314) zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit einem darin verkörperten computerlesbaren Programmcode beinhalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches sich ausbreitendes Signal kann eine Vielzahl von Formen annehmen, unter anderem elektromagnetische, optische oder beliebige geeignete Kombinationen derselben. Bei einem computerlesbaren Signalmedium kann es sich um jedes computerlesbare Medium handeln, das kein computerlesbares Speichermedium ist, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zum Ausführen von Anweisungen übertragen, weiterleiten oder transportieren kann.
  • Ein auf einem computerlesbaren Medium verkörperter Programmcode (z.B. der Programmcode 314) kann unter Verwendung jedes geeigneten Mediums übertragen werden, unter anderem drahtlos, leitungsgebunden, über Lichtwellenleiter, HF usw. oder jede geeignete Kombination derselben.
  • Ein Computerprogrammcode (z.B. der Programmcode 314) zum Ausführen von Operationen gemäß Aspekten der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie beispielsweise Java®, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen. Anweisungen des Programmcodes können ganz auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden, wobei es sich bei dem oben erwähnten Computer des Benutzers, dem fernen Computer und Server zum Beispiel um die Zusatzdiensteinheit 112 oder ein anderes (nicht gezeigtes) Computersystem handeln kann, das Komponenten analog den Komponenten der Zusatzdiensteinheit 112 von 3 aufweist. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers durch eine beliebige Art von (nicht gezeigtem) Netz verbunden sein, darunter ein LAN oder ein WAN, oder die Verbindung kann zu einem externen Computer hergestellt werden (z.B. über das Internet unter Verwendung eines Internet-Providers).
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Ablaufpläne (z.B. 2) und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) (z.B. 1 und 3) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Anweisungen eines Computerprogramms (z.B. durch den Programmcode 314) implementiert werden können. Die Anweisungen des Computerprogramms können einem oder mehreren Hardware-Prozessoren (z.B. der CPU 302) eines Universalcomputers, einem Spezialcomputer oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine derart zu erzeugen, dass die Anweisungen, die durch den/die Prozessor/en des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Implementieren der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder spezifizierten Funktionen/Aktionen erzeugen.
  • Diese Anweisungen des Computerprogramms können auch in einem computerlesbaren Medium (z.B. im Speicher 304 oder der Computer-Datenspeichereinheit 312), das einen Computer (z.B. das Computersystem 102) führen kann, einer anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten gespeichert werden, um in einer bestimmten Weise so zu funktionieren, dass die in dem computerlesbaren Medium gespeicherten Anweisungen (z.B. das Programm 314) ein Herstellungserzeugnis ergeben, das Anweisungen aufweist, die die Funktion/Aktion implementieren, die in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegeben ist.
  • Die Anweisungen des Computerprogramms können auch in einen Computer (z.B. in die Zusatzdiensteinheit 112), eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe auf dem Computer, der anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführender Arbeitsschritte zu bewirken und einen computerimplementierten Prozess derart zu erzeugen, dass die auf dem Computer, den anderen programmierbaren Vorrichtungen oder anderen Einheiten ausgeführten Anweisungen (z.B. das Programm 314) Prozesse zum Implementieren der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktionen/Aktionen bereitstellen.
  • Jede der Komponenten einer Ausführungsform der vorliegenden Erfindung kann durch einen Dienstanbieter installiert, verwaltet, gewartet usw. werden, der anbietet, eine Datenverarbeitungsinfrastruktur in Bezug auf das Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu installieren oder zu integrieren. Somit legt eine Ausführungsform der vorliegenden Erfindung einen Prozess zum Unterstützen einer Computerinfrastruktur offen, wobei der Prozess mindestens einen unterstützenden Service zum Integrieren, Hosting, Warten und/oder Installieren eines computerlesbaren Codes (z.B. des Programmcodes 314) in einem Computersystem (z.B. der Zusatzdiensteinheit 112) mit einem oder mehreren Prozessoren (z.B. der CPU 302) umfasst, wobei der/die Prozessor/en in dem Code enthaltene Anweisungen ausführen, die das Computersystem zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit veranlassen.
  • Gemäß einer weiteren Ausführungsform stellt die Erfindung ein Verfahren bereit, das die Prozessschritte der Erfindung auf der Grundlage von Abonnements, Werbeeinnahmen und/oder Gebühren ausführt. Das heißt, ein Dienstanbieter wie beispielsweise ein Lösungsentwickler kann anbieten, einen Prozess zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu erstellen, zu warten, zu unterstützen usw. In diesem Fall kann der Dienstanbieter eine Computerinfrastruktur erstellen, warten, unterstützen usw., die die Prozessschritte der Erfindung für einen oder mehrere Kunden aufführt. Der Dienstanbieter wiederum kann Zahlungen von Kunden aufgrund von Abonnements und/oder Gebührenvereinbarungen entgegennehmen und/oder der Dienstanbieter kann Zahlungen für den Verkauf von Werbeinhalten an einen oder mehrere Dritte entgegennehmen.
  • Der Ablaufplan in 2 und die Blockschaubilder in 1 und 3 veranschaulichen die Architektur, die Funktionalität und die Wirkungsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Abschnitt des Codes (z.B. des Programmcodes 314) darstellen, der eine oder mehrere ausführbare Anweisungen zum Implementieren der angegebenen logischen Funktion/en umfasst. Zu beachten ist auch, dass bei einigen weiteren Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge ausgeführt werden können. Zum Beispiel können zwei nacheinander dargestellte Blöcke je nach der beabsichtigten Funktionalität in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in umgekehrter Reihenfolge ausgeführt werden. Es wird auch darauf hingewiesen, dass jeder Block in den Blockschaubildern und/oder dem Ablaufplan und Kombinationen von Blöcken in den Blockschaubildern und/oder dem Ablaufplan durch spezielle Hardwaresysteme, die die angegebenen Funktionen oder Aktionen ausführen, oder durch Kombinationen von spezieller Hardware und Computeranweisungen implementiert werden können.
  • Während Ausführungsformen der vorliegenden Erfindung hierin zum Zweck der Veranschaulichung beschrieben wurden, sind dem Fachmann viele Modifikationen und Änderungen offensichtlich. Demgemäß sollen die beigefügten Ansprüche alle solchen Modifikationen und Änderungen im Rahmen des Erfindungsgedankens und des Schutzumfangs dieser Erfindung umfassen.

Claims (15)

  1. Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch einen Computer; Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer; Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer; Abrufen der Vielzahl von Aufruf-Stack-Frames durch einen Prozessor des Computers auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
  2. Verfahren nach Anspruch 1, das ferner die folgenden Schritte umfasst: Erfassen von Konfigurationsdaten durch den Computer, die Zuordnungen von CPU-Threads der CPU zu Betriebssystemimages der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben; Ermitteln des einem CPU-Threads zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystemimages durch den Computer auf der Grundlage der erfassten Konfigurationsdaten; Abrufen eines Layouts einer Struktur einer Task in einer Datenspeichereinheit des Computers durch den Computer auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei der Schritt des Abrufens des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystemimages beruht.
  3. Verfahren nach einem der Ansprüche 1 bis 2, das ferner den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch den Computer umfasst, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein dem Betriebssystemimage zugeordneter CPU-Thread im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung des Betriebssystemimages angeben, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und des Verfahrens zum Durchführen der Adressumsetzung beruht.
  4. Verfahren nach Anspruch 3, wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des Verfahrens zum Durchführen der Adressumsetzung umfasst, das durch die abgerufenen Metadaten und die erfasste Adressumsetzungstabelle vorgegeben ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, das ferner das Erkennen eines Typs des Betriebssystemimages als Hypervisorprogrammimage durch den Computer umfasst.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames durch den Computer von einem, Dienstprozessor außerhalb der System-Verarbeitungseinheiten ausgeführt wird, auf denen eine Vielzahl von Betriebssystemimages über einen Hypervisor der Computer-Hardwareeinheit ausgeführt werden, wobei der Dienstprozessor keine durch den Hypervisor verwaltete ambulante logische Partition (LPAR) erfordert.
  7. Verfahren nach einem der Ansprüche 1 bis 6, das ferner die folgenden Schritte umfasst: Erfassen einer zweiten Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer; Abrufen eines zweiten Formats einer zweiten Vielzahl von Aufruf-Stack-Frames eines zweiten Aufrufstapels eines zweiten Betriebssystemimages der Computer-Hardwareeinheit durch den Computer, wobei das Betriebssystemimage und das zweite Betriebssystemimage unterschiedlichen Typs sind, aber gemeinsame Grundstrukturen aufweisen, darunter ein gemeinsamer Datenübertragungs-Kernbereich und ein gemeinsames Prozessor-Datenübertragungsarray, und wobei das Format der Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystemimages von dem zweiten Format verschieden ist. Abrufen der zweiten Vielzahl von Aufruf-Stack-Frames durch den Computer auf der Grundlage der erfassten zweiten Adressumsetzungstabelle und des abgerufenen zweiten Formats der zweiten Vielzahl von Aufruf-Stack-Frames; Ausgeben der abgerufenen zweiten Vielzahl von Aufruf-Stack-Frames in die Computerdatei durch den Computer; und Empfangen einer Diagnose des Ausfalls auf der Grundlage der Computerdatei, die die Vielzahl von Aufruf-Stack-Frames des Aufrufstapels des Betriebssystemimages und die zweite Vielzahl von Aufruf-Stack-Frames des zweiten Aufrufstapels des zweiten Betriebssystemimages beinhaltet.
  8. Computersystem, aufweisend: eine Zentraleinheit (CPU); einen mit der CPU verbundenen Speicher; eine mit der CPU verbundene computerlesbare körperliche Speichereinheit, wobei die Speichereinheit Anweisungen enthält, die über den Speicher durch die CPU ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit realisieren, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem Systemabsturz führt, durch das Computersystem; Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem; Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch das Computersystem; Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
  9. Computersystem nach Anspruch 8, wobei das Verfahren ferner die folgenden Schritte umfasst: Erfassen von Konfigurationsdaten durch das Computersystem, die Zuordnungen von CPU-Threads der CPU zu Betriebssystemimages der Computer-Hardwareeinheit zu einem Zeitpunkt des Ausfalls der Computer-Hardwareeinheit angeben; Ermitteln des einem CPU-Thread zugeordneten Betriebssystemimages und Erkennen eines Typs des Betriebssystemimages durch das Computersystem auf der Grundlage der erfassten Konfigurationsdaten; und Abrufen des Plans einer Struktur einer Task in einer Datenspeichereinheit des Computers durch das Computersystem auf der Grundlage des erkannten Typs des Betriebssystemimages, wobei der Schritt des Abrufens des Formats der Vielzahl von Aufruf-Stack-Frames auf dem erkannten Typ des Betriebssystemimages beruht.
  10. Computersystem nach einem der Ansprüche 8 bis 9, wobei das Verfahren ferner den Schritt des Abrufens von Metadaten des Betriebssystemimages der Computer-Hardwareeinheit durch das Computersystem umfasst, wobei die Metadaten eine Wortgröße des Betriebssystemimages, ein Endian-Format des Betriebssystemimages, einen Hinweis, ob sich ein dem Betriebssystemimage zugeordneter CPU-Thread im Hypervisormodus befindet, eine Adresse eines obersten Eintrags des Aufrufstapels und ein Verfahren zum Durchführen der Adressumsetzung in dem Betriebssystemimage angeben, und wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames ferner auf der Wortgröße, dem Endian-Format, dem Hinweis, ob sich der CPU-Thread im Hypervisormodus befindet, der Adresse des obersten Eintrags des Aufrufstapels und des Verfahrens zum Durchführen der Adressumsetzung beruht.
  11. Computersystem nach Anspruch 10, wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames das Umsetzen der Adresse des obersten Eintrags des Aufrufstapels auf der Grundlage des Verfahrens zum Durchführen der Adressumsetzung, das durch die abgerufenen Metadaten vorgegeben ist, und der erfassten Adressumsetzungstabelle umfasst.
  12. Computersystem nach einem der Ansprüche 8 bis 11, wobei das Verfahren ferner den Schritt des Erkennens eines Typs des Betriebssystemimages als Hypervisorprogrammimage durch das Computersystem umfasst.
  13. Computersystem nach einem der Ansprüche 8 bis 12, wobei der Schritt des Abrufens der Vielzahl von Aufruf-Stack-Frames durch das Computersystem durch einen Dienstprozessor außerhalb der System-Verarbeitungseinheiten ausgeführt wird, auf denen eine Vielzahl von Betriebssystemimages über einen Hypervisor der Computer-Hardwareeinheit ausgeführt werden, wobei der Dienstprozessor keine durch den Hypervisor verwaltete ambulante logische Partition (LPAR) erfordert.
  14. Computerprogrammprodukt, das eine computerlesbare körperliche Speichereinheit mit darin gespeicherten computerlesbaren Programmanweisungen umfasst, wobei die computerlesbaren Programmanweisungen durch eine Zentraleinheit (CPU) eines Computersystems ausgeführt werden und ein Verfahren zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit implementieren, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch das Computersystem; Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch das Computersystem; Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch das Computersystem; Abrufen der Vielzahl von Aufruf-Stack-Frames durch das Computersystem auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und Ausgeben der Vielzahl von Aufruf-Stack-Frames durch das Computersystem in eine Computerdatei.
  15. Prozess zum Unterstützen einer Datenverarbeitungs-Infrastruktur, wobei der Prozess das Bereitstellen mindestens eines Unterstützungsdienstes zum Erstellen, Integrieren, Hosting, Warten und/oder Installieren eines computerlesbaren Codes in einem Computer mit einem Prozessor umfasst, wobei der Prozessor in dem Code enthaltene Anweisungen ausführt, um den Computer zum Ausführen eines Verfahrens zum Erfassen von Daten zum Diagnostizieren eines Ausfalls einer Computer-Hardwareeinheit zu veranlassen, wobei das Verfahren die folgenden Schritte umfasst: Empfangen eines Hinweises auf den Ausfall der Computer-Hardwareeinheit, der zu einem vollständigen Systemabsturz führt, durch den Computer; Erfassen einer Adressumsetzungstabelle einer Zentraleinheit (CPU) der Computer-Hardwareeinheit durch den Computer; Abrufen eines Formats einer Vielzahl von Aufruf-Stack-Frames eines Aufrufstapels eines Betriebssystemimages (OS) der Computer-Hardwareeinheit durch den Computer; Abrufen der Vielzahl von Aufruf-Stack-Frames durch den Prozessor des Computers auf der Grundlage der erfassten Adressumsetzungstabelle und des abgerufenen Formats der Vielzahl von Aufruf-Stack-Frames; und Ausgeben der abgerufenen Vielzahl von Aufruf-Stack-Frames durch den Computer in eine Computerdatei.
DE102012215216.4A 2011-09-07 2012-08-28 Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi Active DE102012215216B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/226,655 2011-09-07
US13/226,655 US8762790B2 (en) 2011-09-07 2011-09-07 Enhanced dump data collection from hardware fail modes

Publications (2)

Publication Number Publication Date
DE102012215216A1 DE102012215216A1 (de) 2013-03-07
DE102012215216B4 true DE102012215216B4 (de) 2021-04-29

Family

ID=47074985

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012215216.4A Active DE102012215216B4 (de) 2011-09-07 2012-08-28 Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi

Country Status (4)

Country Link
US (4) US8762790B2 (de)
CN (1) CN102999406B (de)
DE (1) DE102012215216B4 (de)
GB (1) GB2495586B (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762790B2 (en) 2011-09-07 2014-06-24 International Business Machines Corporation Enhanced dump data collection from hardware fail modes
US8782472B2 (en) * 2011-10-28 2014-07-15 Dell Products L.P. Troubleshooting system using device snapshots
GB2508344A (en) * 2012-11-28 2014-06-04 Ibm Creating an operating system dump
EP3029572A4 (de) * 2013-07-31 2016-07-20 Fujitsu Ltd Informationsverarbeitungsvorrichtung, speicherauslagerungsverfahren und speicherauslagerungsprogramm
US9317356B2 (en) * 2013-10-15 2016-04-19 Globalfoundries Inc. Device state capture during operating system dump
US9785492B1 (en) * 2013-12-09 2017-10-10 Forcepoint Llc Technique for hypervisor-based firmware acquisition and analysis
US9696940B1 (en) 2013-12-09 2017-07-04 Forcepoint Federal Llc Technique for verifying virtual machine integrity using hypervisor-based memory snapshots
US9734325B1 (en) 2013-12-09 2017-08-15 Forcepoint Federal Llc Hypervisor-based binding of data to cloud environment for improved security
DE102014213287A1 (de) 2014-07-09 2016-01-14 Bayerische Motoren Werke Aktiengesellschaft Navigationsverfahren
DE102014214507A1 (de) 2014-07-24 2016-01-28 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Erstellung eines Umfeldmodells eines Fahrzeugs
DE102014214506A1 (de) 2014-07-24 2016-01-28 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Erstellung eines Umfeldmodells eines Fahrzeugs
DE102014214505A1 (de) 2014-07-24 2016-01-28 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Erstellung eines Umfeldmodells eines Fahrzeugs
US10067813B2 (en) 2014-11-21 2018-09-04 Samsung Electronics Co., Ltd. Method of analyzing a fault of an electronic system
US9852028B2 (en) * 2015-04-21 2017-12-26 International Business Machines Corporation Managing a computing system crash
CN106326022B (zh) * 2015-06-26 2019-05-10 伊姆西公司 转储的自动分配方法和设备
IN2015CH04519A (de) * 2015-08-27 2015-09-11 Wipro Ltd
US9971650B2 (en) 2016-06-06 2018-05-15 International Business Machines Corporation Parallel data collection and recovery for failing virtual computer processing system
US10331508B2 (en) 2016-06-23 2019-06-25 Vmware, Inc. Computer crash risk assessment
US10365959B2 (en) 2016-06-23 2019-07-30 Vmware, Inc. Graphical user interface for software crash analysis data
US10331546B2 (en) * 2016-06-23 2019-06-25 Vmware, Inc. Determination of a culprit thread after a physical central processing unit lockup
US10338990B2 (en) 2016-06-23 2019-07-02 Vmware, Inc. Culprit module detection and signature back trace generation
US10268563B2 (en) 2016-06-23 2019-04-23 Vmware, Inc. Monitoring of an automated end-to-end crash analysis system
US10324796B2 (en) * 2016-08-11 2019-06-18 International Business Machines Corporation Stack detail recovery
US10514972B2 (en) * 2018-04-27 2019-12-24 Dell Products L. P. Embedding forensic and triage data in memory dumps
US10891181B2 (en) 2018-10-25 2021-01-12 International Business Machines Corporation Smart system dump
US11044440B2 (en) 2019-11-04 2021-06-22 Times Fiber Communications, Inc. Universal MoCA gateway splitter
US20210089411A1 (en) * 2020-12-04 2021-03-25 Intel Corporation Restoring persistent application data from non-volatile memory after a system crash or system reboot
JP2022118489A (ja) 2021-02-02 2022-08-15 キオクシア株式会社 メモリシステム
US11977629B2 (en) * 2021-06-30 2024-05-07 Microsoft Technology Licensing, Llc Retrospective memory analysis
CN114710237B (zh) * 2022-03-25 2024-01-26 湖南鼎一致远科技发展有限公司 通讯接口的数据处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574627B2 (en) * 2006-02-22 2009-08-11 Hitachi, Ltd. Memory dump method, memory dump program and computer system
US20100083049A1 (en) * 2008-09-29 2010-04-01 Hitachi, Ltd. Computer system, method of detecting symptom of failure in computer system, and program
US7788537B1 (en) * 2006-01-31 2010-08-31 Emc Corporation Techniques for collecting critical information from a memory dump

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681348B1 (en) * 2000-12-15 2004-01-20 Microsoft Corporation Creation of mini dump files from full dump files
WO2002095585A1 (en) 2001-05-24 2002-11-28 Techtracker, Inc. Program execution stack signatures
US6996751B2 (en) * 2001-08-15 2006-02-07 International Business Machines Corporation Method and system for reduction of service costs by discrimination between software and hardware induced outages
US20050204199A1 (en) * 2004-02-28 2005-09-15 Ibm Corporation Automatic crash recovery in computer operating systems
US7325163B2 (en) 2005-01-04 2008-01-29 International Business Machines Corporation Error monitoring of partitions in a computer system using supervisor partitions
US7418635B2 (en) 2005-01-25 2008-08-26 Tandberg Storage Asa Automatically triggered snapshot data dump for storage unit with embedded system
US8375386B2 (en) * 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
CA2626993A1 (en) * 2005-10-25 2007-05-03 The Trustees Of Columbia University In The City Of New York Methods, media and systems for detecting anomalous program executions
US7979749B2 (en) 2006-11-15 2011-07-12 International Business Machines Corporation Method and infrastructure for detecting and/or servicing a failing/failed operating system instance
US7685474B2 (en) * 2007-03-16 2010-03-23 Symantec Corporation Failsafe computer support assistant using a support virtual machine
US8069371B2 (en) * 2007-04-26 2011-11-29 Hewlett-Packard Development Company, L.P. Method and system for remotely debugging a hung or crashed computing system
CN101216797B (zh) * 2008-01-11 2011-09-07 中国移动通信集团四川有限公司 大型数据中心it系统基础软硬件平台的深度巡检系统和方法
US8949671B2 (en) * 2008-01-30 2015-02-03 International Business Machines Corporation Fault detection, diagnosis, and prevention for complex computing systems
CN101398768B (zh) * 2008-10-28 2011-06-15 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
US8132057B2 (en) * 2009-08-07 2012-03-06 International Business Machines Corporation Automated transition to a recovery kernel via firmware-assisted-dump flows providing automated operating system diagnosis and repair
CN101977248A (zh) * 2010-10-25 2011-02-16 浪潮电子信息产业股份有限公司 一种利用域名进行服务器带外管理的方法
US8762790B2 (en) 2011-09-07 2014-06-24 International Business Machines Corporation Enhanced dump data collection from hardware fail modes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788537B1 (en) * 2006-01-31 2010-08-31 Emc Corporation Techniques for collecting critical information from a memory dump
US7574627B2 (en) * 2006-02-22 2009-08-11 Hitachi, Ltd. Memory dump method, memory dump program and computer system
US20100083049A1 (en) * 2008-09-29 2010-04-01 Hitachi, Ltd. Computer system, method of detecting symptom of failure in computer system, and program

Also Published As

Publication number Publication date
US10671468B2 (en) 2020-06-02
US20130061096A1 (en) 2013-03-07
US8762790B2 (en) 2014-06-24
US20160299809A1 (en) 2016-10-13
US10013298B2 (en) 2018-07-03
US20140250335A1 (en) 2014-09-04
US20180293127A1 (en) 2018-10-11
GB2495586B (en) 2013-08-14
CN102999406B (zh) 2016-03-30
GB201215455D0 (en) 2012-10-17
US9396057B2 (en) 2016-07-19
GB2495586A (en) 2013-04-17
DE102012215216A1 (de) 2013-03-07
CN102999406A (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
DE102012215216B4 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE112011101364B4 (de) Fehlerbehebung in Multithread-Code
DE112018004384B4 (de) Schützen von arbeitsspeicherinternen konfigurationsstatusregistern
DE112010003492T5 (de) Transaktionsspeichersystem mit wirksamerZwischenspeicherunterstützung
DE112014001873T5 (de) Replikation für Hot-Standby-Online-Datenbank
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE112011100258T5 (de) Durchführen von aggressiven Codeoptimierungen mit einer Fähigkeit zum Annulieren derdurch die aggressiven Optimierungen vorgenommenen Änderungen
DE102007046947B4 (de) System und Verfahren zum Verwalten von Systemmanagement-Interrupts in einem Mehrprozessor-Computersystem
DE112010004187T5 (de) Verfahren und System zum Verarbeiten von Netzwerkereignissen
DE112013002254T5 (de) Wiederherstellen aus einer Altbetriebssystemumgebung zu einer UEFI-Preboot-Umgebung
DE102014108249A1 (de) Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE112012000693T5 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112007001245T5 (de) Fehlererkennung mit redundanten virtuellen Maschinen
DE112008004014T5 (de) Analysieren von Serverkopien von Clientdateien
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE112013000330T5 (de) In-Situ-Neubewertung von Prozessoren
DE102013209643A1 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE112016005823T5 (de) Überwachen des betriebs eines prozessors
DE10249644A1 (de) Softwareabsturzereignisanalyseverfahren und -system
DE602006000728T2 (de) Unterstützung dynamisch typisierter Sprachen in typisierten Assemblersprachen
DE112018001257T5 (de) Generieren und überprüfen von ablaufverfolgungen von hardware-anweisungen einschliesslich dateninhalten des arbeitsspeichers
DE102013200030A1 (de) Hash-basiertes verwalten von speicher-ids

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R081 Change of applicant/patentee

Owner name: KYNDRYL, INC., NEW YORK, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

R020 Patent grant now final