# US 10,310,952 B2 · Using transactional execution for reliability and recovery of transient failures

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,310,952 B2
- Document ID: US10310952B2
- Status: Granted
- Kind: B2
- Application number: 15/070,012
- Filed: 2016-03-15
- Published: 2016-07-07
- Granted: 2019-06-04
- Earliest claimed: 2014-01-24
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Michael Karl Gschwind; Valentina Salapura
- Web page: https://patentgrep.com/patent/US10310952B2

## CPC

- G06F 11/1474: in transactions (updating of structured data in databases G06F16/23)
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0629: {Configuration or reconfiguration of storage systems}
- G06F 3/0673: {Single storage device}
- G06F 9/466: {Transaction processing}
- G06F 11/1407: {Checkpointing the instruction stream}
- G06F 11/1438: {Restarting or rejuvenating}
- G06F 11/1451: {by selection of backup contents}
- G06F 13/24: using interrupt (G06F13/32 takes precedence)
- G06F 2201/805: Real-time
- G06F 2201/825: the problem or solution involving locking
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Autonomous recovery from a transient hardware failure by executing portions of a stream of program instructions as a transaction. A start of a transaction is created in a stream of program instructions executing on a first processor of a multi-processor computer. A snapshot of a system state information is saved when the transaction begins. When the transaction ends, store data of the transaction is committed. If a transient hardware failure occurs, the transaction is aborted without notifying the computer software application that initiated the stream of program instructions. The transaction is re-executed on a second processor of the multi-processors, based on the saved snapshot of the system state information.

## Claims

### Claim 1

A method for autonomous recovery from a transient hardware failure by executing each portion of a stream of program instructions as a transaction, the method comprising:
creating, by an operating system on a multi-processor computer system configured to support transactional execution mode processing, a start of a transactional region portion of a stream of program instructions wherein the portion of the stream of program instructions in the transactional region is to be executed as a transaction in transactional execution mode;
starting the transactional region in transactional execution mode on a first processor of the multi-processors;
saving, by the operating system, a snapshot of a system state information;
executing, by the operating system on the first processor, the portion of the stream of program instructions as a transaction;
creating, by the operating system, an end of the transactional region portion of the stream of program instructions;
in response to ending execution of the transactional region in transactional execution mode, committing, by the operating system, store data of the transaction to memory; and
in response to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode:
aborting, by the operating system, the transaction without notifying a computer software application that initiated the stream of program instructions; and
re-executing, by the operating system on a second processor of the multi-processors, the transactional region portion stream of program instructions as a transaction in transactional execution mode, based on the saved snapshot of the system state information.

### Claim 2 (depends on 1)

The method according to claim 1, wherein responsive to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode further comprises:
returning, by the operating system, a specialized abort code with the abort identifying the transient hardware failure.

### Claim 3 (depends on 1)

The method according to claim 1, wherein responsive to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode further comprises:
creating, by the operating system, a hardware interrupt that is handled by one of firmware or privileged software; and
providing, by the operating system, failure information.

### Claim 4 (depends on 1)

A method according to claim 1,
wherein in response to starting the transactional region in transactional execution mode further comprises the step of:
writing, by the operating system to a gathering store, data that is stored by one or more executed program instructions in the transactional region portion stream of program instructions; and
wherein committing, by the operating system, store data of the transaction to memory further comprises:
clearing the gathering store; and
wherein aborting, by the operating system, the transaction without notifying a computer software application that initiated the stream of program instructions further comprises:
clearing the gathering store.

### Claim 5

A computer system for autonomous recovery from a transient hardware failure by executing each portion of a stream of program instructions as a transaction, the computer system comprising:
a memory; and
a processor in communication with the memory, wherein the computer system is configured to perform a method comprising:
creating, by an operating system on a multi-processor computer system configured to support transactional execution mode processing, a start of a transactional region portion of a stream of program instructions wherein the portion of the stream of program instructions in the transactional region is to be executed as a transaction in transactional execution mode;
starting the transactional region in transactional execution mode on a first processor of the multi-processors;
saving, by the operating system, a snapshot of a system state information;
executing, by the operating system on the first processor, the portion of the stream of program instructions as a transaction;
creating, by the operating system, an end of the transactional region portion of the stream of program instructions;
in response to ending execution of the transactional region in transactional execution mode, committing, by the operating system, store data of the transaction to memory; and
in response to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode:
aborting, by the operating system, the transaction without notifying a computer software application that initiated the stream of program instructions; and
re-executing, by the operating system on a second processor of the multi-processors, the transactional region portion stream of program instructions as a transaction in transactional execution mode, based on the saved snapshot of the system state information.

### Claim 6 (depends on 5)

The computer system according to claim 5, wherein responsive to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode further comprises:
returning, by the operating system, a specialized abort code with the abort identifying the transient hardware failure.

### Claim 7 (depends on 5)

The computer system according to claim 5, wherein responsive to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode further comprises:
creating, by the operating system, a hardware interrupt that is handled by one of firmware or privileged software; and
providing, by the operating system, failure information.

### Claim 8 (depends on 5)

A computer system according to claim 5,
wherein in response to starting the transactional region in transactional execution mode further comprises the step of:
writing, by the operating system to a gathering store, data that is stored by one or more executed program instructions in the transactional region portion stream of program instructions; and
wherein committing, by the operating system, store data of the transaction to memory further comprises:
clearing the gathering store; and
wherein aborting, by the operating system, the transaction without notifying a computer software application that initiated the stream of program instructions further comprises:
clearing the gathering store.

### Claim 9

A computer program product for autonomous recovery from a transient hardware failure by executing each portion of a stream of program instructions as a transaction, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a computer to cause the computer to perform a method comprising:
creating, by an operating system on a multi-processor computer system configured to support transactional execution mode processing, a start of a transactional region portion of a stream of program instructions wherein the portion of the stream of program instructions in the transactional region is to be executed as a transaction in transactional execution mode;
starting the transactional region in transactional execution mode on a first processor of the multi-processors;
saving, by the operating system, a snapshot of a system state information;
executing, by the operating system on the first processor, the portion of the stream of program instructions as a transaction;
creating, by the operating system, an end of the transactional region portion of the stream of program instructions;
in response to ending execution of the transactional region in transactional execution mode, committing, by the operating system, store data of the transaction to memory; and
in response to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode:
aborting, by the operating system, the transaction without notifying a computer software application that initiated the stream of program instructions; and
re-executing, by the operating system on a second processor of the multi-processors, the transactional region portion stream of program instructions as a transaction in transactional execution mode, based on the saved snapshot of the system state information.

### Claim 10 (depends on 9)

The computer program product according to claim 9, wherein responsive to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode further comprises:
returning, by the operating system, a specialized abort code with the abort identifying the transient hardware failure.

### Claim 11 (depends on 9)

The computer program product according to claim 9, wherein responsive to a transient hardware failure affecting a program resource required by one or more instructions in the transactional region portion stream of program instructions executing as a transaction in transactional execution mode further comprises:
creating, by the operating system, a hardware interrupt that is handled by one of firmware or privileged software; and
providing, by the operating system, failure information.

### Claim 12 (depends on 9)

A computer program product according to claim 9,
wherein in response to starting the transactional region in transactional execution mode further comprises the step of:
writing, by the operating system to a gathering store, data that is stored by one or more executed program instructions in the transactional region portion stream of program instructions; and
wherein committing, by the operating system, store data of the transaction to memory further comprises:
clearing the gathering store; and
wherein aborting, by the operating system, the transaction without notifying a computer software application that initiated the stream of program instructions further comprises:
clearing the gathering store.
